]> asedeno.scripts.mit.edu Git - 1ts-debian.git/commitdiff
remove old packaging
authorkcr <kcr@cbed1d16-5ef5-0310-b6a1-d4a37b08ba1f>
Sat, 28 Mar 2009 21:42:09 +0000 (21:42 +0000)
committerkcr <kcr@cbed1d16-5ef5-0310-b6a1-d4a37b08ba1f>
Sat, 28 Mar 2009 21:42:09 +0000 (21:42 +0000)
git-svn-id: svn://svn.1ts.org/debian/trunk@480 cbed1d16-5ef5-0310-b6a1-d4a37b08ba1f

328 files changed:
zephyr/INSTALL [deleted file]
zephyr/Makefile.in [deleted file]
zephyr/NOTES [deleted file]
zephyr/OPERATING [deleted file]
zephyr/README [deleted file]
zephyr/USING [deleted file]
zephyr/acconfig.h [deleted file]
zephyr/aclocal.m4 [deleted file]
zephyr/athena-version [deleted file]
zephyr/clients/Makefile.in [deleted file]
zephyr/clients/zaway/Makefile.in [deleted file]
zephyr/clients/zaway/zaway.1 [deleted file]
zephyr/clients/zaway/zaway.c [deleted file]
zephyr/clients/zctl/Makefile.in [deleted file]
zephyr/clients/zctl/zctl.1 [deleted file]
zephyr/clients/zctl/zctl.c [deleted file]
zephyr/clients/zctl/zctl_cmds.ct [deleted file]
zephyr/clients/zleave/Makefile.in [deleted file]
zephyr/clients/zleave/zleave.1 [deleted file]
zephyr/clients/zleave/zleave.c [deleted file]
zephyr/clients/zlocate/Makefile.in [deleted file]
zephyr/clients/zlocate/zlocate.1 [deleted file]
zephyr/clients/zlocate/zlocate.c [deleted file]
zephyr/clients/znol/Makefile.in [deleted file]
zephyr/clients/znol/znol.1 [deleted file]
zephyr/clients/znol/znol.c [deleted file]
zephyr/clients/zshutdown_notify/Makefile.in [deleted file]
zephyr/clients/zshutdown_notify/zshutdown_notify.8 [deleted file]
zephyr/clients/zshutdown_notify/zshutdown_notify.c [deleted file]
zephyr/clients/zstat/Makefile.in [deleted file]
zephyr/clients/zstat/zserver.h [deleted file]
zephyr/clients/zstat/zstat.8 [deleted file]
zephyr/clients/zstat/zstat.c [deleted file]
zephyr/clients/zwrite/Makefile.in [deleted file]
zephyr/clients/zwrite/zwrite.1 [deleted file]
zephyr/clients/zwrite/zwrite.c [deleted file]
zephyr/config.do [deleted file]
zephyr/config.guess [deleted file]
zephyr/config.site.athena [deleted file]
zephyr/config.sub [deleted file]
zephyr/configure [deleted file]
zephyr/configure.in [deleted file]
zephyr/debian/README.krb4-5 [deleted file]
zephyr/debian/acl/class-registry.acl [deleted file]
zephyr/debian/acl/iui-hm_ctl.acl [deleted file]
zephyr/debian/acl/iui-hm_stat.acl [deleted file]
zephyr/debian/acl/iui-login.acl [deleted file]
zephyr/debian/acl/iui-operations.acl [deleted file]
zephyr/debian/acl/iui-user_locate.acl [deleted file]
zephyr/debian/acl/iui-wg_ctl.acl [deleted file]
zephyr/debian/acl/iui-zephyr_admin.acl [deleted file]
zephyr/debian/acl/iui-zephyr_ctl.acl [deleted file]
zephyr/debian/acl/iws-hm_ctl.acl [deleted file]
zephyr/debian/acl/iws-hm_stat.acl [deleted file]
zephyr/debian/acl/iws-login.acl [deleted file]
zephyr/debian/acl/iws-operations.acl [deleted file]
zephyr/debian/acl/iws-user_locate.acl [deleted file]
zephyr/debian/acl/iws-wg_ctl.acl [deleted file]
zephyr/debian/acl/iws-zephyr_admin.acl [deleted file]
zephyr/debian/acl/iws-zephyr_ctl.acl [deleted file]
zephyr/debian/acl/sub-hm_ctl.acl [deleted file]
zephyr/debian/acl/sub-hm_stat.acl [deleted file]
zephyr/debian/acl/sub-login.acl [deleted file]
zephyr/debian/acl/sub-operations.acl [deleted file]
zephyr/debian/acl/sub-user_locate.acl [deleted file]
zephyr/debian/acl/sub-wg_ctl.acl [deleted file]
zephyr/debian/acl/sub-zephyr_admin.acl [deleted file]
zephyr/debian/acl/sub-zephyr_ctl.acl [deleted file]
zephyr/debian/acl/xmt-hm_ctl.acl [deleted file]
zephyr/debian/acl/xmt-hm_stat.acl [deleted file]
zephyr/debian/acl/xmt-login.acl [deleted file]
zephyr/debian/acl/xmt-operations.acl [deleted file]
zephyr/debian/acl/xmt-user_locate.acl [deleted file]
zephyr/debian/acl/xmt-wg_ctl.acl [deleted file]
zephyr/debian/acl/xmt-zephyr_admin.acl [deleted file]
zephyr/debian/acl/xmt-zephyr_ctl.acl [deleted file]
zephyr/debian/changelog [deleted file]
zephyr/debian/compat [deleted file]
zephyr/debian/control [deleted file]
zephyr/debian/copyright [deleted file]
zephyr/debian/default.subscriptions [deleted file]
zephyr/debian/dirs [deleted file]
zephyr/debian/libzephyr-dev.files [deleted file]
zephyr/debian/libzephyr4-krb5.templates [deleted file]
zephyr/debian/libzephyr4.files [deleted file]
zephyr/debian/po/POTFILES.in [deleted file]
zephyr/debian/po/cs.po [deleted file]
zephyr/debian/po/de.po [deleted file]
zephyr/debian/po/es.po [deleted file]
zephyr/debian/po/fr.po [deleted file]
zephyr/debian/po/gl.po [deleted file]
zephyr/debian/po/ja.po [deleted file]
zephyr/debian/po/nl.po [deleted file]
zephyr/debian/po/pt.po [deleted file]
zephyr/debian/po/pt_BR.po [deleted file]
zephyr/debian/po/ru.po [deleted file]
zephyr/debian/po/sv.po [deleted file]
zephyr/debian/po/templates.pot [deleted file]
zephyr/debian/po/vi.po [deleted file]
zephyr/debian/rules [deleted file]
zephyr/debian/zephyr-clients.config [deleted file]
zephyr/debian/zephyr-clients.docs [deleted file]
zephyr/debian/zephyr-clients.files [deleted file]
zephyr/debian/zephyr-clients.init [deleted file]
zephyr/debian/zephyr-clients.postinst [deleted file]
zephyr/debian/zephyr-clients.prerm [deleted file]
zephyr/debian/zephyr-clients.templates [deleted file]
zephyr/debian/zephyr-server-krb.README.Debian [deleted file]
zephyr/debian/zephyr-server-krb.docs [deleted file]
zephyr/debian/zephyr-server-krb.init [deleted file]
zephyr/debian/zephyr-server-krb.postrm [deleted file]
zephyr/debian/zephyr-server.config [deleted file]
zephyr/debian/zephyr-server.docs [deleted file]
zephyr/debian/zephyr-server.files [deleted file]
zephyr/debian/zephyr-server.init [deleted file]
zephyr/debian/zephyr-server.postinst [deleted file]
zephyr/debian/zephyr-server.postrm [deleted file]
zephyr/debian/zephyr-server.templates [deleted file]
zephyr/debian/zephyr.vars [deleted file]
zephyr/ensure-dir.sh [deleted file]
zephyr/h/config.h.in [deleted file]
zephyr/h/dyn.h [deleted file]
zephyr/h/internal.h [deleted file]
zephyr/h/sysdep.h [deleted file]
zephyr/h/zephyr/mit-copyright.h [deleted file]
zephyr/h/zephyr/zephyr.h [deleted file]
zephyr/install-sh [deleted file]
zephyr/install.sh [deleted file]
zephyr/lib/Makefile.in [deleted file]
zephyr/lib/ZAsyncLocate.c [deleted file]
zephyr/lib/ZCkAuth.c [deleted file]
zephyr/lib/ZCkIfNot.c [deleted file]
zephyr/lib/ZCkZAut.c [deleted file]
zephyr/lib/ZClosePort.c [deleted file]
zephyr/lib/ZCmpUID.c [deleted file]
zephyr/lib/ZCmpUIDP.c [deleted file]
zephyr/lib/ZExpnRlm.c [deleted file]
zephyr/lib/ZFlsLocs.c [deleted file]
zephyr/lib/ZFlsSubs.c [deleted file]
zephyr/lib/ZFmtAuth.c [deleted file]
zephyr/lib/ZFmtList.c [deleted file]
zephyr/lib/ZFmtNotice.c [deleted file]
zephyr/lib/ZFmtRaw.c [deleted file]
zephyr/lib/ZFmtRawLst.c [deleted file]
zephyr/lib/ZFmtSmRLst.c [deleted file]
zephyr/lib/ZFmtSmRaw.c [deleted file]
zephyr/lib/ZFreeNot.c [deleted file]
zephyr/lib/ZGetLocs.c [deleted file]
zephyr/lib/ZGetSender.c [deleted file]
zephyr/lib/ZGetSubs.c [deleted file]
zephyr/lib/ZGetWGPort.c [deleted file]
zephyr/lib/ZIfNotice.c [deleted file]
zephyr/lib/ZInit.c [deleted file]
zephyr/lib/ZLocateU.c [deleted file]
zephyr/lib/ZLocations.c [deleted file]
zephyr/lib/ZMakeAscii.c [deleted file]
zephyr/lib/ZMakeZcode.c [deleted file]
zephyr/lib/ZMkAuth.c [deleted file]
zephyr/lib/ZNewLocU.c [deleted file]
zephyr/lib/ZOpenPort.c [deleted file]
zephyr/lib/ZParseNot.c [deleted file]
zephyr/lib/ZPeekIfNot.c [deleted file]
zephyr/lib/ZPeekNot.c [deleted file]
zephyr/lib/ZPeekPkt.c [deleted file]
zephyr/lib/ZPending.c [deleted file]
zephyr/lib/ZReadAscii.c [deleted file]
zephyr/lib/ZReadZcode.c [deleted file]
zephyr/lib/ZRecvNot.c [deleted file]
zephyr/lib/ZRecvPkt.c [deleted file]
zephyr/lib/ZRetSubs.c [deleted file]
zephyr/lib/ZSendList.c [deleted file]
zephyr/lib/ZSendNot.c [deleted file]
zephyr/lib/ZSendPkt.c [deleted file]
zephyr/lib/ZSendRLst.c [deleted file]
zephyr/lib/ZSendRaw.c [deleted file]
zephyr/lib/ZSetDest.c [deleted file]
zephyr/lib/ZSetFD.c [deleted file]
zephyr/lib/ZSetSrv.c [deleted file]
zephyr/lib/ZSubs.c [deleted file]
zephyr/lib/ZVariables.c [deleted file]
zephyr/lib/ZWait4Not.c [deleted file]
zephyr/lib/ZhmStat.c [deleted file]
zephyr/lib/Zinternal.c [deleted file]
zephyr/lib/charset.c [deleted file]
zephyr/lib/mit-copyright.h [deleted file]
zephyr/lib/quad_cksum.c [deleted file]
zephyr/lib/smwgc.c [deleted file]
zephyr/lib/zephyr.1 [deleted file]
zephyr/lib/zephyr_err.et [deleted file]
zephyr/libdyn/Makefile.in [deleted file]
zephyr/libdyn/README [deleted file]
zephyr/libdyn/dyn.3 [deleted file]
zephyr/libdyn/dynP.h [deleted file]
zephyr/libdyn/dyn_append.c [deleted file]
zephyr/libdyn/dyn_create.c [deleted file]
zephyr/libdyn/dyn_debug.c [deleted file]
zephyr/libdyn/dyn_delete.c [deleted file]
zephyr/libdyn/dyn_header.c [deleted file]
zephyr/libdyn/dyn_insert.c [deleted file]
zephyr/libdyn/dyn_paranoid.c [deleted file]
zephyr/libdyn/dyn_put.c [deleted file]
zephyr/libdyn/dyn_realloc.c [deleted file]
zephyr/libdyn/dyn_size.c [deleted file]
zephyr/libdyn/dyntest.c [deleted file]
zephyr/ltmain.sh [deleted file]
zephyr/mkinstalldirs [deleted file]
zephyr/server/Makefile.in [deleted file]
zephyr/server/access.c [deleted file]
zephyr/server/access.h [deleted file]
zephyr/server/acl.h [deleted file]
zephyr/server/acl_files.c [deleted file]
zephyr/server/bdump.c [deleted file]
zephyr/server/class.c [deleted file]
zephyr/server/client.c [deleted file]
zephyr/server/common.c [deleted file]
zephyr/server/default.subscriptions [deleted file]
zephyr/server/dispatch.c [deleted file]
zephyr/server/kstuff.c [deleted file]
zephyr/server/main.c [deleted file]
zephyr/server/new_vers.sh [deleted file]
zephyr/server/realm.c [deleted file]
zephyr/server/server.c [deleted file]
zephyr/server/subscr.c [deleted file]
zephyr/server/timer.c [deleted file]
zephyr/server/timer.h [deleted file]
zephyr/server/uloc.c [deleted file]
zephyr/server/utf8proc.c [deleted file]
zephyr/server/utf8proc.h [deleted file]
zephyr/server/utf8proc_data.c [deleted file]
zephyr/server/version.c [deleted file]
zephyr/server/zephyrd.8 [deleted file]
zephyr/server/zserver.h [deleted file]
zephyr/server/zsrv_conf.h [deleted file]
zephyr/server/zsrv_err.et [deleted file]
zephyr/server/zstring.c [deleted file]
zephyr/server/zstring.h [deleted file]
zephyr/zhm/Makefile.in [deleted file]
zephyr/zhm/queue.c [deleted file]
zephyr/zhm/timer.c [deleted file]
zephyr/zhm/timer.h [deleted file]
zephyr/zhm/zhm.8 [deleted file]
zephyr/zhm/zhm.c [deleted file]
zephyr/zhm/zhm.h [deleted file]
zephyr/zhm/zhm_client.c [deleted file]
zephyr/zhm/zhm_server.c [deleted file]
zephyr/zwgc/Makefile.in [deleted file]
zephyr/zwgc/X_driver.c [deleted file]
zephyr/zwgc/X_driver.h [deleted file]
zephyr/zwgc/X_fonts.c [deleted file]
zephyr/zwgc/X_fonts.h [deleted file]
zephyr/zwgc/X_gram.c [deleted file]
zephyr/zwgc/X_gram.h [deleted file]
zephyr/zwgc/browser.c [deleted file]
zephyr/zwgc/browser.h [deleted file]
zephyr/zwgc/buffer.c [deleted file]
zephyr/zwgc/buffer.h [deleted file]
zephyr/zwgc/character_class.c [deleted file]
zephyr/zwgc/character_class.h [deleted file]
zephyr/zwgc/dictionary.c [deleted file]
zephyr/zwgc/dictionary.h [deleted file]
zephyr/zwgc/display.c [deleted file]
zephyr/zwgc/error.c [deleted file]
zephyr/zwgc/error.h [deleted file]
zephyr/zwgc/eval.c [deleted file]
zephyr/zwgc/eval.h [deleted file]
zephyr/zwgc/exec.c [deleted file]
zephyr/zwgc/exec.h [deleted file]
zephyr/zwgc/file.c [deleted file]
zephyr/zwgc/file.h [deleted file]
zephyr/zwgc/formatter.c [deleted file]
zephyr/zwgc/formatter.h [deleted file]
zephyr/zwgc/instantiate [deleted file]
zephyr/zwgc/lexer.c [deleted file]
zephyr/zwgc/lexer.h [deleted file]
zephyr/zwgc/main.c [deleted file]
zephyr/zwgc/main.h [deleted file]
zephyr/zwgc/mux.c [deleted file]
zephyr/zwgc/mux.h [deleted file]
zephyr/zwgc/new_memory.c [deleted file]
zephyr/zwgc/new_memory.h [deleted file]
zephyr/zwgc/new_string.c [deleted file]
zephyr/zwgc/new_string.h [deleted file]
zephyr/zwgc/node.c [deleted file]
zephyr/zwgc/node.h [deleted file]
zephyr/zwgc/notice.c [deleted file]
zephyr/zwgc/notice.h [deleted file]
zephyr/zwgc/parser.h [deleted file]
zephyr/zwgc/parser.y [deleted file]
zephyr/zwgc/plus.c [deleted file]
zephyr/zwgc/plus.h [deleted file]
zephyr/zwgc/pointer.h [deleted file]
zephyr/zwgc/port.c [deleted file]
zephyr/zwgc/port.h [deleted file]
zephyr/zwgc/regexp.c [deleted file]
zephyr/zwgc/regexp.h [deleted file]
zephyr/zwgc/stack.h [deleted file]
zephyr/zwgc/standard_ports.c [deleted file]
zephyr/zwgc/string_dictionary_aux.c [deleted file]
zephyr/zwgc/string_dictionary_aux.h [deleted file]
zephyr/zwgc/subscriptions.c [deleted file]
zephyr/zwgc/subscriptions.h [deleted file]
zephyr/zwgc/substitute.c [deleted file]
zephyr/zwgc/substitute.h [deleted file]
zephyr/zwgc/text_operations.c [deleted file]
zephyr/zwgc/text_operations.h [deleted file]
zephyr/zwgc/tty_filter.c [deleted file]
zephyr/zwgc/unsigned_long.h [deleted file]
zephyr/zwgc/variables.c [deleted file]
zephyr/zwgc/variables.h [deleted file]
zephyr/zwgc/xcut.c [deleted file]
zephyr/zwgc/xcut.h [deleted file]
zephyr/zwgc/xerror.c [deleted file]
zephyr/zwgc/xerror.h [deleted file]
zephyr/zwgc/xmark.c [deleted file]
zephyr/zwgc/xmark.h [deleted file]
zephyr/zwgc/xrevstack.c [deleted file]
zephyr/zwgc/xrevstack.h [deleted file]
zephyr/zwgc/xselect.c [deleted file]
zephyr/zwgc/xselect.h [deleted file]
zephyr/zwgc/xshow.c [deleted file]
zephyr/zwgc/xshow.h [deleted file]
zephyr/zwgc/zephyr.c [deleted file]
zephyr/zwgc/zephyr.h [deleted file]
zephyr/zwgc/zwgc.1 [deleted file]
zephyr/zwgc/zwgc.desc [deleted file]
zephyr/zwgc/zwgc.el [deleted file]
zephyr/zwgc/zwgc.h [deleted file]
zephyr/zwgc/zwgc_resources [deleted file]

diff --git a/zephyr/INSTALL b/zephyr/INSTALL
deleted file mode 100644 (file)
index 0dcd51d..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-This file explains how to build and install Zephyr on a machine.  To
-learn how to use Zephyr once you've installed it, read the file USING.
-To learn how to set up Zephyr service at a site, read the file
-OPERATING.
-
-To build and install Zephyr, run:
-
-       ./configure
-       make
-       make install
-
-This will build Zephyr without Hesiod or Kerberos support, and install
-in /usr/local.  To install in a location other than /usr/local, add
-"--prefix=INSTPREFIX" to the configure line, where INSTPREFIX is the
-directory you want to install Zephyr in.
-
-If your site has a Hesiod service with a valid zephyr.sloc entry (or
-you can add one), you can enable Hesiod support by adding the option
-"--with-hesiod=HESPREFIX" to the configure line, where
-HESPREFIX/include and HESPREFIX/lib are the directories you have the
-Hesiod libraries installed in.
-
-If your site has a Kerberos 4 service, you can enable Kerberos support
-by adding the option "--with-krb4=KRBPREFIX" to the configure line,
-where KRBPREFIX/include and KRBPREFIX/lib are the direcetories you
-have the Kerberos libraries installed in.
-
-If you have a make which supports VPATH in a manner compatible with
-GNU make, you can build in a separate directory.  Simply invoke the
-configure script from within the build directory and configure will
-locate the source directory for you.  (If that doesn't work for some
-reason, you can also specify "--srcdir=SOURCEDIR" on the configuration
-line.)
-
-If configure can't properly find your X11 include or library
-directories, add "--x-includes=INCDIR" and "--x-libraries=LIBDIR" to
-the configure line.  To build without X11 support, add "--without-x"
-to the configure line.
-
-If you have Hesiod and/or Kerberos installed such that you can't
-specify a single prefix for both include files and libraries, set the
-environment variables CPPFLAGS and LDFLAGS to include the relevant
-directories, and just configure with "--with-krb4" and
-"--with-hesiod".  For instance (for a csh-like shell):
-
-       setenv CPPFLAGS "-I/opt/athena/include"
-       setenv LDFLAGS "-I/opt/athena/arch/sparc/lib"
-       ./configure --with-hesiod --with-krb4
-       make
-       make install
-
-Although it's not necessary for Zephyr to function correctly, you
-should add the following services to /etc/services if possible:
-
-zephyr-clt      2103/udp                        # Zephyr serv-hm connection
-zephyr-hm       2104/udp                        # Zephyr hostmanager
-zephyr-hm-srv  2105/udp                        # Zephyr hm-serv connection
-
-To learn how to use Zephyr, read the file USING and the man pages for
-the various Zephyr programs.  To learn how to operate a Zephyr
-service, read the file OPERATING.
-
-We have tried to make Zephyr as portable as is reasonably possible,
-but have not taken into account every possible kind of system.  If you
-have any problems building or installing Zephyr according to these
-instructions, please send mail to zephyr-bugs@mit.edu.
-
diff --git a/zephyr/Makefile.in b/zephyr/Makefile.in
deleted file mode 100644 (file)
index 1d7392e..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-bindir=${exec_prefix}/bin
-libdir=${exec_prefix}/lib
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-ENSUREDIR=${srcdir}/ensure-dir.sh
-INSTALL=@INSTALL@
-
-SUBDIRS=lib libdyn clients server zhm zwgc
-
-all:
-       for i in ${SUBDIRS}; do (cd $$i; ${MAKE} $@) || exit 1; done
-
-check clean:
-       for i in ${SUBDIRS}; do (cd $$i; ${MAKE} $@) || exit 1; done
-
-install:
-       ${ENSUREDIR} ${DESTDIR}${prefix} 755
-       ${ENSUREDIR} ${DESTDIR}${exec_prefix} 755
-       ${ENSUREDIR} ${DESTDIR}${bindir} 755
-       ${ENSUREDIR} ${DESTDIR}${libdir} 755
-       ${ENSUREDIR} ${DESTDIR}${datadir} 755
-       ${ENSUREDIR} ${DESTDIR}${datadir}/zephyr 755
-       ${ENSUREDIR} ${DESTDIR}${sysconfdir} 755
-       ${ENSUREDIR} ${DESTDIR}${sysconfdir}/zephyr/acl 755
-       ${ENSUREDIR} ${DESTDIR}${sbindir} 755
-       ${ENSUREDIR} ${DESTDIR}${includedir} 755
-       ${ENSUREDIR} ${DESTDIR}${includedir}/zephyr 755
-       ${ENSUREDIR} ${DESTDIR}${mandir} 755
-       ${ENSUREDIR} ${DESTDIR}${mandir}/man1 755
-       ${ENSUREDIR} ${DESTDIR}${mandir}/man3 755
-       ${ENSUREDIR} ${DESTDIR}${mandir}/man8 755
-       ${INSTALL} -m 644 ${srcdir}/h/zephyr/mit-copyright.h \
-               ${DESTDIR}${includedir}/zephyr
-       ${INSTALL} -m 644 ${srcdir}/h/zephyr/zephyr.h \
-               ${DESTDIR}${includedir}/zephyr
-       ${INSTALL} -m 644 h/zephyr/zephyr_err.h ${DESTDIR}${includedir}/zephyr
-       for i in ${SUBDIRS}; do (cd $$i; ${MAKE} $@) || exit 1; done
-
-.PHONY: all check install clean
-
diff --git a/zephyr/NOTES b/zephyr/NOTES
deleted file mode 100644 (file)
index d9920d1..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-Please observe the following notes when making changes to the source
-tree.
-
-The directory h contains header files used internally in the zephyr
-source tree.  The directory h/zephyr contains header files containing
-declarations for the Zephyr API.  h/zephyr/zephyr_err.h is generated
-from lib/zephyr/zephyr_err.et when lib/zephyr is built.
-h/zephyr/zephyr.h is generated by configure, as is h/config.h.  Those
-header files live in the build tree.  All other header files in h live
-in the source tree.
-
-h/config.h is generated by configure and contains the results of
-configure tests as well as definitions for the installation
-configuration directory and data directory.  h/sysdep.h uses
-h/config.h to include various header files or make various external
-declarations which many programs might be interested in.  h/internal.h
-contains declarations internal to the "Zephyr system proper," which
-includes the Zephyr library, the server, the hostmanager, and (for
-now) zstat.
-
-h/zephyr/zephyr.h is a public header file; that is, it is installed
-with the Zephyr system.  As such, this header file may need to work
-with compilers other than the compiler used to build the Zephyr system
-itself.  Thus, we use __STDC__ (both in h/sysdep.h and in zephyr.h) to
-guess whether the compiler will handle const, prototypes, and stdarg.
-This is unfortunately not as reliable as using autoconf features like
-AC_C_CONST.
-
-The Zephyr system version number is kept in server/version.c, and
-should be updated when releases are made.
-
diff --git a/zephyr/OPERATING b/zephyr/OPERATING
deleted file mode 100644 (file)
index e82ad67..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-This file explains how to operate a Zephyr service once you have
-installed Zephyr on all the relevant machines and file servers in your
-environment.  To learn how to configure, build, and install Zephyr,
-read the file INSTALL.
-
-To set up Zephyr service at a site, follow these steps:
-
-1. Choose the machines you wish to have act as Zephyr servers at your
-site.  Expect the server to be CPU-efficient but to consume a bit more
-memory than you might expect (at MIT, with around a thousand
-simultaneous users, the Zephyr server's data size is 40MB).  If you
-have a lot of users, the server should have enough memory so that the
-process doesn't swap.
-
-2a. If you configured Zephyr with Hesiod support, make sure your
-Hesiod realm has a "zephyr.sloc" entry containing a record for each
-server.  (Each entry should contain the name of the server, nothing
-else.)  The Zephyr servers will use the zephyr.sloc entry to find the
-other servers.  Host managers will use the zephyr.sloc entry to find
-the Zephyr servers by default; however, you can control the set of
-servers for each host manager by giving each host a
-"<hostname>.cluster" entry containing a record "zcluster <serverset>".
-If such a record is found, the host manager will resolve
-"<serverset>.sloc" instead of "zephyr.sloc".
-
-2b. If you configured Zephyr without Hesiod support, and you have
-multiple Zephyr servers, each server should have a file "server.list"
-in the configuration directory (which is /etc/athena/zephyr if you
-configured with --enable-athena, or /usr/local/etc/zephyr if you
-installed Zephyr in /usr/local and didn't use --enable-athena).  This
-file should contain a list of the servers, one per line.
-
-3. If you configured Zephyr with Kerberos 4 support, make a service
-key "zephyr.zephyr@<your realm>" and install a srvtab for that service
-as "srvtab" in the configuration directory of each of your zephyr
-servers.
-
-4. Start zephyrd from the system binary directory (/usr/athena/etc if
-you configured with --enable-athena, /usr/local/sbin if you installed
-in /usr/local and didn't use --enable-athena).  zephyrd logs as
-service "local6"; watch the syslogs for error messages.  Arrange for
-zephyrd to be run at boot time on your server machines.
-
-5. Each client machine should run zhm (the Zephyr Host Manager) from
-the local system binary directory (/etc/athena for --enable-athena,
-/usr/local/sbin if you installed in /usr/local and didn't use
---enable-athena).  If you built Zephyr without Hesiod support, you
-should start zhm as "zhm server1 server2 server3 ..." so that zhm
-knows where the Zephyr servers are.  Do not use "localhost" or
-"127.0.0.1" as a server name, or zhm will become confused.
-
-You can send a SIGFPE signal to the server process to make it dump its
-subscription database to /var/tmp/zephyr.db.  (If /var/tmp didn't
-exist when Zephyr was built, the subscription database will be dumped
-in /usr/tmp or /tmp instead.)
diff --git a/zephyr/README b/zephyr/README
deleted file mode 100644 (file)
index 0637038..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-This is an alpha release of version 3.0 of the Project Athena Zephyr
-notification system.
-
-Zephyr allows users to send messages to other users or to groups of
-users.  Users can view incoming Zephyr messages as windowgrams
-(transient X windows) or as text on a terminal. Zephyr can optionally
-make use of the Kerberos version 4 security library or the Hesiod
-service name resolution library.
-
-Bug reports or patches should go to bug-zephyr@mit.edu.  Please do not
-send questions about snapshots; they are not supported.
-
-To find out how to configure, build, and install Zephyr, read the file
-INSTALL.
-
-To find out how to operate a Zephyr service, read the file OPERATING.
-
-To find out how to use an existing Zephyr service, read the file
-USING.
-
-Please read the file NOTES before making any modifications to the
-source tree.
-
---Greg Hudson
-ghudson@mit.edu
-
diff --git a/zephyr/USING b/zephyr/USING
deleted file mode 100644 (file)
index a0e6b4a..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-This file explains how to use an existing Zephyr service once you've
-built and installed the Zephyr 2.0 distribution.  To learn how to
-build and install Zephyr, read the file INSTALL.  To learn how to set
-up Zephyr service at a site, read the file OPERATING.
-
-First, before you can do anything else, your client machine must be
-running zhm from the local system binary directory (/etc/athena/zephyr
-if you built Zephyr with --enable-athena, /usr/local/sbin/zephyr if
-you installed Zephyr in /usr/local and didn't use --enable-athena).
-Only one copy of zhm can be running on a given machine, and it can be
-started by any user.  If you're using a machine you don't administer,
-you may want to check if the machine is configured to start up zhm
-automatically at boot time.
-
-Once you have zhm running, you can start receiving zephyrgrams by
-running the command:
-
-       zwgc
-
-"zwgc" stands for "Zephyr WindowGram Client".  If you built Zephyr
-with X support and are using an X display, you will receive messages
-as windows on your screen (click on them to get rid of them);
-otherwise, you will receive messages in your terminal as text.  Read
-the man page on zwgc to find out how to configure it using the
-.zwgc.desc file in your home directory.
-
-You can send messages to another user with:
-
-       zwrite username
-
-To write to groups of users, you must agree on a "class" and/or
-"instance" to write to (this will be explained in greater detail
-below).  At MIT, most users communicate in private groups via classes.
-Suppose a bunch of people wanted to communicate on a class "newclass".
-They would all subscribe to the class with the command:
-
-       zctl add newclass \* \*
-
-and send messages with:
-
-       zwrite -c newclass
-
-The "zctl add" command adds the subscription to the .zephyr.subs file
-in your home directory, so that you will automatically be subscribed
-to the class the next time you run zwgc.  If you just want to
-subscribe without adding the subscription to your .zephyr.subs file,
-use "zctl sub" instead of "zctl add".
-
-Now for a bit more explanation about what classes and instances are:
-every Zephyr message is send to a class, an instance, and a recipient,
-commonly written as <class,instance,recipient>.  The default class is
-"MESSAGE"; the default instance is "PERSONAL".  When you use "zwrite
-username", you are sending a message to <MESSAGE,PERSONAL,username>.
-If you don't specify a username on the zwrite command line, you will
-be sending to the recipient "*", so when you use "zwrite -c newclass",
-you are sending a message to <newclass,PERSONAL,username>.
-
-Similarly, every time you request a subscription, you are subscribing
-to a class, an instance, and a recipient.  The recipient must be
-either "*" or your username.  The instance can be any string; however,
-if you subscribe to instance "*", you will receive messages to any
-instance as long as the class and recipient also match.  The class can
-be any string; "*" has no special meaning for class names.  When you
-start zwgc, you are automatically subscribed to
-<MESSAGE,PERSONAL,yourusername> and <MESSAGE,URGENT,yourusername> even
-if you don't explicitly request those subscriptions.
-
-As an example of how you might use these features, at MIT we have
-several frequently-used instances of class MESSAGE, called
-"white-magic", "help", "weather", "tmbg" and so forth.  These are
-commonly known as "public" instances because they are not intended to
-exclude anyone.  Users can subscribe to individual instances using
-"zctl add message help \*", or they can subscribe to all of them at
-once using "zctl add message \* \*".  (If users do this, they can tell
-zwgc to filter out messages from certain instances; see the man page
-for zwgc.)  If users want to have semi-private group conversations,
-they use separate classes, as described earlier.
diff --git a/zephyr/acconfig.h b/zephyr/acconfig.h
deleted file mode 100644 (file)
index 75d4b43..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Define to compile with Hesiod support. */
-#undef HAVE_HESIOD
-
-/* Define to compile with Kerberos support. */
-#undef HAVE_KRB4
-
-/* Define to compile with Kerberos v5 support. */
-#undef HAVE_KRB5
-
-/* Define to allow users to locate themselves if they are opstaff */
-#undef OPSTAFF_LOCATE_SELF
-
-/* Define to get hm_flush restrictions in zctl */
-#undef HM_FLUSH_RESTRICT
-
-/* Define to pull in CMU zctl punt backward compat foo */
-#undef CMU_ZCTL_PUNT
-
-/* Define to enable zwgcplus support */
-#undef CMU_ZWGCPLUS
-
-/* Define to 1 if `enc_part2' is member of `krb5_ticket'. */
-#undef HAVE_KRB5_TICKET_ENC_PART2
-
-/* Define to 1 if `keyblock.enctype' is member of `krb5_creds'. */
-#undef HAVE_KRB5_CREDS_KEYBLOCK_ENCTYPE
-
-/* Define to 1 if you have the `krb5_c_make_checksum' function. */
-#undef HAVE_KRB5_C_MAKE_CHECKSUM
-
-/* Define to 1 if you have the `krb5_cc_set_default_name' function. */
-#undef HAVE_KRB5_CC_SET_DEFAULT_NAME
-
-/* Define to 1 if `krb5_auth_con_getauthenticator' takes a double pointer third arg. */
-#undef KRB5_AUTH_CON_GETAUTHENTICATOR_TAKES_DOUBLE_POINTER
-
-/* Define to 1 if you have the <krb5_err.h> header file. */
-#undef HAVE_KRB5_ERR_H
-
-/* Define to 1 if you have the `krb5_free_data' function. */
-#undef HAVE_KRB5_FREE_DATA
-
-/* Define to 1 if you have the <krb5/ss.h> header file. */
-#undef HAVE_KRB5_SS_H
-
-/* Define to 1 if you have the `krb_get_err_text' function. */
-#undef HAVE_KRB_GET_ERR_TEXT
-
-/* Define to 1 if you have the `krb_log' function. */
-#undef HAVE_KRB_LOG
-
-/* Define to compile with ares support. */
-#undef HAVE_ARES
-
-/* Define to a signed 32-bit integral type. */
-#define ZEPHYR_INT32 long
-
-/* Define if you have the System Resource Controller library. */
-#undef HAVE_SRC
-
-/* Define to "unsigned long" if your system headers don't. */
-#undef ulong
-
-/* Define to a temporary directory on your system. */
-#define FOUND_TMP "/var/tmp"
-
-/* Define to the type of the host system. */
-#define MACHINE_TYPE "unknown"
-
-/* Define if `regcomp' exists and works. */
-#undef HAVE_REGCOMP
-
diff --git a/zephyr/aclocal.m4 b/zephyr/aclocal.m4
deleted file mode 100644 (file)
index c201406..0000000
+++ /dev/null
@@ -1,6321 +0,0 @@
-dnl $Id: aclocal.m4 2269 2008-12-25 00:03:46Z kcr $
-
-dnl Copyright 1996 by the Massachusetts Institute of Technology.
-dnl
-dnl Permission to use, copy, modify, and distribute this
-dnl software and its documentation for any purpose and without
-dnl fee is hereby granted, provided that the above copyright
-dnl notice appear in all copies and that both that copyright
-dnl notice and this permission notice appear in supporting
-dnl documentation, and that the name of M.I.T. not be used in
-dnl advertising or publicity pertaining to distribution of the
-dnl software without specific, written prior permission.
-dnl M.I.T. makes no representations about the suitability of
-dnl this software for any purpose.  It is provided "as is"
-dnl without express or implied warranty.
-
-dnl This file provides local macros for packages which use specific
-dnl external libraries.  The public macros are:
-dnl
-dnl    ATHENA_UTIL_COM_ERR
-dnl            Generates error if com_err not found.
-dnl    ATHENA_UTIL_SS
-dnl            Generates error if ss not found.
-dnl    ATHENA_REGEXP
-dnl            Sets REGEX_LIBS if rx library used; ensures POSIX
-dnl            regexp support.
-dnl    ATHENA_MOTIF
-dnl            Sets MOTIF_LIBS and defines HAVE_MOTIF if Motif used.
-dnl    ATHENA_MOTIF_REQUIRED
-dnl            Generates error if Motif not found.
-dnl    ATHENA_AFS
-dnl            Sets AFS_LIBS and defines HAVE_AFS if AFS used.  Pass
-dnl            in an argument giving the desired AFS libraries;
-dnl            AFS_LIBS will be set to that value if AFS is found.
-dnl            AFS_DIR will be set to the prefix given.
-dnl    ATHENA_AFS_REQUIRED
-dnl            Generates error if AFS libraries not found.  AFS_DIR
-dnl            will be set to the prefix given.
-dnl    ATHENA_KRB4
-dnl            Sets KRB4_LIBS and defines HAVE_KRB4 if krb4 used.
-dnl    ATHENA_KRB4_REQUIRED
-dnl            Generates error if krb4 not found.  Sets KRB4_LIBS
-dnl            otherwise.  (Special behavior because krb4 libraries
-dnl            may be different if using krb4 compatibility libraries
-dnl            from krb5.)
-dnl    ATHENA_KRB5
-dnl            Sets KRB5_LIBS and defines HAVE_KRB5 if krb5 used.
-dnl    ATHENA_KRB5_REQUIRED
-dnl            Generates error if krb5 not found.
-dnl    ATHENA_HESIOD
-dnl            Sets HESIOD_LIBS and defines HAVE_HESIOD if Hesiod
-dnl            used.
-dnl    ATHENA_HESIOD_REQUIRED
-dnl            Generates error if Hesiod not found.
-dnl    ATHENA_ARES
-dnl            Sets ARES_LIBS and defines HAVE_ARES if libares
-dnl            used.
-dnl    ATHENA_ARES_REQUIRED
-dnl            Generates error if libares not found.
-dnl    ATHENA_ZEPHYR
-dnl            Sets ZEPHYR_LIBS and defines HAVE_ZEPHYR if zephyr
-dnl            used.
-dnl    ATHENA_ZEPHYR_REQUIRED
-dnl            Generates error if zephyr not found.
-dnl
-dnl All of the macros may extend CPPFLAGS and LDFLAGS to let the
-dnl compiler find the requested libraries.  Put ATHENA_UTIL_COM_ERR
-dnl and ATHENA_UTIL_SS before ATHENA_AFS or ATHENA_AFS_REQUIRED; there
-dnl is a com_err library in the AFS libraries which requires -lutil.
-
-dnl ----- com_err -----
-
-AC_DEFUN([ATHENA_UTIL_COM_ERR],
-[AC_ARG_WITH(com_err,
-       [  --with-com_err=PREFIX   Specify location of com_err],
-       [com_err="$withval"], [com_err=yes])
-if test "$com_err" != no; then
-       if test "$com_err" != yes; then
-               CPPFLAGS="$CPPFLAGS -I$com_err/include"
-               LDFLAGS="$LDFLAGS -L$com_err/lib"
-       fi
-       AC_CHECK_LIB(com_err, com_err, :,
-                    [AC_MSG_ERROR(com_err library not found)])
-else
-       AC_MSG_ERROR(This package requires com_err.)
-fi])
-
-dnl ----- ss -----
-
-AC_DEFUN([ATHENA_UTIL_SS],
-[AC_ARG_WITH(ss,
-       [  --with-ss=PREFIX        Specify location of ss (requires com_err)],
-       [ss="$withval"], [ss=yes])
-if test "$ss" != no; then
-       if test "$ss" != yes; then
-               CPPFLAGS="$CPPFLAGS -I$ss/include"
-               LDFLAGS="$LDFLAGS -L$ss/lib"
-       fi
-       AC_CHECK_LIB(curses, initscr)
-       AC_CHECK_LIB(readline, readline)
-       AC_CHECK_LIB(ss, ss_perror, :,
-                    [AC_MSG_ERROR(ss library not found)], -lcom_err)
-else
-       AC_MSG_ERROR(This package requires ss.)
-fi])
-
-dnl ----- Regular expressions -----
-
-AC_DEFUN([ATHENA_REGEXP],
-[AC_ARG_WITH(regex,
-       [  --with-regex=PREFIX     Use installed regex library],
-       [regex="$withval"], [regex=no])
-if test "$regex" != no; then
-       if test "$regex" != yes; then
-               CPPFLAGS="$CPPFLAGS -I$regex/include"
-               LDFLAGS="$LDFLAGS -L$regex/lib"
-       fi
-       AC_CHECK_LIB(regex, regcomp, REGEX_LIBS=-lregex,
-                    [AC_MSG_ERROR(regex library not found)])
-else
-       AC_CHECK_FUNC(regcomp, :,
-                     [AC_MSG_ERROR(can't find POSIX regexp support)])
-fi
-AC_SUBST(REGEX_LIBS)])
-
-dnl ----- Motif -----
-
-AC_DEFUN([ATHENA_MOTIF_CHECK],
-[if test "$motif" != yes; then
-       CPPFLAGS="$CPPFLAGS -I$motif/include"
-       LDFLAGS="$LDFLAGS -L$motif/lib"
-fi
-AC_CHECK_LIB(Xm, XmStringFree, :, [AC_MSG_ERROR(Motif library not found)])])
-
-AC_DEFUN([ATHENA_MOTIF],
-[AC_ARG_WITH(motif,
-       [  --with-motif=PREFIX     Use Motif],
-       [motif="$withval"], [motif=no])
-if test "$motif" != no; then
-       ATHENA_MOTIF_CHECK
-       MOTIF_LIBS=-lXm
-       AC_DEFINE(HAVE_MOTIF)
-fi
-AC_SUBST(MOTIF_LIBS)])
-
-AC_DEFUN([ATHENA_MOTIF_REQUIRED],
-[AC_ARG_WITH(motif,
-       [  --with-motif=PREFIX     Specify location of Motif],
-       [motif="$withval"], [motif=yes])
-if test "$motif" != no; then
-       ATHENA_MOTIF_CHECK
-else
-       AC_MSG_ERROR(This package requires Motif.)
-fi])
-
-dnl ----- AFS -----
-
-AC_DEFUN([ATHENA_AFS_CHECK],
-[AC_CHECK_FUNC(insque, :, AC_CHECK_LIB(compat, insque))
-AC_CHECK_FUNC(gethostbyname, :, AC_CHECK_LIB(nsl, gethostbyname))
-AC_CHECK_FUNC(socket, :, AC_CHECK_LIB(socket, socket))
-AC_CHECK_FUNC(res_send, :, AC_CHECK_LIB(resolv, res_send))
-if test "$afs" != yes; then
-       CPPFLAGS="$CPPFLAGS -I$afs/include"
-       LDFLAGS="$LDFLAGS -L$afs/lib -L$afs/lib/afs"
-fi
-AC_CHECK_LIB(sys, pioctl, :, [AC_MSG_ERROR(AFS libraries not found)],
-            -lrx -llwp -lsys -lafsutil)
-AFS_DIR=$afs
-AC_SUBST(AFS_DIR)])
-
-dnl Specify desired AFS libraries as a parameter.
-AC_DEFUN([ATHENA_AFS],
-[AC_ARG_WITH(afs,
-       [  --with-afs=PREFIX       Use AFS libraries],
-       [afs="$withval"], [afs=no])
-if test "$afs" != no; then
-       ATHENA_AFS_CHECK
-       AFS_LIBS=$1
-       AC_DEFINE(HAVE_AFS)
-fi
-AC_SUBST(AFS_LIBS)])
-
-AC_DEFUN([ATHENA_AFS_REQUIRED],
-[AC_ARG_WITH(afs,
-       [  --with-afs=PREFIX       Specify location of AFS libraries],
-       [afs="$withval"], [afs=/usr/afsws])
-if test "$afs" != no; then
-       ATHENA_AFS_CHECK
-else
-       AC_MSG_ERROR(This package requires AFS libraries.)
-fi])
-
-dnl ----- Kerberos 4 -----
-
-AC_DEFUN([ATHENA_KRB4_CHECK],
-[AC_CHECK_FUNC(gethostbyname, :, AC_CHECK_LIB(nsl, gethostbyname))
-AC_CHECK_FUNC(socket, :, AC_CHECK_LIB(socket, socket))
-AC_CHECK_LIB(gen, compile)
-if test "$krb4" != yes; then
-       CPPFLAGS="$CPPFLAGS -I$krb4/include"
-       if test -d "$krb4/include/kerberosIV"; then
-               CPPFLAGS="$CPPFLAGS -I$krb4/include/kerberosIV"
-       fi
-       LDFLAGS="$LDFLAGS -L$krb4/lib"
-fi
-AC_CHECK_LIB(krb4, krb_rd_req,
-            [KRB4_LIBS="-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"],
-            [AC_CHECK_LIB(krb, krb_rd_req,
-                          [KRB4_LIBS="-lkrb -ldes"],
-                          [AC_MSG_ERROR(Kerberos 4 libraries not found)],
-                          -ldes)],
-            -ldes425 -lkrb5 -lk5crypto -lcom_err)])
-
-AC_DEFUN([ATHENA_KRB4],
-[AC_ARG_WITH(krb4,
-       [  --with-krb4=PREFIX      Use Kerberos 4],
-       [krb4="$withval"], [krb4=no])
-if test "$krb4" != no; then
-       ATHENA_KRB4_CHECK
-       AC_DEFINE(HAVE_KRB4)
-fi
-AC_SUBST(KRB4_LIBS)])
-
-AC_DEFUN([ATHENA_KRB4_REQUIRED],
-[AC_ARG_WITH(krb4,
-       [  --with-krb4=PREFIX      Specify location of Kerberos 4],
-       [krb4="$withval"], [krb4=yes])
-if test "$krb4" != no; then
-       ATHENA_KRB4_CHECK
-       AC_SUBST(KRB4_LIBS)
-else
-       AC_MSG_ERROR(This package requires Kerberos 4.)
-fi])
-
-dnl ----- Kerberos 5 -----
-
-AC_DEFUN([ATHENA_KRB5_CHECK],
-[AC_SEARCH_LIBS(gethostbyname, nsl)
-AC_SEARCH_LIBS(socket, socket)
-AC_CHECK_LIB(gen, compile)
-if test "$krb5" != yes; then
-       CPPFLAGS="$CPPFLAGS -I$krb5/include"
-       LDFLAGS="$LDFLAGS -L$krb5/lib"
-fi
-AC_CHECK_LIB(krb5, krb5_init_context, :,
-            [AC_MSG_ERROR(Kerberos 5 libraries not found)],
-            -lk5crypto -lcom_err)])
-
-AC_DEFUN([ATHENA_KRB5],
-[AC_ARG_WITH(krb5,
-       [  --with-krb5=PREFIX      Use Kerberos 5],
-       [krb5="$withval"], [krb5=no])
-if test "$krb5" != no; then
-       ATHENA_KRB5_CHECK
-       KRB5_LIBS="-lkrb5 -lk5crypto -lcom_err"
-       AC_DEFINE(HAVE_KRB5)
-fi
-AC_SUBST(KRB5_LIBS)])
-
-AC_DEFUN([ATHENA_KRB5_REQUIRED],
-[AC_ARG_WITH(krb5,
-       [  --with-krb5=PREFIX      Specify location of Kerberos 5],
-       [krb5="$withval"], [krb5=yes])
-if test "$krb5" != no; then
-       ATHENA_KRB5_CHECK
-else
-       AC_MSG_ERROR(This package requires Kerberos 5.)
-fi])
-
-dnl ----- Hesiod -----
-
-AC_DEFUN([ATHENA_HESIOD_CHECK],
-[AC_CHECK_FUNC(res_send, :, AC_CHECK_LIB(resolv, res_send))
-if test "$hesiod" != yes; then
-       CPPFLAGS="$CPPFLAGS -I$hesiod/include"
-       LDFLAGS="$LDFLAGS -L$hesiod/lib"
-fi
-AC_CHECK_LIB(hesiod, hes_resolve, :,
-            [AC_MSG_ERROR(Hesiod library not found)],$LIBS)])
-
-AC_DEFUN([ATHENA_HESIOD],
-[AC_ARG_WITH(hesiod,
-       [  --with-hesiod=PREFIX    Use Hesiod],
-       [hesiod="$withval"], [hesiod=no])
-if test "$hesiod" != no; then
-       ATHENA_HESIOD_CHECK
-       HESIOD_LIBS="-lhesiod"
-       AC_DEFINE(HAVE_HESIOD)
-fi
-AC_SUBST(HESIOD_LIBS)])
-
-AC_DEFUN([ATHENA_HESIOD_REQUIRED],
-[AC_ARG_WITH(hesiod,
-       [  --with-hesiod=PREFIX    Specify location of Hesiod],
-       [hesiod="$withval"], [hesiod=yes])
-if test "$hesiod" != no; then
-       ATHENA_HESIOD_CHECK
-else
-       AC_MSG_ERROR(This package requires Hesiod.)
-fi])
-
-dnl ----- libares -----
-
-AC_DEFUN([ATHENA_ARES_CHECK],
-[AC_CHECK_FUNC(res_send, :, AC_CHECK_LIB(resolv, res_send))
-if test "$ares" != yes; then
-       CPPFLAGS="$CPPFLAGS -I$ares/include"
-       LDFLAGS="$LDFLAGS -L$ares/lib"
-fi
-AC_CHECK_LIB(ares, ares_init, :, [AC_MSG_ERROR(libares not found)])])
-
-AC_DEFUN([ATHENA_ARES],
-[AC_ARG_WITH(ares,
-       [  --with-ares=PREFIX      Use libares],
-       [ares="$withval"], [ares=no])
-if test "$ares" != no; then
-       ATHENA_ARES_CHECK
-       ARES_LIBS="-lares"
-       AC_DEFINE(HAVE_ARES)
-fi
-AC_SUBST(ARES_LIBS)])
-
-AC_DEFUN([ATHENA_ARES_REQUIRED],
-[AC_ARG_WITH(ares,
-       [  --with-ares=PREFIX      Specify location of libares],
-       [ares="$withval"], [ares=yes])
-if test "$ares" != no; then
-       ATHENA_ARES_CHECK
-else
-       AC_MSG_ERROR(This package requires libares.)
-fi])
-dnl ----- zephyr -----
-
-AC_DEFUN([ATHENA_ZEPHYR_CHECK],
-[if test "$zephyr" != yes; then
-       CPPFLAGS="$CPPFLAGS -I$zephyr/include"
-       LDFLAGS="$LDFLAGS -L$zephyr/lib"
-fi
-AC_CHECK_LIB(zephyr, ZFreeNotice, :, [AC_MSG_ERROR(zephyr not found)])])
-
-AC_DEFUN([ATHENA_ZEPHYR],
-[AC_ARG_WITH(zephyr,
-       [  --with-zephyr=PREFIX      Use zephyr],
-       [zephyr="$withval"], [zephyr=no])
-if test "$zephyr" != no; then
-       ATHENA_ZEPHYR_CHECK
-       ZEPHYR_LIBS="-lzephyr"
-       AC_DEFINE(HAVE_ZEPHYR)
-fi
-AC_SUBST(ZEPHYR_LIBS)])
-
-AC_DEFUN([ATHENA_ZEPHYR_REQUIRED],
-[AC_ARG_WITH(zephyr,
-       [  --with-zephyr=PREFIX      Specify location of zephyr],
-       [zephyr="$withval"], [zephyr=yes])
-if test "$zephyr" != no; then
-       ATHENA_ZEPHYR_CHECK
-else
-       AC_MSG_ERROR(This package requires zephyr.)
-fi])
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-## Copyright 1996, 1997, 1998, 1999, 2000, 2001
-## Free Software Foundation, Inc.
-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-## General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-## As a special exception to the GNU General Public License, if you
-## distribute this file as part of a program that contains a
-## configuration script generated by Autoconf, you may include it under
-## the same distribution terms that you use for the rest of that program.
-
-# serial 47 AC_PROG_LIBTOOL
-
-
-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
-# -----------------------------------------------------------
-# If this macro is not defined by Autoconf, define it here.
-m4_ifdef([AC_PROVIDE_IFELSE],
-         [],
-         [m4_define([AC_PROVIDE_IFELSE],
-                [m4_ifdef([AC_PROVIDE_$1],
-                          [$2], [$3])])])
-
-
-# AC_PROG_LIBTOOL
-# ---------------
-AC_DEFUN([AC_PROG_LIBTOOL],
-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
-  AC_PROVIDE_IFELSE([AC_PROG_CXX],
-    [AC_LIBTOOL_CXX],
-    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
-  ])])
-dnl And a similar setup for Fortran 77 support
-  AC_PROVIDE_IFELSE([AC_PROG_F77],
-    [AC_LIBTOOL_F77],
-    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
-])])
-
-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
-  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-    [AC_LIBTOOL_GCJ],
-    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-      [AC_LIBTOOL_GCJ],
-      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
-       [AC_LIBTOOL_GCJ],
-      [ifdef([AC_PROG_GCJ],
-            [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([A][M_PROG_GCJ],
-            [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([LT_AC_PROG_GCJ],
-            [define([LT_AC_PROG_GCJ],
-               defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
-])])# AC_PROG_LIBTOOL
-
-
-# _AC_PROG_LIBTOOL
-# ----------------
-AC_DEFUN([_AC_PROG_LIBTOOL],
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-# Prevent multiple expansion
-define([AC_PROG_LIBTOOL], [])
-])# _AC_PROG_LIBTOOL
-
-
-# AC_LIBTOOL_SETUP
-# ----------------
-AC_DEFUN([AC_LIBTOOL_SETUP],
-[AC_PREREQ(2.50)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-
-AC_REQUIRE([AC_PROG_LN_S])dnl
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-AC_REQUIRE([AC_OBJEXT])dnl
-AC_REQUIRE([AC_EXEEXT])dnl
-dnl
-
-AC_LIBTOOL_SYS_MAX_CMD_LEN
-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-AC_LIBTOOL_OBJDIR
-
-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-_LT_AC_PROG_ECHO_BACKSLASH
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
-
-# Same as above, but do not quote variable references.
-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-AC_CHECK_TOOL(AR, ar, false)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip, :)
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
-    ;;
-  *)
-    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    AC_PATH_MAGIC
-  fi
-  ;;
-esac
-
-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-enable_win32_dll=yes, enable_win32_dll=no)
-
-AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-       [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-AC_ARG_WITH([pic],
-    [AC_HELP_STRING([--with-pic],
-       [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
-    [pic_mode=default])
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-AC_LIBTOOL_LANG_C_CONFIG
-_LT_AC_TAGCONFIG
-])# AC_LIBTOOL_SETUP
-
-
-# _LT_AC_SYS_COMPILER
-# -------------------
-AC_DEFUN([_LT_AC_SYS_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_AC_SYS_COMPILER
-
-
-# _LT_AC_SYS_LIBPATH_AIX
-# ----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-])# _LT_AC_SYS_LIBPATH_AIX
-
-
-# _LT_AC_SHELL_INIT(ARG)
-# ----------------------
-AC_DEFUN([_LT_AC_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-            [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-        [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_AC_SHELL_INIT
-
-
-# _LT_AC_PROG_ECHO_BACKSLASH
-# --------------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
-[_LT_AC_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-[$]*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
-       echo_test_string="`eval $cmd`" &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for dir in $PATH /usr/ucb; do
-    IFS="$lt_save_ifs"
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-        test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-        echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-        test "X$echo_testing_string" = "X$echo_test_string"; then
-       # Cool, printf works
-       :
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-       export CONFIG_SHELL
-       SHELL="$CONFIG_SHELL"
-       export SHELL
-       echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      else
-       # maybe with a smaller string...
-       prev=:
-
-       for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-         if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-         then
-           break
-         fi
-         prev="$cmd"
-       done
-
-       if test "$prev" != 'sed 50q "[$]0"'; then
-         echo_test_string=`eval $prev`
-         export echo_test_string
-         exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-       else
-         # Oops.  We lost completely, so just stick with echo.
-         echo=echo
-       fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(ECHO)
-])])# _LT_AC_PROG_ECHO_BACKSLASH
-
-
-# _LT_AC_LOCK
-# -----------
-AC_DEFUN([_LT_AC_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-       [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *ELF-32*)
-      HPUX_IA64_MODE="32"
-      ;;
-    *ELF-64*)
-      HPUX_IA64_MODE="64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-   if test "$lt_cv_prog_gnu_ld" = yes; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -melf32bsmip"
-      ;;
-    *N32*)
-      LD="${LD-ld} -melf32bmipn32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -melf64bmip"
-      ;;
-    esac
-   else
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-   fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case "`/usr/bin/file conftest.o`" in
-    *32-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_i386"
-          ;;
-        ppc64-*linux*|powerpc64-*linux*)
-          LD="${LD-ld} -m elf32ppclinux"
-          ;;
-        s390x-*linux*)
-          LD="${LD-ld} -m elf_s390"
-          ;;
-        sparc64-*linux*)
-          LD="${LD-ld} -m elf32_sparc"
-          ;;
-      esac
-      ;;
-    *64-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        ppc*-*linux*|powerpc*-*linux*)
-          LD="${LD-ld} -m elf64ppc"
-          ;;
-        s390*-*linux*)
-          LD="${LD-ld} -m elf64_s390"
-          ;;
-        sparc*-*linux*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-  ])
-esac
-
-need_locks="$enable_libtool_lock"
-
-])# _LT_AC_LOCK
-
-
-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#              [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
-[AC_REQUIRE([LT_AC_PROG_SED])
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$5], , :, [$5])
-else
-    ifelse([$6], , :, [$6])
-fi
-])# AC_LIBTOOL_COMPILER_OPTION
-
-
-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                          [ACTION-SUCCESS], [ACTION-FAILURE])
-# ------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-     else
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$4], , :, [$4])
-else
-    ifelse([$5], , :, [$5])
-fi
-])# AC_LIBTOOL_LINKER_OPTION
-
-
-# AC_LIBTOOL_SYS_MAX_CMD_LEN
-# --------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
-[# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
- *)
-    # If test is not a shell built-in, we'll probably end up computing a
-    # maximum length that is only half of the actual maximum length, but
-    # we can't tell.
-    while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
-              = "XX$teststring") >/dev/null 2>&1 &&
-           new_result=`expr "X$teststring" : ".*" 2>&1` &&
-           lt_cv_sys_max_cmd_len=$new_result &&
-           test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      teststring=$teststring$teststring
-    done
-    teststring=
-    # Add a significant safety factor because C++ compilers can tack on massive
-    # amounts of additional arguments before passing them to the linker.
-    # It appears as though 1/2 is a usable value.
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-])# AC_LIBTOOL_SYS_MAX_CMD_LEN
-
-
-# _LT_AC_CHECK_DLFCN
-# --------------------
-AC_DEFUN([_LT_AC_CHECK_DLFCN],
-[AC_CHECK_HEADERS(dlfcn.h)dnl
-])# _LT_AC_CHECK_DLFCN
-
-
-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ------------------------------------------------------------------
-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}]
-EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_unknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_AC_TRY_DLOPEN_SELF
-
-
-# AC_LIBTOOL_DLOPEN_SELF
-# -------------------
-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-   ;;
-
-  *)
-    AC_CHECK_FUNC([shl_load],
-         [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-           [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
-       [AC_CHECK_FUNC([dlopen],
-             [lt_cv_dlopen="dlopen"],
-         [AC_CHECK_LIB([dl], [dlopen],
-               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-           [AC_CHECK_LIB([svld], [dlopen],
-                 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-             [AC_CHECK_LIB([dld], [dld_link],
-                   [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
-             ])
-           ])
-         ])
-       ])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-         lt_cv_dlopen_self, [dnl
-         _LT_AC_TRY_DLOPEN_SELF(
-           lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-           lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-         lt_cv_dlopen_self_static, [dnl
-         _LT_AC_TRY_DLOPEN_SELF(
-           lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-           lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-])# AC_LIBTOOL_DLOPEN_SELF
-
-
-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
-# ---------------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler
-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-])
-])# AC_LIBTOOL_PROG_CC_C_O
-
-
-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
-# -----------------------------------------
-# Check to see if we can do hard links to lock some files if needed
-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
-[AC_REQUIRE([_LT_AC_LOCK])dnl
-
-hard_links="nottested"
-if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
-
-
-# AC_LIBTOOL_OBJDIR
-# -----------------
-AC_DEFUN([AC_LIBTOOL_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-])# AC_LIBTOOL_OBJDIR
-
-
-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
-# ----------------------------------------------
-# Check hardcoding attributes.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_AC_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
-   test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
-   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_AC_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
-
-
-# AC_LIBTOOL_SYS_LIB_STRIP
-# ------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
-[striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         AC_MSG_RESULT([yes])
-       else
-  AC_MSG_RESULT([no])
-fi
-       ;;
-   *)
-  AC_MSG_RESULT([no])
-    ;;
-  esac
-fi
-])# AC_LIBTOOL_SYS_LIB_STRIP
-
-
-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
-[AC_MSG_CHECKING([dynamic linker characteristics])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-          echo ' yes '
-          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-       :
-      else
-       can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       else
-               version_type=irix
-       fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # find out which ABI we are using
-  libsuff=
-  case "$host_cpu" in
-  x86_64*|s390x*|powerpc64*)
-    echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-    if AC_TRY_EVAL(ac_compile); then
-      case `/usr/bin/file conftest.$ac_objext` in
-      *64-bit*)
-        libsuff=64
-        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
-        ;;
-      esac
-    fi
-    rm -rf conftest*
-    ;;
-  esac
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=yes
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-
-
-# _LT_AC_TAGCONFIG
-# ----------------
-AC_DEFUN([_LT_AC_TAGCONFIG],
-[AC_ARG_WITH([tags],
-    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
-        [include additional configurations @<:@automatic@:>@])],
-    [tagnames="$withval"])
-
-if test -f "$ltmain" && test -n "$tagnames"; then
-  if test ! -f "${ofile}"; then
-    AC_MSG_WARN([output file `$ofile' does not exist])
-  fi
-
-  if test -z "$LTCC"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
-    if test -z "$LTCC"; then
-      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
-    else
-      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
-    fi
-  fi
-
-  # Extract list of available tagged configurations in $ofile.
-  # Note that this assumes the entire list is on one line.
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-  for tagname in $tagnames; do
-    IFS="$lt_save_ifs"
-    # Check whether tagname contains only valid characters
-    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
-    "") ;;
-    *)  AC_MSG_ERROR([invalid tag name: $tagname])
-       ;;
-    esac
-
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
-    then
-      AC_MSG_ERROR([tag name \"$tagname\" already exists])
-    fi
-
-    # Update the list of available tags.
-    if test -n "$tagname"; then
-      echo appending configuration tag \"$tagname\" to $ofile
-
-      case $tagname in
-      CXX)
-       if test -n "$CXX" && test "X$CXX" != "Xno"; then
-         AC_LIBTOOL_LANG_CXX_CONFIG
-       else
-         tagname=""
-       fi
-       ;;
-
-      F77)
-       if test -n "$F77" && test "X$F77" != "Xno"; then
-         AC_LIBTOOL_LANG_F77_CONFIG
-       else
-         tagname=""
-       fi
-       ;;
-
-      GCJ)
-       if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-         AC_LIBTOOL_LANG_GCJ_CONFIG
-       else
-         tagname=""
-       fi
-       ;;
-
-      RC)
-       AC_LIBTOOL_LANG_RC_CONFIG
-       ;;
-
-      *)
-       AC_MSG_ERROR([Unsupported tag name: $tagname])
-       ;;
-      esac
-
-      # Append the new tag name to the list of available tags.
-      if test -n "$tagname" ; then
-      available_tags="$available_tags $tagname"
-    fi
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  # Now substitute the updated list of available tags.
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
-    mv "${ofile}T" "$ofile"
-    chmod +x "$ofile"
-  else
-    rm -f "${ofile}T"
-    AC_MSG_ERROR([unable to update list of available tagged configurations.])
-  fi
-fi
-])# _LT_AC_TAGCONFIG
-
-
-# AC_LIBTOOL_DLOPEN
-# -----------------
-# enable checks for dlopen support
-AC_DEFUN([AC_LIBTOOL_DLOPEN],
- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_DLOPEN
-
-
-# AC_LIBTOOL_WIN32_DLL
-# --------------------
-# declare package support for building win32 dll's
-AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_WIN32_DLL
-
-
-# AC_ENABLE_SHARED([DEFAULT])
-# ---------------------------
-# implement the --enable-shared flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_SHARED],
-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([shared],
-    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-       [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_shared=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
-])# AC_ENABLE_SHARED
-
-
-# AC_DISABLE_SHARED
-# -----------------
-#- set the default shared flag to --disable-shared
-AC_DEFUN([AC_DISABLE_SHARED],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)
-])# AC_DISABLE_SHARED
-
-
-# AC_ENABLE_STATIC([DEFAULT])
-# ---------------------------
-# implement the --enable-static flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_STATIC],
-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([static],
-    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-       [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_static=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
-])# AC_ENABLE_STATIC
-
-
-# AC_DISABLE_STATIC
-# -----------------
-# set the default static flag to --disable-static
-AC_DEFUN([AC_DISABLE_STATIC],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)
-])# AC_DISABLE_STATIC
-
-
-# AC_ENABLE_FAST_INSTALL([DEFAULT])
-# ---------------------------------
-# implement the --enable-fast-install flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_FAST_INSTALL],
-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([fast-install],
-    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_fast_install=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
-])# AC_ENABLE_FAST_INSTALL
-
-
-# AC_DISABLE_FAST_INSTALL
-# -----------------------
-# set the default to --disable-fast-install
-AC_DEFUN([AC_DISABLE_FAST_INSTALL],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)
-])# AC_DISABLE_FAST_INSTALL
-
-
-# AC_LIBTOOL_PICMODE([MODE])
-# --------------------------
-# implement the --with-pic flag
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-AC_DEFUN([AC_LIBTOOL_PICMODE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-pic_mode=ifelse($#,1,$1,default)
-])# AC_LIBTOOL_PICMODE
-
-
-# AC_PROG_EGREP
-# -------------
-# This is predefined starting with Autoconf 2.54, so this conditional
-# definition can be removed once we require Autoconf 2.54 or later.
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
-   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
-    fi])
- EGREP=$ac_cv_prog_egrep
- AC_SUBST([EGREP])
-])])
-
-
-# AC_PATH_TOOL_PREFIX
-# -------------------
-# find a file program which can recognise shared library
-AC_DEFUN([AC_PATH_TOOL_PREFIX],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="ifelse([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-       case $deplibs_check_method in
-       "file_magic "*)
-         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-           $EGREP "$file_magic_regex" > /dev/null; then
-           :
-         else
-           cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-         fi ;;
-       esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-])# AC_PATH_TOOL_PREFIX
-
-
-# AC_PATH_MAGIC
-# -------------
-# find a file program which can recognise a shared library
-AC_DEFUN([AC_PATH_MAGIC],
-[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# AC_PATH_MAGIC
-
-
-# AC_PROG_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([AC_PROG_LD],
-[AC_ARG_WITH([gnu-ld],
-    [AC_HELP_STRING([--with-gnu-ld],
-       [assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])
-AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break
-       ;;
-      *)
-       test "$with_gnu_ld" != yes && break
-       ;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])# AC_PROG_LD
-
-
-# AC_PROG_LD_GNU
-# --------------
-AC_DEFUN([AC_PROG_LD_GNU],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# AC_PROG_LD_GNU
-
-
-# AC_PROG_LD_RELOAD_FLAG
-# ----------------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-])# AC_PROG_LD_RELOAD_FLAG
-
-
-# AC_DEPLIBS_CHECK_METHOD
-# -----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi4*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | kfreebsd*-gnu)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case "$host_cpu" in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  case $host_cpu in
-  alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64*)
-    lt_cv_deplibs_check_method=pass_all ;;
-  *)
-    # glibc up to 2.1.1 does not perform some relocations on ARM
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-nto-qnx*)
-  lt_cv_deplibs_check_method=unknown
-  ;;
-
-openbsd*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
-  else
-    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sco3.2v5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-])# AC_DEPLIBS_CHECK_METHOD
-
-
-# AC_PROG_NM
-# ----------
-# find the pathname to a BSD-compatible name lister
-AC_DEFUN([AC_PROG_NM],
-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
-    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-      */dev/null* | *'Invalid file or object type'*)
-       lt_cv_path_NM="$tmp_nm -B"
-       break
-        ;;
-      *)
-       case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-       */dev/null*)
-         lt_cv_path_NM="$tmp_nm -p"
-         break
-         ;;
-       *)
-         lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-         continue # so that we can try to find one that supports BSD flags
-         ;;
-       esac
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi])
-NM="$lt_cv_path_NM"
-])# AC_PROG_NM
-
-
-# AC_CHECK_LIBM
-# -------------
-# check for math library
-AC_DEFUN([AC_CHECK_LIBM],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-])# AC_CHECK_LIBM
-
-
-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl convenience library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-convenience to the configure arguments.  Note that LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
-# DIRECTORY is not provided, it is assumed to be `libltdl'.  LIBLTDL will
-# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
-# '${top_srcdir}/' (note the single quotes!).  If your package is not
-# flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  case $enable_ltdl_convenience in
-  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
-  "") enable_ltdl_convenience=yes
-      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
-  esac
-  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
-  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_CONVENIENCE
-
-
-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl installable library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-install to the configure arguments.  Note that LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
-# DIRECTORY is not provided and an installed libltdl is not found, it is
-# assumed to be `libltdl'.  LIBLTDL will be prefixed with '${top_builddir}/'
-# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
-# quotes!).  If your package is not flat and you're not using automake,
-# define top_builddir and top_srcdir appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  AC_CHECK_LIB(ltdl, lt_dlinit,
-  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
-  [if test x"$enable_ltdl_install" = xno; then
-     AC_MSG_WARN([libltdl not installed, but installation disabled])
-   else
-     enable_ltdl_install=yes
-   fi
-  ])
-  if test x"$enable_ltdl_install" = x"yes"; then
-    ac_configure_args="$ac_configure_args --enable-ltdl-install"
-    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
-    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  else
-    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
-    LIBLTDL="-lltdl"
-    LTDLINCL=
-  fi
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_INSTALLABLE
-
-
-# AC_LIBTOOL_CXX
-# --------------
-# enable support for C++ libraries
-AC_DEFUN([AC_LIBTOOL_CXX],
-[AC_REQUIRE([_LT_AC_LANG_CXX])
-])# AC_LIBTOOL_CXX
-
-
-# _LT_AC_LANG_CXX
-# ---------------
-AC_DEFUN([_LT_AC_LANG_CXX],
-[AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
-])# _LT_AC_LANG_CXX
-
-
-# AC_LIBTOOL_F77
-# --------------
-# enable support for Fortran 77 libraries
-AC_DEFUN([AC_LIBTOOL_F77],
-[AC_REQUIRE([_LT_AC_LANG_F77])
-])# AC_LIBTOOL_F77
-
-
-# _LT_AC_LANG_F77
-# ---------------
-AC_DEFUN([_LT_AC_LANG_F77],
-[AC_REQUIRE([AC_PROG_F77])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
-])# _LT_AC_LANG_F77
-
-
-# AC_LIBTOOL_GCJ
-# --------------
-# enable support for GCJ libraries
-AC_DEFUN([AC_LIBTOOL_GCJ],
-[AC_REQUIRE([_LT_AC_LANG_GCJ])
-])# AC_LIBTOOL_GCJ
-
-
-# _LT_AC_LANG_GCJ
-# ---------------
-AC_DEFUN([_LT_AC_LANG_GCJ],
-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
-    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
-      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
-        [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
-          [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
-])# _LT_AC_LANG_GCJ
-
-
-# AC_LIBTOOL_RC
-# --------------
-# enable support for Windows resource files
-AC_DEFUN([AC_LIBTOOL_RC],
-[AC_REQUIRE([LT_AC_PROG_RC])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
-])# AC_LIBTOOL_RC
-
-
-# AC_LIBTOOL_LANG_C_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
-AC_DEFUN([_LT_AC_LANG_C_CONFIG],
-[lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-_LT_AC_SYS_COMPILER
-
-#
-# Check for any special shared library compilation flags.
-#
-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
-if test "$GCC" = no; then
-  case $host_os in
-  sco3.2v5*)
-    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
-    ;;
-  esac
-fi
-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
-  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
-  if echo "$old_CC $old_CFLAGS " | grep "[[    ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[        ]]" >/dev/null; then :
-  else
-    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
-    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
-  fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
-  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
-  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
-  [],
-  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-# Report which librarie types wil actually be built
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-
-aix4* | aix5*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-  ;;
-  darwin* | rhapsody*)
-  if test "$GCC" = yes; then
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case "$host_os" in
-    rhapsody* | darwin1.[[012]])
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[[012]])
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-      ;;
-    esac
-    output_verbose_link_cmd='echo'
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
-    _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-  else
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-  fi
-    ;;
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_C_CONFIG
-
-
-# AC_LIBTOOL_LANG_CXX_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
-[AC_LANG_PUSH(C++)
-AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Dependencies to place before and after the object being linked:
-_LT_AC_TAGVAR(predep_objects, $1)=
-_LT_AC_TAGVAR(postdep_objects, $1)=
-_LT_AC_TAGVAR(predeps, $1)=
-_LT_AC_TAGVAR(postdeps, $1)=
-_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
-
-# Source file extension for C++ test sources.
-ac_ext=cc
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
-  unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
-  lt_cv_path_LD=$lt_cv_path_LDCXX
-else
-  unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-else
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-fi
-
-if test "$GXX" = yes; then
-  # Set up default GNU C++ configuration
-
-  AC_PROG_LD
-
-  # Check if GNU C++ uses GNU ld as the underlying linker, since the
-  # archiving commands below assume that GNU ld is being used.
-  if test "$with_gnu_ld" = yes; then
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-    #     investigate it a little bit more. (MM)
-    wlarc='${wl}'
-
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
-       grep 'no-whole-archive' > /dev/null; then
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    with_gnu_ld=no
-    wlarc=
-
-    # A generic and very simple default shared library creation
-    # command for GNU C++ for the case where it uses the native
-    # linker, instead of GNU ld.  If possible, this setting should
-    # overridden to take advantage of the native linker features on
-    # the platform it is being used on.
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-  fi
-
-  # Commands to make compiler produce verbose output that lists
-  # what "hidden" libraries, object files and flags are used when
-  # linking a shared library.
-  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
-  GXX=no
-  with_gnu_ld=no
-  wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-case $host_os in
-  aix3*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  aix4* | aix5*)
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      aix_use_runtimelinking=no
-
-      # Test if we are trying to use run time linking or normal
-      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-      # need to do runtime linking.
-      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
-       for ld_flag in $LDFLAGS; do
-         case $ld_flag in
-         *-brtl*)
-           aix_use_runtimelinking=yes
-           break
-           ;;
-         esac
-       done
-      esac
-
-      exp_sym_flag='-bexport'
-      no_entry_flag='-bnoentry'
-    fi
-
-    # When large executables or shared objects are built, AIX ld can
-    # have problems creating the table of contents.  If linking a library
-    # or program results in "error TOC overflow" add -mminimal-toc to
-    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-    _LT_AC_TAGVAR(archive_cmds, $1)=''
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-    if test "$GXX" = yes; then
-      case $host_os in aix4.[012]|aix4.[012].*)
-      # We only want to do this on AIX 4.2 and lower, the check
-      # below for broken collect2 doesn't work under 4.3+
-       collect2name=`${CC} -print-prog-name=collect2`
-       if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-       then
-         # We have reworked collect2
-         _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-       else
-         # We have old collect2
-         _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-       fi
-      esac
-      shared_flag='-shared'
-    else
-      # not using gcc
-      if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-       shared_flag='-G'
-      else
-       if test "$aix_use_runtimelinking" = yes; then
-         shared_flag='${wl}-G'
-       else
-         shared_flag='${wl}-bM:SRE'
-       fi
-      fi
-    fi
-
-    # It seems that -bexpall does not export symbols beginning with
-    # underscore (_), so it is better to generate a list of symbols to export.
-    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-    if test "$aix_use_runtimelinking" = yes; then
-      # Warning - without using the other runtime loading flags (-brtl),
-      # -berok will link without error, but may produce a broken library.
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-      # Determine the default libpath from the value encoded in an empty executable.
-      _LT_AC_SYS_LIBPATH_AIX
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-     else
-      if test "$host_cpu" = ia64; then
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-      else
-       # Determine the default libpath from the value encoded in an empty executable.
-       _LT_AC_SYS_LIBPATH_AIX
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-       # Warning - without using the other run time loading flags,
-       # -berok will link without error, but may produce a broken library.
-       _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-       # -bexpall does not export symbols beginning with underscore (_)
-       _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-       # Exported symbols can be pulled into shared objects from archives
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
-       _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-       # This is similar to how AIX traditionally builds it's shared libraries.
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-      fi
-    fi
-    ;;
-  chorus*)
-    case $cc_basename in
-      *)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-    esac
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-    # as there is no search path for DLLs.
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-    _LT_AC_TAGVAR(always_export_symbols, $1)=no
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-      # If the export-symbols file already is a .def file (1st line
-      # is EXPORTS), use it as is; otherwise, prepend...
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-       cp $export_symbols $output_objdir/$soname.def;
-      else
-       echo EXPORTS > $output_objdir/$soname.def;
-       cat $export_symbols >> $output_objdir/$soname.def;
-      fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-  ;;
-
-  darwin* | rhapsody*)
-  if test "$GXX" = yes; then
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case "$host_os" in
-    rhapsody* | darwin1.[[012]])
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[[012]])
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-      ;;
-    esac
-    lt_int_apple_cc_single_mod=no
-    output_verbose_link_cmd='echo'
-    if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-      lt_int_apple_cc_single_mod=yes
-    fi
-    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    else
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    fi
-    _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    else
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-  else
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-  fi
-    ;;
-
-  dgux*)
-    case $cc_basename in
-      ec++)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      ghcx)
-       # Green Hills C++ Compiler
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-    esac
-    ;;
-  freebsd[12]*)
-    # C++ shared libraries reported to be fairly broken before switch to ELF
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  freebsd-elf*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  freebsd* | kfreebsd*-gnu)
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-    # conventions
-    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-    ;;
-  gnu*)
-    ;;
-  hpux9*)
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-                               # but as the default
-                               # location of the library.
-
-    case $cc_basename in
-    CC)
-      # FIXME: insert proper C++ library support
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    aCC)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      #
-      # There doesn't appear to be a way to prevent this compiler from
-      # explicitly linking system object files so we need to strip them
-      # from the output so that they don't get included in the library
-      # dependencies.
-      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-      ;;
-    *)
-      if test "$GXX" = yes; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-        # FIXME: insert proper C++ library support
-        _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-    ;;
-  hpux10*|hpux11*)
-    if test $with_gnu_ld = no; then
-      case "$host_cpu" in
-      hppa*64*)
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-        ;;
-      ia64*)
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        ;;
-      *)
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        ;;
-      esac
-    fi
-    case "$host_cpu" in
-    hppa*64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-    ia64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-                                             # but as the default
-                                             # location of the library.
-      ;;
-    *)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-                                             # but as the default
-                                             # location of the library.
-      ;;
-    esac
-
-    case $cc_basename in
-      CC)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      aCC)
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-         ;;
-       *)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-         ;;
-       esac
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes; then
-         if test $with_gnu_ld = no; then
-           case "$host_cpu" in
-           ia64*|hppa*64*)
-             _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-             ;;
-           *)
-             _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-             ;;
-           esac
-         fi
-       else
-         # FIXME: insert proper C++ library support
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       fi
-       ;;
-    esac
-    ;;
-  irix5* | irix6*)
-    case $cc_basename in
-      CC)
-       # SGI C++
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-       # Archives containing C++ object files must be created using
-       # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-       # necessary to make sure instantiated templates are included
-       # in the archive.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-       ;;
-      *)
-       if test "$GXX" = yes; then
-         if test "$with_gnu_ld" = no; then
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-         else
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
-         fi
-       fi
-       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-       ;;
-    esac
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    ;;
-  linux*)
-    case $cc_basename in
-      KCC)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-       # Archives containing C++ object files must be created using
-       # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-       ;;
-      icpc)
-       # Intel C++
-       with_gnu_ld=yes
-       _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-       ;;
-      cxx)
-       # Compaq C++
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-       runpath_var=LD_RUN_PATH
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-    esac
-    ;;
-  lynxos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  m88k*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  mvs*)
-    case $cc_basename in
-      cxx)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-    esac
-    ;;
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    fi
-    # Workaround some broken pre-1.5 toolchains
-    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-    ;;
-  osf3*)
-    case $cc_basename in
-      KCC)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       # Archives containing C++ object files must be created using
-       # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-
-       ;;
-      RCC)
-       # Rational C++ 2.4.1
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      cxx)
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-         # Commands to make compiler produce verbose output that lists
-         # what "hidden" libraries, object files and flags are used when
-         # linking a shared library.
-         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-       else
-         # FIXME: insert proper C++ library support
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       fi
-       ;;
-    esac
-    ;;
-  osf4* | osf5*)
-    case $cc_basename in
-      KCC)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       # Archives containing C++ object files must be created using
-       # the KAI C++ compiler.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
-       ;;
-      RCC)
-       # Rational C++ 2.4.1
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      cxx)
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-         echo "-hidden">> $lib.exp~
-         $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~
-         $rm $lib.exp'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-         # Commands to make compiler produce verbose output that lists
-         # what "hidden" libraries, object files and flags are used when
-         # linking a shared library.
-         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-       else
-         # FIXME: insert proper C++ library support
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       fi
-       ;;
-    esac
-    ;;
-  psos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  sco*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case $cc_basename in
-      CC)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-    esac
-    ;;
-  sunos4*)
-    case $cc_basename in
-      CC)
-       # Sun C++ 4.x
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      lcc)
-       # Lucid
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-    esac
-    ;;
-  solaris*)
-    case $cc_basename in
-      CC)
-       # Sun C++ 4.2, 5.x and Centerline C++
-       _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-       case $host_os in
-         solaris2.[0-5] | solaris2.[0-5].*) ;;
-         *)
-           # The C++ compiler is used as linker so we must use $wl
-           # flag to pass the commands to the underlying system
-           # linker.
-           # Supported since Solaris 2.6 (maybe 2.5.1?)
-           _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-           ;;
-       esac
-       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-       # Archives containing C++ object files must be created using
-       # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-       # necessary to make sure instantiated templates are included
-       # in the archive.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-       ;;
-      gcx)
-       # Green Hills C++ Compiler
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-       # The C++ compiler must be used to create the archive.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-       ;;
-      *)
-       # GNU C++ compiler with Solaris linker
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-         if $CC --version | grep -v '^2\.7' > /dev/null; then
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-           _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-           # Commands to make compiler produce verbose output that lists
-           # what "hidden" libraries, object files and flags are used when
-           # linking a shared library.
-           output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-         else
-           # g++ 2.7 appears to require `-G' NOT `-shared' on this
-           # platform.
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-           _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-           # Commands to make compiler produce verbose output that lists
-           # what "hidden" libraries, object files and flags are used when
-           # linking a shared library.
-           output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-         fi
-
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-       fi
-       ;;
-    esac
-    ;;
-  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  tandem*)
-    case $cc_basename in
-      NCC)
-       # NonStop-UX NCC 3.20
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-    esac
-    ;;
-  vxworks*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  *)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-esac
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$GXX"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_POSTDEP_PREDEP($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-])# AC_LIBTOOL_LANG_CXX_CONFIG
-
-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
-# ------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
-int a;
-void foo (void) { a = 0; }
-EOF
-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-EOF
-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-EOF
-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
-
-  for p in `eval $output_verbose_link_cmd`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" \
-         || test $p = "-R"; then
-        prev=$p
-        continue
-       else
-        prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-        case $p in
-        -L* | -R*)
-          # Internal compiler library paths should come after those
-          # provided the user.  The postdeps already come after the
-          # user supplied libs so there is no need to process them.
-          if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
-            _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-          else
-            _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-          fi
-          ;;
-        # The "-l" case would never come before the object being
-        # linked, so don't bother handling this case.
-        esac
-       else
-        if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
-          _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
-        else
-          _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
-        fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-        pre_test_object_deps_done=yes
-        continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-        if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
-          _LT_AC_TAGVAR(predep_objects, $1)="$p"
-        else
-          _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
-        fi
-       else
-        if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
-          _LT_AC_TAGVAR(postdep_objects, $1)="$p"
-        else
-          _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
-        fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$rm -f confest.$objext
-
-case " $_LT_AC_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
-])# AC_LIBTOOL_POSTDEP_PREDEP
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
-[AC_REQUIRE([AC_PROG_F77])
-AC_LANG_PUSH(Fortran 77)
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-aix4* | aix5*)
-  test "$enable_shared" = yes && enable_static=no
-  ;;
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$G77"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_F77_CONFIG
-
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_GCJ_CONFIG
-
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the Windows resource compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_RC_CONFIG
-
-
-# AC_LIBTOOL_CONFIG([TAGNAME])
-# ----------------------------
-# If TAGNAME is not passed, then create an initial libtool script
-# with a default configuration from the untagged config vars.  Otherwise
-# add code to config.status for appending the configuration named by
-# TAGNAME from the matching tagged config vars.
-AC_DEFUN([AC_LIBTOOL_CONFIG],
-[# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    _LT_AC_TAGVAR(compiler, $1) \
-    _LT_AC_TAGVAR(CC, $1) \
-    _LT_AC_TAGVAR(LD, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
-    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
-    _LT_AC_TAGVAR(old_archive_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
-    _LT_AC_TAGVAR(predep_objects, $1) \
-    _LT_AC_TAGVAR(postdep_objects, $1) \
-    _LT_AC_TAGVAR(predeps, $1) \
-    _LT_AC_TAGVAR(postdeps, $1) \
-    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
-    _LT_AC_TAGVAR(archive_cmds, $1) \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(postinstall_cmds, $1) \
-    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
-    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
-    _LT_AC_TAGVAR(no_undefined_flag, $1) \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
-    _LT_AC_TAGVAR(hardcode_automatic, $1) \
-    _LT_AC_TAGVAR(module_cmds, $1) \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
-    _LT_AC_TAGVAR(exclude_expsyms, $1) \
-    _LT_AC_TAGVAR(include_expsyms, $1); do
-
-    case $var in
-    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
-    _LT_AC_TAGVAR(module_cmds, $1) | \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\[$]0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
-    ;;
-  esac
-
-ifelse([$1], [],
-  [cfgfile="${ofile}T"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  $rm -f "$cfgfile"
-  AC_MSG_NOTICE([creating $ofile])],
-  [cfgfile="$ofile"])
-
-  cat <<__EOF__ >> "$cfgfile"
-ifelse([$1], [],
-[#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG],
-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
-
-# Is the compiler the GNU C compiler?
-with_gcc=$_LT_AC_TAGVAR(GCC, $1)
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
-
-# Symbols that must always be exported.
-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
-
-ifelse([$1],[],
-[# ### END LIBTOOL CONFIG],
-[# ### END LIBTOOL TAG CONFIG: $tagname])
-
-__EOF__
-
-ifelse([$1],[], [
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" || \
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-])
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-])# AC_LIBTOOL_CONFIG
-
-
-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-
-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
-
-
-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-# ---------------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([AC_PROG_NM])
-AC_REQUIRE([AC_OBJEXT])
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris* | sysv5*)
-  symcode='[[BDRT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[     ]]\($symcode$symcode*\)[[       ]][[    ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-       mv -f "$nlist"T "$nlist"
-      else
-       rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-       if grep ' nm_test_func$' "$nlist" >/dev/null; then
-         cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-         # Now generate the symbol file.
-         eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-         cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[[]] =
-{
-EOF
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-         cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-         # Now try linking the two files.
-         mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
-         LIBS="conftstm.$ac_objext"
-         CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-         if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-           pipe_works=yes
-         fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
-       else
-         echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-       fi
-      else
-       echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-
-
-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
-# ---------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
-
-AC_MSG_CHECKING([for $compiler option to produce PIC])
- ifelse([$1],[CXX],[
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | os2* | pw32*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       ;;
-      *)
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-       ;;
-      esac
-      ;;
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix4* | aix5*)
-       # All AIX code is PIC.
-       if test "$host_cpu" = ia64; then
-         # AIX 5 now supports IA64 processor
-         _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-       else
-         _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-       fi
-       ;;
-      chorus*)
-       case $cc_basename in
-       cxch68)
-         # Green Hills C++ Compiler
-         # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-         ;;
-       esac
-       ;;
-      dgux*)
-       case $cc_basename in
-         ec++)
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-           ;;
-         ghcx)
-           # Green Hills C++ Compiler
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      freebsd* | kfreebsd*-gnu)
-       # FreeBSD uses GNU C++
-       ;;
-      hpux9* | hpux10* | hpux11*)
-       case $cc_basename in
-         CC)
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-           if test "$host_cpu" != ia64; then
-             _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-           fi
-           ;;
-         aCC)
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-           case "$host_cpu" in
-           hppa*64*|ia64*)
-             # +Z the default
-             ;;
-           *)
-             _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-             ;;
-           esac
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      irix5* | irix6* | nonstopux*)
-       case $cc_basename in
-         CC)
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-           # CC pic flag -KPIC is the default.
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      linux*)
-       case $cc_basename in
-         KCC)
-           # KAI C++ Compiler
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-           ;;
-         icpc)
-           # Intel C++
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-           ;;
-         cxx)
-           # Compaq C++
-           # Make sure the PIC flag is empty.  It appears that all Alpha
-           # Linux and Compaq Tru64 Unix objects are PIC.
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      lynxos*)
-       ;;
-      m88k*)
-       ;;
-      mvs*)
-       case $cc_basename in
-         cxx)
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      netbsd*)
-       ;;
-      osf3* | osf4* | osf5*)
-       case $cc_basename in
-         KCC)
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-           ;;
-         RCC)
-           # Rational C++ 2.4.1
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-           ;;
-         cxx)
-           # Digital/Compaq C++
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           # Make sure the PIC flag is empty.  It appears that all Alpha
-           # Linux and Compaq Tru64 Unix objects are PIC.
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      psos*)
-       ;;
-      sco*)
-       case $cc_basename in
-         CC)
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      solaris*)
-       case $cc_basename in
-         CC)
-           # Sun C++ 4.2, 5.x and Centerline C++
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-           ;;
-         gcx)
-           # Green Hills C++ Compiler
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      sunos4*)
-       case $cc_basename in
-         CC)
-           # Sun C++ 4.x
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-           ;;
-         lcc)
-           # Lucid
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      tandem*)
-       case $cc_basename in
-         NCC)
-           # NonStop-UX NCC 3.20
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      unixware*)
-       ;;
-      vxworks*)
-       ;;
-      *)
-       _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-       ;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-       ;;
-      esac
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-       ;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc* | ecc*)
-       _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      ccc*)
-        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
-    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
-    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-])
-
-
-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
-# ------------------------------------
-# See if the linker supports building shared libraries.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-ifelse([$1],[CXX],[
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix4* | aix5*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
-  cygwin* | mingw*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-],[
-  runpath_var=
-  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_AC_TAGVAR(archive_cmds, $1)=
-  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
-  _LT_AC_TAGVAR(module_cmds, $1)=
-  _LT_AC_TAGVAR(module_expsym_cmds, $1)=
-  _LT_AC_TAGVAR(always_export_symbols, $1)=no
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_AC_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-       # support --undefined.  This deserves some investigation.  FIXME
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=no
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-       wlarc=
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-  linux*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds"
-      supports_anon_versioning=no
-      case `$LD -v 2>/dev/null` in
-        *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-        *\ 2.11.*) ;; # other 2.11 versions
-        *) supports_anon_versioning=yes ;;
-      esac
-      if test $supports_anon_versioning = yes; then
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-      else
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds"
-      fi
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-    ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
-      runpath_var=LD_RUN_PATH
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-       # Neither direct hardcoding nor static linking is supported with a
-       # broken collect2.
-       _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-       # On IA64, the linker does run time linking by default, so we don't
-       # have to do anything special.
-       aix_use_runtimelinking=no
-       exp_sym_flag='-Bexport'
-       no_entry_flag=""
-      else
-       # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-         _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-       else
-         _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-       fi
-       aix_use_runtimelinking=no
-
-       # Test if we are trying to use run time linking or normal
-       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
-       case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
-         for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-           aix_use_runtimelinking=yes
-           break
-         fi
-         done
-       esac
-
-       exp_sym_flag='-bexport'
-       no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      _LT_AC_TAGVAR(archive_cmds, $1)=''
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-      if test "$GCC" = yes; then
-       case $host_os in aix4.[012]|aix4.[012].*)
-       # We only want to do this on AIX 4.2 and lower, the check
-       # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
-         if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-         then
-         # We have reworked collect2
-         _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-         else
-         # We have old collect2
-         _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-         fi
-       esac
-       shared_flag='-shared'
-      else
-       # not using gcc
-       if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-         shared_flag='-G'
-       else
-       if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
-       fi
-       fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
-       # Warning - without using the other runtime loading flags (-brtl),
-       # -berok will link without error, but may produce a broken library.
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       _LT_AC_SYS_LIBPATH_AIX
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-       if test "$host_cpu" = ia64; then
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-       else
-        # Determine the default libpath from the value encoded in an empty executable.
-        _LT_AC_SYS_LIBPATH_AIX
-        _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-         # Warning - without using the other run time loading flags,
-         # -berok will link without error, but may produce a broken library.
-         _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-         # -bexpall does not export symbols beginning with underscore (_)
-         _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-         # Exported symbols can be pulled into shared objects from archives
-         _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
-         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-         # This is similar to how AIX traditionally builds it's shared libraries.
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-       fi
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      # see comment about different semantics on the GNU ld section
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    bsdi4*)
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      ;;
-
-    darwin* | rhapsody*)
-    if test "$GXX" = yes ; then
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      case "$host_os" in
-      rhapsody* | darwin1.[[012]])
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-       ;;
-      *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[[012]])
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-       ;;
-      esac
-       lt_int_apple_cc_single_mod=no
-       output_verbose_link_cmd='echo'
-       if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-         lt_int_apple_cc_single_mod=yes
-       fi
-       if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-       else
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        else
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        fi
-          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-      ;;
-
-    dgux*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    freebsd1*)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       *)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       esac
-      else
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       *)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       esac
-      fi
-      if test "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*)
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-         _LT_AC_TAGVAR(hardcode_direct, $1)=no
-         _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-         ;;
-       ia64*)
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-         _LT_AC_TAGVAR(hardcode_direct, $1)=no
-         _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-         ;;
-       *)
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-         _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-         _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-         ;;
-       esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    openbsd*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      else
-       case $host_os in
-        openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-          _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-          _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-          ;;
-        *)
-          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-          _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-          ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-       $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-       # Both c and cxx compiler support -rpath directly
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    sco3.2v5*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
-      esac
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-       # Use $CC to link under sequent, because it throws in some extra .o
-       # files that make .init and .fini sections work.
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-       sni)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-       ;;
-       siemens)
-         ## LD is ld it makes a PLAMLIB
-         ## CC just makes a GrossModule.
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-         _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-         _LT_AC_TAGVAR(hardcode_direct, $1)=no
-        ;;
-       motorola)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-       ;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-       runpath_var=LD_RUN_PATH
-       hardcode_runpath_var=yes
-       _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv5*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_AC_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
-        then
-         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
-      ;;
-    esac
-  fi
-  ;;
-esac
-])# AC_LIBTOOL_PROG_LD_SHLIBS
-
-
-# _LT_AC_FILE_LTDLL_C
-# -------------------
-# Be careful that the start marker always follows a newline.
-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# #  ifdef __CYGWIN32__
-# #    define __CYGWIN__ __CYGWIN32__
-# #  endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-#   __hDllInstance_base = hInst;
-#   return TRUE;
-# }
-# /* ltdll.c ends here */
-])# _LT_AC_FILE_LTDLL_C
-
-
-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
-# ---------------------------------
-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
-
-
-# old names
-AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
-AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
-AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
-AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
-
-# This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])
-
-AC_DEFUN([LT_AC_PROG_GCJ],
-[AC_CHECK_TOOL(GCJ, gcj, no)
-  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-  AC_SUBST(GCJFLAGS)
-])
-
-AC_DEFUN([LT_AC_PROG_RC],
-[AC_CHECK_TOOL(RC, windres, no)
-])
-
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-# LT_AC_PROG_SED
-# --------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-AC_DEFUN([LT_AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && break
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-SED=$lt_cv_path_SED
-])
-AC_MSG_RESULT([$SED])
-])
diff --git a/zephyr/athena-version b/zephyr/athena-version
deleted file mode 100644 (file)
index 8036641..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# The patch version specified in this file is generally overridden by
-# environment variables ("release" on rhlinux, "ATHENA_PATCH_VERSION"
-# on other platforms).  This file should only be updated in the source
-# tree for major and minor version updates, not patch releases, to
-# avoid having lots of revisions.
-
-# This file is sourced by the Bourne shell.
-
-major=9
-minor=4
-patch=0
diff --git a/zephyr/clients/Makefile.in b/zephyr/clients/Makefile.in
deleted file mode 100644 (file)
index 2ae4614..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-SHELL = /bin/sh
-
-SUBDIRS=zaway zctl zleave zlocate znol \
-       zshutdown_notify zstat zwrite
-
-all:
-       for i in ${SUBDIRS}; do (cd $$i; ${MAKE} $@) || exit 1; done
-
-check install clean:
-       for i in ${SUBDIRS}; do (cd $$i; ${MAKE} $@) || exit 1; done
-
-.PHONY: all check install clean
-
diff --git a/zephyr/clients/zaway/Makefile.in b/zephyr/clients/zaway/Makefile.in
deleted file mode 100644 (file)
index 689e4dd..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-top_builddir=../..
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-bindir=${exec_prefix}/bin
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=../..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-INSTALL=@INSTALL@
-
-LIBZEPHYR=${BUILDTOP}/lib/libzephyr.la
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -I${top_srcdir}/h -I${BUILDTOP}/h ${CPPFLAGS}
-LDFLAGS=@LDFLAGS@
-LIBS=${LIBZEPHYR} @LIBS@ -lcom_err
-
-OBJS=  zaway.o
-
-all: zaway
-
-zaway: ${OBJS} ${LIBZEPHYR}
-       ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install: zaway
-       ${LIBTOOL} --mode=install ${INSTALL} -m 755 zaway ${DESTDIR}${bindir}
-       ${INSTALL} -m 644 ${srcdir}/zaway.1 ${DESTDIR}${mandir}/man1
-
-clean:
-       ${LIBTOOL} --mode=clean rm -f zaway
-       rm -f ${OBJS}
-
-${OBJS}: ${top_srcdir}/h/sysdep.h ${BUILDTOP}/h/config.h
-${OBJS}: ${BUILDTOP}/h/zephyr/zephyr.h ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/clients/zaway/zaway.1 b/zephyr/clients/zaway/zaway.1
deleted file mode 100644 (file)
index a4a4614..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-.\"    $Id: zaway.1 2091 2007-12-20 01:17:23Z kcr $
-.\"
-.\" Copyright 1987,1988 by the Massachusetts Institute of Technology
-.\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
-.\" specifies the terms and conditions for redistribution.
-.\"
-.\"    @(#)zaway.1     6.1 (MIT) 7/9/87
-.\"
-.TH ZAWAY 1 "July 1, 1988" "MIT Project Athena"
-.ds ]W MIT Project Athena
-.SH NAME
-zaway \- tell other people via Zephyr that you aren't around
-.SH SYNOPSIS
-.B zaway
-[
-.I OPTIONS
-]
-[
-.I FILE
-]
-.SH DESCRIPTION
-.I zaway
-provides a way for you to automatically send replies when other people
-contact you using
-.I zwrite(1). zaway
-subscribes itself to class "MESSAGE", instance "*", so that it can
-monitor your incoming messages.  It does not affect the operation of any
-other client receiving messages.
-.I zaway
-is typically run when you are leaving your terminal or display
-temporarily.
-.I zaway
-usually never exits; when you return to your terminal you should type
-the interrupt character (usually ^C) in order to make
-.I zaway
-exit.
-.SS OPTIONS
-.TP
-.I "\-m STRING"
-Use STRING as the body of the auto-reply message.  Any message file
-(specified on the command line or the default) is ignored.
-.TP
-.I "\-w"
-Watch the invoking user's location status.  If the user is locatable
-anywhere, no auto-replies will be sent.
-.TP
-.I "\-h"
-Displays a short usage message and exits.
-.PP
-.I zaway
-uses a message file (which defaults
-to $HOME/.away) to describe what reponses should be sent to which
-senders.  The general format of this file
-is:
-.PP
-.nf
-       >name
-       >name
-       message
-       >name
-       message
-.fi
-.PP
-Any number of user names may be specified preceding the message to send
-to those senders.  If a user name appears more than once, the message will
-be a concatenation of each of the appropriate messages.  There are
-two special names: "*" indicates that the following message should be
-sent to all senders and "%" indicates that the following message should
-only be sent if the user name has not matched yet. 
-.PP
-If no file is specified,
-and no default file can be found, the following message is returned:
-.sp
-.in +5
-I'm sorry, but I am currently away from the terminal and am
-not able to receive your message.
-.in -5
-.sp
-If a user name does not match any of those listed in the file, and no
-"*" or "%" field is specified, no return message is sent.  All
-messages are preceded by a signature "Automated reply:".  To avoid
-loops, messages are not sent in response to messages beginning with an
-"Automated reply:" signature or sent by the same Kerberos principal as
-the user running
-.I zaway.
-
-.SH SAMPLE FILE
-.nf
->eichin
->tony
-Hi there guys!  I'm in the other room right now.
-I'll be back in 5 minutes or so.
->jruser
-Sorry, but I'm gone for the day...
->%
-Hello...I'm not sure who you are.  I'll be back soon,
-though.
->*
-This message comes to you compliments of zaway!
-.fi
-
-The final "compliments" message will be included in all messages,
-whereas the "I'm not sure" message will only be included in messages that
-are not from "eichin", "tony", or "jruser".
-.SH FILES
-$HOME/.away
-.SH SEE ALSO
-zephyr(1), zwgc(1), zwrite(1), zhm(8), zephyrd(8)
-.br
-Project Athena Technical Plan Section E.4.1, `Zephyr Notification
-Service'
-.SH AUTHOR
-.PP
-Robert S. French (MIT-Project Athena)
-.SH RESTRICTIONS
-Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
-All Rights Reserved.
-.br
-.I zephyr(1)
-specifies the terms and conditions for redistribution.
diff --git a/zephyr/clients/zaway/zaway.c b/zephyr/clients/zaway/zaway.c
deleted file mode 100644 (file)
index 66d0228..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains code for the "zaway" command.
- *
- *     Created by:     Robert French
- *
- *     $Id: zaway.c 2337 2009-03-22 21:03:21Z kcr $
- *
- *     Copyright (c) 1987, 1993 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <sysdep.h>
-#include <zephyr/mit-copyright.h>
-#include <zephyr/zephyr.h>
-#include <pwd.h>
-#include <com_err.h>
-
-#ifndef lint
-static const char rcsid_zaway_c[] = "$Id: zaway.c 2337 2009-03-22 21:03:21Z kcr $";
-#endif
-
-#define MESSAGE_CLASS "MESSAGE"
-#define DEFAULT_MSG "I'm sorry, but I am currently away from the terminal and am\nnot able to receive your message.\n"
-#define RESPONSE_OPCODE ""
-
-RETSIGTYPE cleanup(int);
-u_short port;
-
-void
-usage(char *name)
-{
-       printf("Usage: %s [OPTIONS] [FILE]\n"
-              "\n"
-              "  -m STRING    use STRING as the body of the reply message\n"
-              "  -w           watch your location and only reply if you aren't locatable\n"
-              "  -h           display this help and exit\n",
-              name);
-}
-
-int
-main(int argc,
-     char *argv[])
-{
-       FILE *fp;
-       ZNotice_t notice;
-       ZSubscription_t sub;
-       register int retval;
-       struct passwd *pw;
-       register char *ptr;
-       char awayfile[BUFSIZ],*msg[2],*envptr;
-       int optchar, watch_location;
-       char *cmdline_msg;
-       int nlocs;
-       char *find_message(ZNotice_t *, FILE *);
-       char *charset = NULL;
-       unsigned short zcharset;
-           
-#ifdef _POSIX_VERSION
-       struct sigaction sa;
-#endif
-       
-       if ((retval = ZInitialize()) != ZERR_NONE) {
-               com_err(argv[0],retval,"while initializing");
-               exit(1);
-       }
-
-       port = 0;
-       if ((retval = ZOpenPort(&port)) != ZERR_NONE) {
-               com_err(argv[0],retval,"while opening port");
-               exit(1);
-       }
-
-       sub.zsub_class = MESSAGE_CLASS;
-       sub.zsub_classinst = "*";
-       sub.zsub_recipient = ZGetSender();
-
-       cmdline_msg = 0;
-       watch_location = 0;
-       while ((optchar = getopt(argc, argv, "m:whx:")) != EOF) {
-               switch (optchar) {
-               case 'm':
-                       cmdline_msg = optarg;
-                       break;
-
-               case 'w':
-                       watch_location = 1;
-                       break;
-
-               case 'h':
-                       usage(argv[0]);
-                       return 0;
-
-               case 'x':
-                       charset = optarg;
-                       break;
-
-               case '?':
-                       fprintf(stderr,
-                               "Unrecognized option '-%c'.\n"
-                               "Try '%s -h' for more information.\n",
-                               optopt, argv[0]);
-                       return 1;
-               }
-       }
-
-       zcharset = ZGetCharset(charset);
-
-       if (argc > optind)
-               (void) strcpy(awayfile,argv[optind]);
-       else {
-               envptr = getenv("HOME");
-               if (envptr)
-                       (void) sprintf(awayfile,"%s/.away",envptr);
-               else {
-                       if (!(pw = getpwuid((int) getuid()))) {
-                               fprintf(stderr,"Who are you?\n");
-                               exit(1);
-                       }
-                       (void) sprintf(awayfile,"%s/.away",pw->pw_dir);
-               } 
-       }
-
-       fp = fopen(awayfile,"r");
-       if (!fp && argc > optind) {
-               fprintf(stderr,"File %s not found!\n",awayfile);
-               exit(1);
-       } 
-#ifdef _POSIX_VERSION
-       (void) sigemptyset(&sa.sa_mask);
-       sa.sa_flags = 0;
-       sa.sa_handler = cleanup;
-       (void) sigaction(SIGINT, &sa, (struct sigaction *)0);
-       (void) sigaction(SIGTERM, &sa, (struct sigaction *)0);
-       (void) sigaction(SIGHUP, &sa, (struct sigaction *)0);
-#else
-       (void) signal(SIGINT, cleanup);
-       (void) signal(SIGTERM, cleanup);
-       (void) signal(SIGHUP, cleanup);
-#endif
-       if ((retval = ZSubscribeToSansDefaults(&sub,1,port)) != ZERR_NONE) {
-               com_err(argv[0],retval,"while subscribing");
-               exit(1);
-       }
-
-       for (;;) {
-               if ((retval = ZReceiveNotice(&notice, (struct sockaddr_in *)0)) != ZERR_NONE) {
-                       if (retval != ETIMEDOUT)
-                               com_err(argv[0],retval,"while receiving notice");
-                       continue;
-               }
-
-               if (strcmp(notice.z_sender,ZGetSender()) == 0 ||
-                   strcmp(notice.z_opcode,"PING") == 0 ||
-                   strcmp(notice.z_opcode,"AUTO") == 0 ||
-                   strcmp(notice.z_message,"Automated reply:") == 0) {
-                    ZFreeNotice(&notice);
-                    continue;
-               }
-
-               if (watch_location) {
-                       if ((retval = ZLocateUser(ZGetSender(), &nlocs, ZNOAUTH))
-                           != ZERR_NONE) {
-                               com_err(argv[0],retval,"while locating self");
-                               continue;
-                       }
-
-                       if (nlocs != 0) {
-                               /* User is logged in.  Don't send an autoreply. */
-                               continue;
-                       }
-
-                       ZFlushLocations();
-               }
-
-               if (cmdline_msg) {
-                   ptr = strdup(cmdline_msg);
-                   if (!ptr) {
-                       com_err(argv[0],ENOMEM,"while getting cmdline message");
-                       exit(1);
-                   }
-               }
-               else if (fp) {
-                       if (!(ptr = find_message(&notice,fp))) {
-                               ZFreeNotice(&notice);
-                               continue;
-                       }
-               }
-               else {
-                       ptr = malloc(sizeof(DEFAULT_MSG)+1);
-                       if (!ptr) {
-                               com_err(argv[0],ENOMEM,"while getting default message");
-                               exit(1);
-                       }
-                       (void) strcpy(ptr,DEFAULT_MSG);
-               }
-               notice.z_recipient = notice.z_sender;
-               notice.z_sender = 0;
-               notice.z_default_format = "";
-               notice.z_opcode = RESPONSE_OPCODE;
-               notice.z_charset = zcharset;
-
-               msg[0] = "Automated reply:";
-               msg[1] = ptr;
-               
-               notice.z_message_len = strlen(notice.z_message)+1;
-               if ((retval = ZSendList(&notice,msg,2,ZNOAUTH)) != ZERR_NONE) {
-                       com_err(argv[0],retval,"while sending notice");
-               }
-               free(ptr);
-               ZFreeNotice(&notice);
-       }
-}
-
-char *
-find_message(ZNotice_t *notice,
-            FILE *fp)
-{
-       char *ptr,*ptr2;
-       char bfr[BUFSIZ],sender[BUFSIZ];
-       int gotone,lastwasnt;
-       
-       rewind(fp);
-
-       (void) strcpy(sender,notice->z_sender);
-       ptr2 = strchr(sender,'@');
-       if (ptr2)
-               *ptr2 = '\0';
-       
-       ptr = 0;
-       gotone = 0;
-       lastwasnt = 0;
-       
-       while (fgets(bfr,sizeof bfr,fp) != (char *)0) {
-               if (*bfr == '>') {
-                       if (lastwasnt)
-                               gotone = 0;
-                       bfr[strlen(bfr)-1] = '\0';
-                       ptr2 = strchr(bfr,'@');
-                       if (ptr2)
-                               *ptr2 = '\0';
-                       if (!strcmp(bfr+1,sender) ||
-                           !strcmp(bfr+1,"*") ||
-                           (!strcmp(bfr+1,"%") && !ptr))
-                               gotone = 1;
-                       lastwasnt = 0;
-               } 
-               else {
-                       if (gotone) {
-                               if (!ptr) {
-                                       ptr = malloc((unsigned)(strlen(bfr)+1));
-                                       *ptr = '\0';
-                               } 
-                               else
-                                       ptr = realloc(ptr,(unsigned)(strlen(bfr)+strlen(ptr)+1));
-                               (void) strcat(ptr,bfr);
-                       }
-                       lastwasnt = 1;
-               }
-       }
-
-       return (ptr);
-}
-
-RETSIGTYPE
-cleanup(int ignored)
-{
-    ZCancelSubscriptions(port);
-    exit(1);
-}
diff --git a/zephyr/clients/zctl/Makefile.in b/zephyr/clients/zctl/Makefile.in
deleted file mode 100644 (file)
index f84e048..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-bindir=${exec_prefix}/bin
-top_builddir=../..
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=../..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-INSTALL=@INSTALL@
-
-LIBZEPHYR=${BUILDTOP}/lib/libzephyr.la
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -I${top_srcdir}/h -I${BUILDTOP}/h @X_CFLAGS@ ${CPPFLAGS}
-LDFLAGS=@LDFLAGS@
-LIBS=${LIBZEPHYR} -lss -lreadline -lhistory -lcurses @LIBS@ -lcom_err
-
-OBJS=  zctl.o zctl_cmds.o
-
-all: zctl
-
-zctl: ${OBJS} ${LIBZEPHYR}
-       ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-zctl_cmds.c: zctl_cmds.ct
-       mk_cmds ${srcdir}/zctl_cmds.ct
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install: zctl
-       ${LIBTOOL} --mode=install ${INSTALL} -m 755 zctl ${DESTDIR}${bindir}
-       ${INSTALL} -m 644 ${srcdir}/zctl.1 ${DESTDIR}${mandir}/man1
-
-clean:
-       ${LIBTOOL} --mode=clean rm -f zctl
-       rm -f ${OBJS} zctl_cmds.c
-
-${OBJS}: ${top_srcdir}/h/sysdep.h ${BUILDTOP}/h/config.h
-${OBJS}: ${BUILDTOP}/h/zephyr/zephyr.h ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/clients/zctl/zctl.1 b/zephyr/clients/zctl/zctl.1
deleted file mode 100644 (file)
index 8a3ab0e..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-.\"    $Id: zctl.1 2091 2007-12-20 01:17:23Z kcr $
-.\"
-.\" Copyright 1987,1988 by the Massachusetts Institute of Technology
-.\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
-.\" specifies the terms and conditions for redistribution.
-.\"
-.\"
-.TH ZCTL 1 "July 1, 1988" "MIT Project Athena"
-.ds ]W MIT Project Athena
-.SH NAME
-zctl \- zephyr control program
-.SH SYNOPSIS
-.B zctl
-[
-.I options
-]
-.SH DESCRIPTION
-.I Zctl
-is a general purpose control program for the
-.I Zephyr(1)
-Notification Service.  It allows the user to subscribe to specific
-notice types, to save the subscriptions in a file (default
-$HOME/.zephyr.subs), to change his location information, and to send
-control messages to the HostManager,
-.I zhm(8),
-and the WindowGram client,
-.I zwgc(1).
-.PP
-The commands may be typed on the command line, or may be entered
-interactively by just typing
-.I zctl
-and then typing commands to the prompt.
-.br
-.B NOTE:
-For all commands accepting an optional \fIrecipient\fR argument, the
-\fIrecipient\fR defaults to your Kerberos principal.  You may also
-subscribe to recipient ``\fI*\fR''.  If you specify a recipient, it is
-silently converted to ``\fI*\fR''.
-.br
-The commands are as follows:
-.TP 15
-.B add \fIclass instance\fR [ \fIrecipient\fR ]
-Subscribe to \fIclass, instance, recipient\fR, and add this triplet to
-the subscriptions file.
-.TP
-.B add_unsubscription \fIclass instance\fR [ \fIrecipient\fR ]
-Unsubscribe to \fIclass, instance, recipient\fR, and add this triplet
-to the subscriptions file as an un-subscription.
-For an explanation of un-subscriptions, see below.
-.TP
-.B cancel
-Cancel all subscriptions.
-.TP
-.B defaults
-Retrieve the default subscription list from the Zephyr server.
-.TP
-.B delete \fIclass instance\fR [ \fIrecipient\fR ]
-Unsubscribe to \fIclass, instance, recipient\fR, and remove this triplet
-from the subscriptions file.
-.TP
-.B delete_unsubscription \fIclass instance\fR [ \fIrecipient\fR ]
-Unsubscribe to \fIclass, instance, recipient\fR, and remove this triplet
-from the subscriptions file as an un-subscription.
-.TP
-.B file \fR[ \fIfile\fR ]
-Set default subscriptions file to \fIfile\fR.  If \fIfile\fR isn't specified,
-show what the current subscriptions file is.
-.TP
-.B flush_locs
-Tell the Zephyr servers to flush all location information associated with
-the user.  This should only be used to remove any incorrect data that may have
-been left after a system crash.
-.TP
-.B hide
-Hide your location as maintained by the Zephyr server.  This does not
-affect the value of the exposure variable (see below, under
-.B set).
-.TP
-.B hm_flush
-Tell the HostManager,
-.I zhm(8),
-to ask the server to flush all state associated with the current host.
-.TP
-.B list \fR[ \fIfile\fR ]
-List contents of current subscriptions file or
-.I file.
-Any macros in the file (see below) are displayed verbatim and not expanded.
-.TP
-.B list_requests
-List all available commands.  May be abbreviated by '?'.
-.TP
-.B load \fR[ \fIfile\fR ]
-Subscribe to all subscription triplets and unsubscribe to all
-un-subscription triplets in current subscriptions file or \fIfile\fR.
-.TP
-.B new_server
-Tell the HostManager,
-.I zhm(8),
-to find a new Zephyr server.
-.TP
-.B quit
-Exit from \fIzctl.
-.TP
-.B retrieve
-Retrieve all current subscriptions from the Zephyr server.  These include
-subscriptions that might have been made by other programs, such as
-.I znol(1).
-.TP
-.B save \fR[ \fIfile\fR ]
-Save all current subscriptions (as returned by the Zephyr server)
-into current subscriptions file or \fIfile\fR.  The 
-file will be replaced.
-.TP
-.B set \fIvar\fR [ \fIvalue\fR ]
-Set the value of Zephyr variable \fIvar\fR to \fIvalue\fR, or null if
-no \fIvalue\fR is specified.  The variable \fBexposure\fR has special
-significance, and can only be set to the values none, opstaff, realm-visible,
-realm-announced, net-visible, and net-announced.  Setting this variable
-immediately updates the information in the Zephyr servers (see below for
-an explanation of the exposure levels).  In addition,
-setting this variable to none automatically performs the equivalent of a 
-.B wg_shutdown
-command, and setting it to one of the other values automatically
-performs the equivalent of a 
-.B wg_startup
-command.
-.br
-The variable \fBresolved_addresses\fR determines whether zwgc will,
-for an IP address indicating the origin of a message, attempt to look
-up the hostname corresponding to that IP address. The value none
-indicates that hostnames will never be found, and that the zwgc
-fromhost variable will thus always contain an IP address (in
-dotted-decimal form). The value all indicates that there will always
-be an attempt to look up a hostname. Note that in this case, if you
-have any subscriptions with recipient ``\fI*\fR'', these subscriptions
-may be revealed to other Zephyr users who operate their own DNS name
-servers. Any other value is interpreted as a regular expression;
-hostname lookup attempts will occur only if the IP address matches
-this regular expression.
-.br
-Any variable settings you make will be stored in \fI$HOME/.zephyr.vars\fR
-.TP
-.B show \fIvar\fR [ \fIvar\fR \ ... ]
-Show the value of the specified Zephyr variables.  If a variable is not
-defined in the user's own variables file, the system variables file
-(\fI/etc/athena/zephyr.vars\fR) is searched for a default value.
-.TP
-.B subscribe \fIclass instance\fR [ \fIrecipient\fR ]
-Subscribe to \fIclass, instance, recipient\fR, but don't add this triplet to
-the subscriptions file.
-.TP
-.B unhide
-Make your location as maintained by the Zephyr server visible.  This does not
-affect the value of the exposure variable.
-.TP
-.B unload \fR[ \fIfile\fR ]
-Unsubscribe to all subscription triplets in current subscriptions file
-or \fIfile\fR.  Un-subscriptions in the file are ignored.
-.TP
-.B unset \fIvar\fR [ \fIvar\fR \ ... ]
-Delete the definitions of the specified Zephyr variables.
-.TP
-.B unsubscribe \fIclass instance\fR [ \fIrecipient\fR ]
-Unsubscribe to \fIclass, instance, recipient\fR, but don't remove this triplet
-from the subscriptions file.
-.TP
-.B wg_exit
-Tell the WindowGram client,
-.I zwgc(1),
-to exit.
-.TP
-.B wg_read
-Tell the WindowGram client,
-.I zwgc(1),
-to reread its description file.
-.TP
-.B wg_shutdown
-Tell the WindowGram client to shutdown; this causes it to ignore all
-notices until a wg_startup command is issued.
-.TP
-.B wg_startup
-Tell the WindowGram client to start accepting notices again; useful
-after a wg_shutdown command has been issued.
-.SH MACROS and SUBSCRIPTION FILES
-There are three macros,
-.I %host%, %canon%, \fRand\fI %me%.  %host%
-is converted to the current hostname, \fI%canon%\fR is converted to the
-official hostname as returned by 
-.I gethostbyname(3),
-and \fI%me%\fR is converted to your Kerberos principal.  These macros can be
-used in your \fI$HOME/.zephyr.subs\fR file or as arguments to commands
-to specify the
-.I class
-or 
-.I instance
-fields.  A sample \fI$HOME/.zephyr.subs\fR file might contain the following:
-.PP
-.nf
-       message,urgent,%me%
-       syslog,%host%,*
-       mail,pop,%me%
-.fi
-.PP
-.I Zctl
-reads the environment variable \fBWGFILE\fR, to find the name of the
-file where the windowgram port resides.  If \fBWGFILE\fR is not set,
-the file name defaults to /tmp/wg.\fIuid\fR, where \fIuid\fR is the
-user's UNIX uid.
-.SH UN-SUBSCRIPTIONS
-The zephyr server,
-.I zephyrd(8),
-maintains default subscriptions which are automatically added to all
-users' subscriptions at the time of their first subscription during a
-login session.  If you wish to automatically remove some of these
-default subscriptions, you use 
-.B un-subscriptions.
-When you 
-.B load
-a subscription file containing
-un-subscriptions, the un-subscriptions are automatically sent to the
-server as if you had used the
-.B unsubscribe
-command.
-.SH EXPOSURE LEVELS
-The different exposure levels affect the operation of zephyr and its
-interaction with the user, as follows:
-.TP 10
-.I none
-This completely disables Zephyr for the user. The user is not
-registered with Zephyr.  No user location information is
-retained by Zephyr.  No login or logout announcements will be
-sent.  No subscriptions will be entered for the user, and no notices
-will be displayed by 
-.I zwgc(1).
-.TP
-.I opstaff
-The user is registered with Zephyr.  No login or logout
-announcements will be sent, and location information will only be
-visible to Operations staff.  Default subscriptions and any additional
-personal subscriptions will be entered for the user.
-.TP
-.I realm-visible
-The user is registered with Zephyr.  User location information is retained by
-Zephyr and made available only to users within the user's
-Kerberos realm.  No login or logout announcements will be sent.  This
-is the system default.  Default subscriptions and any additional
-personal subscriptions will be entered for the user.
-.TP
-.I realm-announced
-The user is registered with Zephyr.  User location information is retained by
-Zephyr and made available only to users authenticated within the user's
-Kerberos realm.  Login and logout announcements will be sent, but only to
-users within the user's Kerberos realm who have explicitly requested
-such via subscriptions.  Default subscriptions and any additional
-personal subscriptions will be entered for the user.
-.TP
-.I net-visible
-The user is registered with Zephyr.  User location information is
-retained by Zephyr and made available to any authenticated user who
-requests such. Login and logout announcements will be sent only to users
-within the user's Kerberos realm who have explicitly requested such via
-subscriptions.  Default subscriptions and any additional personal
-subscriptions will be entered for the user.
-.TP
-.I net-announced
-The user is registered with Zephyr. User location information is retained by
-Zephyr and made available to any authenticated user who requests such.  Login
-and logout announcements will be sent to any user has requested such.
-Default subscriptions and any additional personal
-subscriptions will be entered for the user.
-.SH EXAMPLES
-.TP 25
-.B zctl
-Runs \fIzctl\fR in interactive mode.
-.TP
-.B zctl load
-Load subscriptions and un-subscriptions from \fI$HOME/.zephyr.subs\fR file.
-.TP
-.B zctl sub message personal
-Subscribe to personal messages, but don't add this to the
-subscriptions file.
-.TP
-.B zctl save
-Save all current subscriptions to the default subscriptions file.
-.TP
-.B zctl set exposure none
-Set your exposure level to `none', effectively turning off Zephyr.
-.SH SEE ALSO
-zephyr(1), zwgc(1), zhm(8), zephyrd(8)
-gethostbyname(3)
-.br
-Project Athena Technical Plan Section E.4.1, `Zephyr Notification
-Service'
-.SH FILES
-/tmp/wg.*
-.br
-$HOME/.zephyr.subs
-.br
-$ZEPHYR_VARS or $HOME/.zephyr.vars
-.br
-/etc/athena/zephyr.vars
-.SH AUTHOR
-.PP
-Robert S. French (MIT-Project Athena)
-.sp
-.SH RESTRICTIONS
-Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
-All Rights Reserved.
-.br
-.I zephyr(1)
-specifies the terms and conditions for redistribution.
diff --git a/zephyr/clients/zctl/zctl.c b/zephyr/clients/zctl/zctl.c
deleted file mode 100644 (file)
index b6c5b56..0000000
+++ /dev/null
@@ -1,1216 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains code for the "zctl" command.
- *
- *     Created by:     Robert French
- *
- *     $Id: zctl.c 2333 2009-03-22 18:30:19Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <sysdep.h>
-#include <zephyr/zephyr.h>
-#include <ss/ss.h>
-#include <com_err.h>
-#include <pwd.h>
-#include <netdb.h>
-#ifndef lint
-static const char rcsid_zctl_c[] = "$Id: zctl.c 2333 2009-03-22 18:30:19Z kcr $";
-#endif
-
-#define SUBSATONCE 7
-#define SUB 0
-#define UNSUB 1
-#define LIST 2
-
-#define USERS_SUBS "/.zephyr.subs"
-#define OLD_SUBS "/.subscriptions"
-
-#define        TOKEN_HOSTNAME  "%host%"
-#define        TOKEN_CANONNAME "%canon%"
-#define        TOKEN_ME        "%me%"
-#define        TOKEN_WILD      "*"
-
-#define        ALL             0
-#define        UNSUBONLY       1
-#define        SUBONLY         2
-
-#define        ERR             (-1)
-#define        NOT_REMOVED     0
-#define        REMOVED         1
-
-int sci_idx;
-char subsname[BUFSIZ];
-char ourhost[MAXHOSTNAMELEN],ourhostcanon[MAXHOSTNAMELEN];
-
-extern ss_request_table zctl_cmds;
-
-int purge_subs(register ZSubscription_t *, int);
-void add_file(short, ZSubscription_t *, int);
-void del_file(short, ZSubscription_t *, int);
-void fix_macros(ZSubscription_t *, ZSubscription_t *, int);
-void fix_macros2(char *, char **);
-int make_exist(char *);
-
-int
-main(int argc,
-     char *argv[])
-{
-       struct passwd *pwd;
-       struct hostent *hent;
-       char ssline[BUFSIZ],oldsubsname[BUFSIZ],*envptr,*tty = NULL;
-       int retval,code,i;
-#ifdef HAVE_SYS_UTSNAME
-       struct utsname name;
-#endif
-
-       if ((retval = ZInitialize()) != ZERR_NONE) {
-               com_err(argv[0],retval,"while initializing");
-               exit (1);
-       }
-
-       /* Set hostname and tty for locations.  If we support X, use the
-        * DISPLAY environment variable for the tty name. */
-#ifndef X_DISPLAY_MISSING
-       tty = getenv("DISPLAY");
-#endif 
-       if ((retval = ZInitLocationInfo(NULL, tty)) != ZERR_NONE)
-           com_err(argv[0], retval, "initializing location information");
-
-       envptr = getenv("ZEPHYR_SUBS");
-       if (envptr)
-               strcpy(subsname,envptr);
-       else {
-               envptr = getenv("HOME");
-               if (envptr)
-                       strcpy(subsname,envptr);
-               else {
-                       if (!(pwd = getpwuid((int) getuid()))) {
-                               fprintf(stderr,"Who are you?\n");
-                               exit (1);
-                       }
-
-                       strcpy(subsname,pwd->pw_dir);
-               }
-               strcpy(oldsubsname,subsname);
-               strcat(oldsubsname,OLD_SUBS);
-               strcat(subsname,USERS_SUBS);
-               if (!access(oldsubsname,F_OK) && access(subsname, F_OK)) {
-                       /* only if old one exists and new one does not exist */
-                       printf("The .subscriptions file in your home directory is now being used as\n.zephyr.subs . I will rename it to .zephyr.subs for you.\n");
-                       if (rename(oldsubsname,subsname))
-                               com_err(argv[0], errno, "renaming .subscriptions");
-               }
-       }
-
-#ifdef HAVE_SYS_UTSNAME
-       uname(&name);
-       strcpy(ourhost, name.nodename);
-#else
-       if (gethostname(ourhost,MAXHOSTNAMELEN) == -1) {
-               com_err(argv[0],errno,"while getting host name");
-               exit (1);
-       }
-#endif
-
-       if (!(hent = gethostbyname(ourhost))) {
-               fprintf(stderr,"%s: Can't resolve hostname %s; %s may be "
-                       "wrong in subscriptions\n",argv[0],ourhost,
-                       TOKEN_CANONNAME);
-               strncpy(ourhostcanon,ourhost,sizeof(ourhostcanon)-1);
-       } else
-               strncpy(ourhostcanon,hent->h_name,sizeof(ourhostcanon)-1);
-
-       sci_idx = ss_create_invocation("zctl","",0,&zctl_cmds,&code);
-       if (code) {
-               ss_perror(sci_idx,code,"while creating invocation");
-               exit(1);
-       }
-
-       if (argc > 1) {
-               *ssline = '\0';
-               for (i=1;i<argc;i++)
-                       (void) sprintf(ssline+strlen(ssline),"%s ",argv[i]);
-               ssline[strlen(ssline)-1] = '\0';
-               code = ss_execute_line(sci_idx,ssline);
-               if (code)
-                   fprintf (stderr, "%s: %s: %s\n",
-                            argv[0], error_message (code), ssline);
-               exit((code != 0));
-       } 
-
-       printf("ZCTL $Revision: 2333 $ (Protocol %s%d.%d) - Type '?' for a list of commands.\n\n",
-              ZVERSIONHDR,
-              ZVERSIONMAJOR,ZVERSIONMINOR);
-       
-       ss_listen(sci_idx);
-       exit(0);
-}
-
-void
-set_file(int argc,
-        char *argv[])
-{
-       if (argc > 2) {
-               fprintf(stderr,"Usage: %s filename\n",argv[0]);
-               return;
-       }
-
-       if (argc == 1)
-               printf("Current file: %s\n",subsname);
-       else
-               (void) strcpy(subsname,argv[1]);
-}
-
-void
-flush_locations(int argc,
-               char *argv[])
-{
-       int retval;
-       
-       if (argc > 1) {
-               fprintf(stderr,"Usage: %s\n",argv[0]);
-               return;
-       }
-
-       if ((retval = ZFlushMyLocations()) != ZERR_NONE)
-               ss_perror(sci_idx,retval,"while flushing locations");
-}
-
-void
-wgc_control(int argc,
-           char *argv[])
-{
-       int retval;
-       short newport;
-       struct sockaddr_in newsin;
-       ZNotice_t notice;
-
-       newsin = ZGetDestAddr();
-
-       if (argc > 1) {
-               fprintf(stderr,"Usage: %s\n",argv[0]);
-               return;
-       }
-       
-       if ((newport = ZGetWGPort()) == -1) {
-               ss_perror(sci_idx,errno,"while getting WindowGram port");
-               return;
-       }
-
-       newsin.sin_port = (u_short) newport;
-       if ((retval = ZSetDestAddr(&newsin)) != ZERR_NONE) {
-               ss_perror(sci_idx,retval,"while setting destination address");
-               return;
-       }
-
-       (void) memset((char *)&notice, 0, sizeof(notice));
-       notice.z_kind = UNSAFE;
-       notice.z_port = 0;
-       notice.z_class = WG_CTL_CLASS;
-       notice.z_class_inst = WG_CTL_USER;
-
-       if (!strcmp(argv[0],"wg_read"))
-               notice.z_opcode = USER_REREAD;
-       if (!strcmp(argv[0],"wg_shutdown"))
-               notice.z_opcode = USER_SHUTDOWN;
-       if (!strcmp(argv[0],"wg_startup"))
-               notice.z_opcode = USER_STARTUP;
-       if (!strcmp(argv[0],"wg_exit"))
-               notice.z_opcode = USER_EXIT;
-       if (!notice.z_opcode) {
-               fprintf(stderr,
-                       "unknown WindowGram client control command %s\n",
-                       argv[0]);
-               return;
-       }
-       notice.z_sender = 0;
-       notice.z_recipient = "";
-       notice.z_default_format = "";
-       notice.z_message_len = 0;
-
-       if ((retval = ZSendNotice(&notice,ZNOAUTH)) != ZERR_NONE)
-               ss_perror(sci_idx,retval,"while sending notice");
-
-       if ((retval = ZInitialize()) != ZERR_NONE)
-               ss_perror(sci_idx,retval,
-                         "while reinitializing");
-} 
-
-void
-hm_control(int argc,
-          char *argv[])
-{
-       int retval;
-       ZNotice_t notice;
-
-       if (argc > 1) {
-               fprintf(stderr,"Usage: %s\n",argv[0]);
-               return;
-       }
-       
-       (void) memset((char *)&notice, 0, sizeof(notice));
-       notice.z_kind = HMCTL;
-       notice.z_port = 0;
-       notice.z_class = HM_CTL_CLASS;
-       notice.z_class_inst = HM_CTL_CLIENT;
-
-       if (!strcmp(argv[0],"hm_flush"))
-               notice.z_opcode = CLIENT_FLUSH;
-       if (!strcmp(argv[0],"new_server"))
-               notice.z_opcode = CLIENT_NEW_SERVER;
-       if (!notice.z_opcode) {
-               fprintf(stderr, "unknown HostManager control command %s\n",
-                       argv[0]);
-               return;
-       }
-       notice.z_sender = 0;
-       notice.z_recipient = "";
-       notice.z_default_format = "";
-       notice.z_message_len = 0;
-
-       if ((retval = ZSendNotice(&notice,ZNOAUTH)) != ZERR_NONE)
-               ss_perror(sci_idx,retval,"while sending notice");
-} 
-
-void
-show_var(int argc,
-        char *argv[])
-{
-       int i;
-       char *value;
-       
-       if (argc < 2) {
-               fprintf(stderr,"Usage: %s <varname> <varname> ...\n",argv[0]);
-               return;
-       }
-
-       for (i=1;i<argc;i++) {
-               value = ZGetVariable(argv[i]);
-               if (value)
-                       printf("%s: %s\n",argv[i],value);
-               else
-                       printf("%s: not defined\n",argv[i]);
-       }
-}
-
-void
-set_var(int argc, char *argv[])
-{
-       int retval,setting_exp,i;
-       char *exp_level = NULL;
-       char *newargv[1];
-       char varcat[BUFSIZ];
-       
-       if (argc < 2) {
-               fprintf(stderr,"Usage: %s <varname> [value]\n",
-                       argv[0]);
-               return;
-       }
-
-       setting_exp = 0;
-
-       if (!strcasecmp(argv[1],"exposure")) {
-               setting_exp = 1;
-               if (argc != 3) {
-                       fprintf(stderr,"An exposure setting must be specified.\n");
-                       return;
-               }
-               exp_level = (char *)0;
-               if (!strcasecmp(argv[2],EXPOSE_NONE))
-                       exp_level = EXPOSE_NONE;
-               if (!strcasecmp(argv[2],EXPOSE_OPSTAFF))
-                       exp_level = EXPOSE_OPSTAFF;
-               if (!strcasecmp(argv[2],EXPOSE_REALMVIS))
-                       exp_level = EXPOSE_REALMVIS;
-               if (!strcasecmp(argv[2],EXPOSE_REALMANN))
-                       exp_level = EXPOSE_REALMANN;
-               if (!strcasecmp(argv[2],EXPOSE_NETVIS))
-                       exp_level = EXPOSE_NETVIS;
-               if (!strcasecmp(argv[2],EXPOSE_NETANN))
-                       exp_level = EXPOSE_NETANN;
-               if (!exp_level) {
-                       fprintf(stderr,"The exposure setting must be one of:\n");
-                       fprintf(stderr,"%s, %s, %s, %s, %s, %s.\n",
-                               EXPOSE_NONE,
-                               EXPOSE_OPSTAFF,
-                               EXPOSE_REALMVIS,
-                               EXPOSE_REALMANN,
-                               EXPOSE_NETVIS,
-                               EXPOSE_NETANN);
-                       return;
-               }
-       } 
-       if (argc == 2)
-               retval = ZSetVariable(argv[1],"");
-       else {
-               (void) strcpy(varcat,argv[2]);
-               for (i=3;i<argc;i++) {
-                       (void) strcat(varcat," ");
-                       (void) strcat(varcat,argv[i]);
-               } 
-               retval = ZSetVariable(argv[1],varcat);
-       } 
-
-       if (retval != ZERR_NONE) {
-               ss_perror(sci_idx,retval,"while setting variable value");
-               return;
-       }
-
-       /* Side-effects?  Naw, us? */
-       
-       if (setting_exp) {
-               if ((retval = ZSetLocation(exp_level)) != ZERR_NONE)
-                       ss_perror(sci_idx,retval,"while changing exposure status");
-               if (!strcmp(exp_level,EXPOSE_NONE)) {
-                       newargv[0] = "wg_shutdown";
-                       wgc_control(1,newargv);
-               } else {
-                       newargv[0] = "wg_startup";
-                       wgc_control(1,newargv);
-               }
-               return;
-       } 
-}
-
-void
-do_hide(int argc,
-       char *argv[])
-{
-       char *exp_level = NULL;
-       Code_t retval;
-
-       if (argc != 1) {
-               fprintf(stderr, "Usage: %s\n",argv[0]);
-               return;
-       }
-       if (!strcmp(argv[0],"unhide"))
-               exp_level = EXPOSE_REALMVIS;
-       else
-               exp_level = EXPOSE_OPSTAFF;
-       if ((retval = ZSetLocation(exp_level)) != ZERR_NONE)
-               ss_perror(sci_idx,retval,"while changing exposure status");
-       return;
-}
-
-void
-unset_var(int argc,
-         char *argv[])
-{
-       int retval,i;
-       
-       if (argc < 2) {
-               fprintf(stderr,"Usage: %s <varname> [<varname> ... ]\n",
-                       argv[0]);
-               return;
-       }
-
-       for (i=1;i<argc;i++)
-               if ((retval = ZUnsetVariable(argv[i])) != ZERR_NONE)
-                       ss_perror(sci_idx,retval,
-                                 "while unsetting variable value");
-}
-
-void
-cancel_subs(int argc,
-           char *argv[])
-{
-       int retval;
-       short wgport;
-
-       if (argc != 1) {
-               fprintf(stderr,"Usage: %s\n",argv[0]);
-               return;
-       } 
-
-       if ((wgport = ZGetWGPort()) == -1) {
-               ss_perror(sci_idx,errno,"while finding WindowGram port");
-               return;
-       } 
-       if ((retval = ZCancelSubscriptions((u_short)wgport)) != ZERR_NONE)
-               ss_perror(sci_idx,retval,"while cancelling subscriptions");
-}
-
-void
-subscribe(int argc,
-         char *argv[])
-{
-       int retval;
-       short wgport;
-       ZSubscription_t sub,sub2;
-       
-       if (argc > 4 || argc < 3) {
-               fprintf(stderr,"Usage: %s class instance [*]\n",argv[0]);
-               return;
-       }
-       
-       sub.zsub_class = argv[1];
-       sub.zsub_classinst = argv[2];
-       sub.zsub_recipient = (argc == 3)?ZGetSender():argv[3];
-
-       fix_macros(&sub,&sub2,1);
-       
-       if ((wgport = ZGetWGPort()) == -1) {
-               ss_perror(sci_idx,errno,"while finding WindowGram port");
-               return;
-       } 
-
-       retval = (*argv[0] == 's') ?
-               ZSubscribeToSansDefaults(&sub2,1,(u_short)wgport) :
-               ZUnsubscribeTo(&sub2,1,(u_short)wgport);
-       
-       if (retval != ZERR_NONE)
-               ss_perror(sci_idx,retval,"while subscribing");
-} 
-
-void
-sub_file(int argc,
-        char *argv[])
-{
-       ZSubscription_t sub;
-       short wgport;
-
-       if (argc > 4 || argc < 3) {
-               fprintf(stderr,"Usage: %s class instance [*]\n",argv[0]);
-               return;
-       }
-
-       if (argv[1][0] == '!') {
-               ss_perror(sci_idx,0,
-                         (!strcmp(argv[0],"add_unsubscription") ||
-                          !strcmp(argv[0],"add_un") ||
-                          !strcmp(argv[0],"delete_unsubscription") ||
-                          !strcmp(argv[0],"del_un")) ?
-                         "Do not use `!' as the first character of a class.\n\tIt is automatically added before modifying the subscription file." :
-                         "Do not use `!' as the first character of a class.\n\tIt is reserved for internal use with un-subscriptions.");
-               return;
-       }
-       sub.zsub_class = argv[1];
-       sub.zsub_classinst = argv[2];
-       sub.zsub_recipient = (argc == 3)?TOKEN_ME:argv[3];
-
-       if (make_exist(subsname))
-               return;
-       if ((wgport = ZGetWGPort()) == -1) {
-               ss_perror(sci_idx,errno,"while finding WindowGram port");
-               return;
-       } 
-
-       if (!strcmp(argv[0],"add"))
-               add_file(wgport,&sub,0);
-       else if (!strcmp(argv[0],"add_unsubscription") ||
-                !strcmp(argv[0],"add_un"))
-               add_file(wgport,&sub,1);
-       else if (!strcmp(argv[0],"delete") ||
-                !strcmp(argv[0],"del") ||
-                !strcmp(argv[0],"dl"))
-               del_file(wgport,&sub,0);
-       else if (!strcmp(argv[0],"delete_unsubscription") ||
-                !strcmp(argv[0],"del_un")) {
-               del_file(wgport,&sub,1);
-       } else
-               ss_perror(sci_idx,0,"unknown command name");
-       return;
-}
-
-void
-add_file(short wgport,
-        ZSubscription_t *subs,
-        int unsub)
-{
-       FILE *fp;
-       char errbuf[BUFSIZ];
-       ZSubscription_t sub2;
-       Code_t retval;
-
-       (void) purge_subs(subs,ALL);    /* remove copies in the subs file */
-       if (!(fp = fopen(subsname,"a"))) {
-               (void) sprintf(errbuf,"while opening %s for append",subsname);
-               ss_perror(sci_idx,errno,errbuf);
-               return;
-       } 
-       fprintf(fp,"%s%s,%s,%s\n",
-               unsub ? "!" : "",
-               subs->zsub_class, subs->zsub_classinst, subs->zsub_recipient);
-       if (fclose(fp) == EOF) {
-               (void) sprintf(errbuf, "while closing %s", subsname);
-               ss_perror(sci_idx, errno, errbuf);
-               return;
-       }
-       fix_macros(subs,&sub2,1);
-       retval = (unsub
-                 ? ZUnsubscribeTo(&sub2,1,(u_short)wgport)
-                 : ZSubscribeToSansDefaults(&sub2,1,(u_short)wgport));
-       if (retval)
-               ss_perror(sci_idx,retval,
-                         unsub ? "while unsubscribing" :
-                         "while subscribing");
-       return;
-}
-
-void
-del_file(short wgport,
-        register ZSubscription_t *subs,
-        int unsub)
-{
-       ZSubscription_t sub2;
-       int retval;
-       
-       retval = purge_subs(subs, unsub ? UNSUBONLY : SUBONLY);
-       if (retval == ERR)
-               return;
-       if (retval == NOT_REMOVED)
-               fprintf(stderr,
-                       "Couldn't find %sclass %s instance %s recipient %s in\n\tfile %s\n",
-                       unsub ? "un-subscription " : "",
-                       subs->zsub_class, subs->zsub_classinst,
-                       subs->zsub_recipient, subsname);
-       fix_macros(subs,&sub2,1);
-       if ((retval = ZUnsubscribeTo(&sub2,1,(u_short)wgport)) !=
-           ZERR_NONE)
-               ss_perror(sci_idx,retval,"while unsubscribing");
-       return;
-}
-
-int
-purge_subs(register ZSubscription_t *subs,
-          int which)
-{
-       FILE *fp,*fpout;
-       char errbuf[BUFSIZ],subline[BUFSIZ];
-       char backup[BUFSIZ],ourline[BUFSIZ];
-       int delflag = NOT_REMOVED;
-       int keep = 0;
-
-       switch (which) {
-       case SUBONLY:
-       case UNSUBONLY:
-       case ALL:
-               break;
-       default:
-               ss_perror(sci_idx,0,"internal error in purge_subs");
-               return(ERR);
-       }
-
-       (void) sprintf(ourline,"%s,%s,%s",
-                      subs->zsub_class,
-                      subs->zsub_classinst,
-                      subs->zsub_recipient);
-
-       if (!(fp = fopen(subsname,"r"))) {
-               (void) sprintf(errbuf,"while opening %s for read",subsname);
-               ss_perror(sci_idx,errno,errbuf);
-               return(ERR);
-       } 
-       (void) strcpy(backup, subsname);
-       (void) strcat(backup, ".temp");
-       (void) unlink(backup);
-       if (!(fpout = fopen(backup,"w"))) {
-               (void) sprintf(errbuf,"while opening %s for writing",backup);
-               ss_perror(sci_idx,errno,errbuf);
-               (void) fclose(fp);
-               return(ERR);
-       } 
-       for (;;) {
-               if (!fgets(subline,sizeof subline,fp))
-                       break;
-               if (*subline)
-                       subline[strlen(subline)-1] = '\0'; /* nuke newline */
-               switch (which) {
-               case SUBONLY:
-                       keep = strcmp(subline,ourline);
-                       break;
-               case UNSUBONLY:
-                       keep = (*subline != '!' || strcmp(subline+1,ourline));
-                       break;
-               case ALL:
-                       keep = (strcmp(subline,ourline) &&
-                               (*subline != '!' || strcmp(subline+1,
-                                                          ourline)));
-                       break;
-               }
-               if (keep) {
-                       fputs(subline, fpout);
-                       if (ferror(fpout) || (fputc('\n', fpout) == EOF)) {
-                               (void) sprintf(errbuf, "while writing to %s",
-                                              backup);
-                               ss_perror(sci_idx, errno, errbuf);
-                       }
-               } else
-                       delflag = REMOVED;
-       }
-       (void) fclose(fp);              /* open read-only, ignore errs */
-       if (fclose(fpout) == EOF) {
-               (void) sprintf(errbuf, "while closing %s",backup);
-               ss_perror(sci_idx, errno, errbuf);
-               return(ERR);
-       }
-       if (rename(backup,subsname) == -1) {
-               (void) sprintf(errbuf,"while renaming %s to %s\n",
-                              backup,subsname);
-               ss_perror(sci_idx,errno,errbuf);
-               return(ERR);
-       }
-       return(delflag);
-}
-
-void
-load_subs(int argc,
-         char *argv[])
-{
-       ZSubscription_t subs[SUBSATONCE],subs2[SUBSATONCE],unsubs[SUBSATONCE];
-#ifdef CMU_ZCTL_PUNT
-       ZSubscription_t punts[SUBSATONCE];
-       int pind;
-#endif
-       FILE *fp;
-       int ind,unind,lineno,i,retval,type;
-       short wgport = 0;
-       char *comma,*comma2,*file,subline[BUFSIZ];
-
-       if (argc > 2) {
-               fprintf(stderr,"Usage: %s [file]\n",argv[0]);
-               return;
-       }
-
-       if (*argv[0] == 'u')
-               type = UNSUB;
-       else
-               if (!strcmp(argv[0],"list") || !strcmp(argv[0],"ls"))
-                       type = LIST;
-               else
-                       type = SUB;
-
-       if (type != LIST) 
-               if ((wgport = ZGetWGPort()) == -1) {
-                       ss_perror(sci_idx,errno,
-                                 "while finding WindowGram port");
-                       return;
-               } 
-
-       file = (argc == 1) ? subsname : argv[1];
-       
-       fp = fopen(file,"r");
-
-       if (fp == NULL) {
-               ss_perror(sci_idx,errno,
-                         "while loading subscription file");
-               return;
-       }
-       
-#ifdef CMU_ZCTL_PUNT
-       pind =
-#endif
-         ind = unind = 0;
-       lineno = 1;
-       
-       for (;;lineno++) {
-               if (!fgets(subline,sizeof subline,fp))
-                       break;
-               if (*subline == '#' || !*subline)
-                       continue;
-               subline[strlen(subline)-1] = '\0'; /* nuke newline */
-               comma = strchr(subline,',');
-               if (comma)
-                       comma2 = strchr(comma+1,',');
-               else
-                       comma2 = 0;
-               if (!comma || !comma2) {
-                       fprintf(stderr,
-                               "Malformed subscription at line %d of %s:\n%s\n",
-                               lineno,file,subline);
-                       continue;
-               }
-               *comma = '\0';
-               *comma2 = '\0';
-               if (type == LIST) {
-                       if (*subline == '!') 
-                               printf("(Un-subscription) Class %s instance %s recipient %s\n",
-                                      subline+1, comma+1, comma2+1);
-#ifdef CMU_ZCTL_PUNT
-                       else if(*subline == '-')
-                               printf("(Punted) Class %s instance %s recipient %s\n",
-                                      subline+1, comma+1, comma2+1);
-#endif
-                       else
-                               printf("Class %s instance %s recipient %s\n",
-                                      subline, comma+1, comma2+1);
-                       continue;
-               }
-               if (*subline == '!') {  /* an un-subscription */
-                       /* if we are explicitly un-subscribing to
-                          the contents of a subscription file, ignore
-                          any un-subscriptions in that file */
-                       if (type == UNSUB)
-                               continue;
-                       unsubs[unind].zsub_class =
-                           (char *)malloc((unsigned)(strlen(subline)));
-                       /* XXX check malloc return */
-                       /* skip the leading '!' */
-                       (void) strcpy(unsubs[unind].zsub_class,subline+1);
-                       unsubs[unind].zsub_classinst =
-                           (char *)malloc((unsigned)(strlen(comma+1)+1));
-                       /* XXX check malloc return */
-                       (void) strcpy(unsubs[unind].zsub_classinst,comma+1);
-                       unsubs[unind].zsub_recipient =
-                           (char *)malloc((unsigned)(strlen(comma2+1)+1));
-                       /* XXX check malloc return */
-                       (void) strcpy(unsubs[unind].zsub_recipient,comma2+1);
-                       unind++;
-               } else
-#ifdef CMU_ZCTL_PUNT
-               if (*subline == '-') {  /* a punt */
-                       if (type == UNSUB)
-                               continue;
-                       punts[pind].zsub_class =
-                           (char *)malloc((unsigned)(strlen(subline)+1));
-                       /* XXX check malloc return */
-                       (void) strcpy(punts[pind].zsub_class,subline+1);
-                       punts[pind].zsub_classinst =
-                           (char *)malloc((unsigned)(strlen(comma+1)+1));
-                       /* XXX check malloc return */
-                       (void) strcpy(punts[pind].zsub_classinst,comma+1);
-                       punts[pind].zsub_recipient =
-                           (char *)malloc((unsigned)(strlen(comma2+1)+1));
-                       /* XXX check malloc return */
-                       (void) strcpy(punts[pind].zsub_recipient,comma2+1);
-                       pind++;
-               } else
-#endif
-               { 
-                       subs[ind].zsub_class =
-                           (char *)malloc((unsigned)(strlen(subline)+1));
-                       /* XXX check malloc return */
-                       (void) strcpy(subs[ind].zsub_class,subline);
-                       subs[ind].zsub_classinst =
-                           (char *)malloc((unsigned)(strlen(comma+1)+1));
-                       /* XXX check malloc return */
-                       (void) strcpy(subs[ind].zsub_classinst,comma+1);
-                       subs[ind].zsub_recipient =
-                           (char *)malloc((unsigned)(strlen(comma2+1)+1));
-                       /* XXX check malloc return */
-                       (void) strcpy(subs[ind].zsub_recipient,comma2+1);
-                       ind++;
-               }
-#ifdef CMU_ZCTL_PUNT
-               if (pind == SUBSATONCE) {
-                        fix_macros(punts,subs2,pind);
-                        if (retval = ZPunt(subs2,pind,(u_short)wgport) !=
-                            ZERR_NONE)
-                          {
-                            ss_perror(sci_idx,retval,
-                                      "while punting");
-                            goto cleanup;
-                          }
-                        for (i=0;i<pind;i++) {
-                                free(punts[i].zsub_class);
-                                free(punts[i].zsub_classinst);
-                                free(punts[i].zsub_recipient);
-                        }
-                        pind = 0;
-               }
-#endif
-               if (ind == SUBSATONCE) {
-                       fix_macros(subs,subs2,ind);
-                       if ((retval = (type == SUB)?
-                            ZSubscribeTo(subs2,ind,(u_short)wgport):
-                            ZUnsubscribeTo(subs2,ind,(u_short)wgport)) !=
-                           ZERR_NONE) {
-                               ss_perror(sci_idx,retval,(type == SUB)?
-                                         "while subscribing":
-                                         "while unsubscribing");
-                               goto cleanup;
-                       }
-                       for (i=0;i<ind;i++) {
-                               free(subs[i].zsub_class);
-                               free(subs[i].zsub_classinst);
-                               free(subs[i].zsub_recipient);
-                       } 
-                       ind = 0;
-               }
-               if (unind == SUBSATONCE) {
-                       fix_macros(unsubs,subs2,unind);
-                       if ((retval = ZUnsubscribeTo(subs2,unind,(u_short)wgport)) != ZERR_NONE) {
-                               ss_perror(sci_idx,retval,
-                                         "while unsubscribing to un-subscriptions");
-                               goto cleanup;
-                       }
-                       for (i=0;i<unind;i++) {
-                               free(unsubs[i].zsub_class);
-                               free(unsubs[i].zsub_classinst);
-                               free(unsubs[i].zsub_recipient);
-                       } 
-                       unind = 0;
-               }
-       }
-       
-       if (type != LIST) {
-               /* even if we have no subscriptions, be sure to send
-                  an empty packet to trigger the default subscriptions */
-               fix_macros(subs,subs2,ind);
-               if ((retval = (type == SUB)?ZSubscribeTo(subs2,ind,(u_short)wgport):
-                    ZUnsubscribeTo(subs2,ind,(u_short)wgport)) != ZERR_NONE) {
-                       ss_perror(sci_idx,retval,(type == SUB)?
-                                 "while subscribing":
-                                 "while unsubscribing");
-                       goto cleanup;
-               }
-               if (unind) {
-                       fix_macros(unsubs,subs2,unind);
-                       if ((retval =
-                            ZUnsubscribeTo(subs2,unind,(u_short)wgport)) != ZERR_NONE) {
-                               ss_perror(sci_idx,retval,
-                                         "while unsubscribing to un-subscriptions");
-                               goto cleanup;
-                       }
-               }
-#ifdef CMU_ZCTL_PUNT
-               if (pind) {
-                       fix_macros(punts,subs2,pind);
-                       if (retval = ZPunt(subs2,pind,(u_short)wgport) !=
-                           ZERR_NONE)
-                       {
-                         ss_perror(sci_idx,retval,
-                                   "while punting");
-                         goto cleanup;
-                       }
-               }
-#endif
-       }
-cleanup:
-       for (i=0;i<ind;i++) {
-         free(subs[i].zsub_class);
-         free(subs[i].zsub_classinst);
-         free(subs[i].zsub_recipient);
-       } 
-       for (i=0;i<unind;i++) {
-         free(unsubs[i].zsub_class);
-         free(unsubs[i].zsub_classinst);
-         free(unsubs[i].zsub_recipient);
-       } 
-#ifdef CMU_ZCTL_PUNT
-       for (i=0;i<pind;i++) {
-         free(punts[i].zsub_class);
-         free(punts[i].zsub_classinst);
-         free(punts[i].zsub_recipient);
-       }
-#endif
-
-       (void) fclose(fp);      /* ignore errs--file is read-only */
-       return;
-}
-
-void
-current(int argc,
-       char *argv[])
-{
-       FILE *fp = NULL;
-       char errbuf[BUFSIZ];
-       ZSubscription_t subs;
-       int i,nsubs,retval,save,one,defs;
-       short wgport;
-       char backup[BUFSIZ];
-       char *file = NULL;
-       
-       save = 0;
-       defs = 0;
-
-       if (!strcmp(argv[0],"save"))
-               save = 1;
-       else if (!strcmp(argv[0], "defaults") || !strcmp(argv[0], "defs"))
-               defs = 1;
-
-       if (argc != 1 && !(save && argc == 2)) {
-               fprintf(stderr,"Usage: %s%s\n",argv[0],save?" [filename]":"");
-               return;
-       }
-
-       if (!defs)
-               if ((wgport = ZGetWGPort()) == -1) {
-                       ss_perror(sci_idx,errno,
-                                 "while finding WindowGram port");
-                       return;
-               } 
-
-       if (defs)
-               retval = ZRetrieveDefaultSubscriptions(&nsubs);
-       else
-               retval = ZRetrieveSubscriptions((u_short)wgport,&nsubs);
-
-       if (retval == ZERR_TOOMANYSUBS) {
-               fprintf(stderr,"Too many subscriptions -- some have not been returned.\n");
-               if (save) {
-                       fprintf(stderr,"Save aborted.\n");
-                       return;
-               }
-       }
-       else
-               if (retval != ZERR_NONE) {
-                       ss_perror(sci_idx,retval,"retrieving subscriptions");
-                       return;
-               }
-
-       if (save) {
-               file = (argc == 1)?subsname:argv[1];
-               (void) strcpy(backup,file);
-               (void) strcat(backup,".temp");
-               if (!(fp = fopen(backup,"w"))) {
-                       (void) sprintf(errbuf,"while opening %s for write",
-                                      backup);
-                       ss_perror(sci_idx,errno,errbuf);
-                       return;
-               }
-       }
-       
-       for (i=0;i<nsubs;i++) {
-               one = 1;
-               if ((retval = ZGetSubscriptions(&subs,&one)) != ZERR_NONE) {
-                       ss_perror(sci_idx,retval,"while getting subscription");
-                       if (save) {
-                               fprintf(stderr,"Subscriptions file not modified\n");
-                               (void) fclose(fp);
-                               (void) unlink(backup);
-                       }
-                       return;
-               } 
-               if (save)
-                       fprintf(fp,"%s,%s,%s\n",subs.zsub_class,
-                               subs.zsub_classinst, subs.zsub_recipient);
-               else
-                       printf("Class %s Instance %s Recipient %s\n",
-                              subs.zsub_class, subs.zsub_classinst,
-                              subs.zsub_recipient);
-       }
-
-       if (save) {
-               if (fclose(fp) == EOF) {
-                       (void) sprintf(errbuf, "while closing %s", backup);
-                       ss_perror(sci_idx, errno, errbuf);
-                       return;
-               }
-               if (rename(backup,file) == -1) {
-                       (void) sprintf(errbuf,"while renaming %s to %s",
-                                      backup,file);
-                       ss_perror(sci_idx,retval,errbuf);
-                       (void) unlink(backup);
-               }
-       }
-}
-
-int
-make_exist(char *filename)
-{
-       char errbuf[BUFSIZ];
-       FILE *fpout;
-       
-       if (!access(filename,F_OK))
-               return (0);
-
-       if (!(fpout = fopen(filename,"w"))) {
-               (void) sprintf(errbuf,"while opening %s for write",filename);
-               ss_perror(sci_idx,errno,errbuf);
-               return (1);
-       }
-
-       if (fclose(fpout) == EOF) {
-               (void) sprintf(errbuf, "while closing %s", filename);
-               ss_perror(sci_idx, errno, errbuf);
-               return(1);
-       }
-       return (0);
-}
-
-void
-fix_macros(ZSubscription_t *subs,
-          ZSubscription_t *subs2,
-          int num)
-{
-       int i;
-
-       for (i=0;i<num;i++) {
-               subs2[i] = subs[i];
-               fix_macros2(subs[i].zsub_class,&subs2[i].zsub_class);
-               fix_macros2(subs[i].zsub_classinst,&subs2[i].zsub_classinst);
-               fix_macros2(subs[i].zsub_recipient,&subs2[i].zsub_recipient);
-       }
-}
-
-void
-fix_macros2(char *src, char **dest)
-{
-       if (!strcmp(src,TOKEN_HOSTNAME)) {
-               *dest = ourhost;
-               return;
-       }
-       if (!strcmp(src,TOKEN_CANONNAME)) {
-               *dest = ourhostcanon;
-               return;
-       }
-       if (!strcmp(src,TOKEN_ME))
-               *dest = ZGetSender();
-}
-
-int
-do_punt(int argc, char **argv)
-{
-#ifdef CMU_ZCTL_PUNT
-  char *class, *inst, *recip, *msg, *whoami = argv[0];
-  int retval, punt;
-  short newport;
-  struct sockaddr_in newsin;
-  ZNotice_t notice;
-  
-  if (! strcmp(whoami, "punt")) punt = 1;
-  else punt = 0;
-  
-  switch (argc) {
-  case 2:
-    class = "message";
-    inst = argv[1];
-    recip = "";
-    break;
-  case 3:
-    class = argv[1];
-    inst = argv[2];
-    recip = "";
-    break;
-  case 4:
-    class = argv[1];
-    inst = argv[2];
-    recip = argv[3];
-    if (*argv[3] == '*') /* fixed so realm punts would work (vs0r) */
-      if (*(argv[3]+1) == '@')
-      if (!strcmp((char *)ZGetRealm(), (char *)ZExpandRealm(argv[3]+2))) 
-        /*check local*/
-        recip = "";
-    break;
-  default:
-    fprintf(stderr, "Usages:\n");
-    fprintf(stderr, "\t%s instance\n", whoami);
-    fprintf(stderr, "\t%s class instance\n", whoami);
-    fprintf(stderr, "\t%s class instance recipient\n", whoami);
-    return 1;
-  }
-  
-  retval = ZOpenPort((u_short *) 0);
-  if(retval != ZERR_NONE) {
-    com_err(whoami, retval, "while opening Zephyr port.");
-    return 1;
-  }
-  
-  newsin = ZGetDestAddr();
-  if ((newport = ZGetWGPort()) == -1) {
-    fprintf(stderr, "%s: Can't find windowgram port\n", whoami);
-    return 1;
-  }
-    
-  newsin.sin_port = (unsigned short) newport;
-  if ((retval = ZSetDestAddr(&newsin)) != ZERR_NONE) {
-    com_err(whoami,retval,"while setting destination address");
-    return 1;
-  }
-  
-  msg = (char *) malloc(strlen(class) + strlen(inst) + strlen(recip) + 4);
-  sprintf(msg, "%s%c%s%c%s", class, '\0', inst, '\0', recip);
-
-  if (*recip == '*') 
-    if (*(recip+1) == '@')
-      if (strcmp(recip+2, (char *)ZExpandRealm(recip+2))) 
-        sprintf(msg, "%s%c%s%c%s", class, '\0', inst, '\0', 
-                (char *)ZExpandRealm(recip+2));
-  printf("%s <%s,%s,%s>\n", punt ? "Punting" : "Unpunting",
-       class, inst, *recip ? recip : "*");
-  
-  memset((char *) &notice, 0, sizeof(ZNotice_t));
-  notice.z_kind = UNSAFE;
-  notice.z_class = WG_CTL_CLASS;
-  notice.z_class_inst = WG_CTL_USER;
-  notice.z_recipient = "";
-  notice.z_default_format = "";
-  notice.z_opcode = (punt) ? "SUPPRESS" : "UNSUPPRESS";
-  notice.z_port = 0;
-  notice.z_message = msg;
-  notice.z_message_len = strlen(class)+strlen(inst)+strlen(recip)+3;
-  
-  if ((retval = ZSendNotice(&notice,ZNOAUTH)) != ZERR_NONE)
-    fprintf(stderr,"%s: while sending notice\n",whoami);
-  
-  free(msg);
-  
-  ZClosePort();
-#endif
-  return 0;
-}
-
-int
-list_punts(int argc, char **argv)
-{
-#ifdef CMU_ZCTL_PUNT
-  ZNotice_t notice;
-  int retval, lensofar;
-  struct sockaddr_in old, to, from;
-  u_short ourport, zwgcport;
-  char *msg;
-
-  ourport=0; 
-  retval = ZOpenPort(&ourport);
-  if(retval != ZERR_NONE) {
-    com_err("zctl", retval, "while opening Zephyr port.");
-    return 1;
-  }
-  
-  old = ZGetDestAddr();
-  to = old;
-  if ((zwgcport = ZGetWGPort()) == (u_short)-1) {
-    fprintf(stderr, "zctl: Can't find windowgram port\n");
-    return 1;
-  }
-  
-  to.sin_port = (u_short) zwgcport;
-  if ((retval = ZSetDestAddr(&to)) != ZERR_NONE) {
-    com_err("zctl",retval,"while setting destination address");
-    return 1;
-  }
-  
-  memset((char *) &notice, 0, sizeof(ZNotice_t));
-  notice.z_kind = UNSAFE;
-  notice.z_class = WG_CTL_CLASS;
-  notice.z_class_inst = WG_CTL_USER;
-  notice.z_recipient = "";
-  notice.z_default_format = "";
-  notice.z_opcode = "LIST-SUPPRESSED" /*USER_LIST_SUPPRESSED*/;
-  notice.z_port = ourport;
-  notice.z_message = NULL;
-  notice.z_message_len = 0;
-  
-  if ((retval = ZSendNotice(&notice,ZNOAUTH)) != ZERR_NONE)
-    com_err("zctl",retval,"while sending notice");
-  
-  if ((retval = ZReceiveNotice(&notice,&from)) != ZERR_NONE)
-    com_err("zctl",retval,"while receiving ack");
-  
-  (void) ZFreeNotice(&notice);
-  
-  if ((retval = ZReceiveNotice(&notice,&from)) != ZERR_NONE)
-    com_err("zctl",retval,"while receiving notice");
-  
-  notice.z_auth = ZCheckAuthentication(&notice, &from);
-  
-  if ((retval = ZSetDestAddr(&old)) != ZERR_NONE) {
-    com_err("zctl",retval,"while resetting destination address");
-    return 1;
-  }
-  
-  msg = (char *) malloc((notice.z_message_len+1) * sizeof(char));
-  (void) strncpy(msg,notice.z_message, notice.z_message_len);
-  msg[notice.z_message_len]=(char)0;
-  printf("%s", msg);
-  (void) free(msg);
-  (void) ZFreeNotice(&notice);
-  (void) ZClosePort();
-  
-#endif /* CMU_ZCTL_PUNT */
-  return 0;
-}
diff --git a/zephyr/clients/zctl/zctl_cmds.ct b/zephyr/clients/zctl/zctl_cmds.ct
deleted file mode 100644 (file)
index f667228..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-#      $Id: zctl_cmds.ct 2338 2009-03-22 21:14:55Z kcr $
-#
-       command_table   zctl_cmds;
-
-       request         set_file, "Set default subscriptions file.",
-                       file;
-
-       request         cancel_subs, "Cancel all subscriptions.",
-                       cancel;
-
-       request         load_subs, "Subscribe to a subscriptions file.",
-                       load, ld;
-
-       request         load_subs, "Unsubscribe to a subscriptions file.",
-                       unload, unld;
-
-       request         load_subs, "List a subscriptions file.",
-                       list, ls;
-
-       request         subscribe, "Subscribe to a class/class instance.",
-                       subscribe, sub;
-
-       request         subscribe, "Unsubscribe to a class/class instance.",
-                       unsubscribe, unsub;
-
-       request         sub_file, "Subscribe and add to subscriptions file.",
-                       add;
-
-       request         sub_file, "Unsubscribe and add to subscriptions file\n                         as un-subscription.",
-                       add_unsubscription, add_un;
-
-       request         sub_file, "Unsubscribe and delete subscription from\n                         subscriptions file.",
-                       delete, del, dl;
-       request         sub_file, "Delete un-subscription from subscriptions file.",
-                       delete_unsubscription, del_un;
-
-       request         current, "Retrieve current subscriptions.",
-                       retrieve, ret;
-
-       request         current, "Retrieve system-wide default subscriptions.",
-                       defaults, defs;
-
-       request         current, "Save current subscriptions (replacing existing file).",
-                       save;
-
-       request         show_var, "Show a variable's value.",
-                       show;
-
-       request         set_var, "Set a variable's value.",
-                       set;
-
-       request         unset_var, "Delete a variable's value.",
-                       unset;
-
-       request         wgc_control, "Get the WindowGram to reread its description file.",
-                       wg_read;
-
-       request         wgc_control, "Tell the WindowGram not to react to incoming notices.",
-                       wg_shutdown;
-
-       request         wgc_control, "Tell the WindowGram to react to incoming notices.",
-                       wg_startup;
-
-       request         wgc_control, "Tell the WindowGram to exit completely.",
-                       wg_exit;
-
-       request         hm_control, "Tell the server to flush information about this host.",
-                       hm_flush;
-
-       request         hm_control, "Tell the HostManager to find a new server.",
-                       new_server;
-
-       request         flush_locations, "Flush all location information.",
-                       flush_locs;
-
-       request         do_hide, "Hide your location.",
-                       hide;
-
-       request         do_hide, "Show (un-hide) your location.",
-                       unhide;
-
-       request         ss_list_requests, "List available commands.",
-                       list_requests, lr, "?";
-
-       request         ss_quit, "Quit.",
-                       quit, exit, q;
-#ifdef CMU_BACKWARD_COMPAT
-       request         do_punt, "Ignore specified messages.",
-                       punt;
-
-       request         do_punt, "Stop ignoring specified messages.",
-                       unpunt;
-
-       request         list_punts, "List current messages to ignore.",
-                       list_punts, lp;
-
-#endif
-       end;
diff --git a/zephyr/clients/zleave/Makefile.in b/zephyr/clients/zleave/Makefile.in
deleted file mode 100644 (file)
index a16ff18..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-bindir=${exec_prefix}/bin
-top_builddir=../..
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=../..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-INSTALL=@INSTALL@
-
-LIBZEPHYR=${BUILDTOP}/lib/libzephyr.la
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -I${top_srcdir}/h -I${BUILDTOP}/h ${CPPFLAGS}
-LDFLAGS=@LDFLAGS@
-LIBS=${LIBZEPHYR} @LIBS@ -lcom_err
-
-OBJS=  zleave.o
-
-all: zleave
-
-zleave: ${OBJS} ${LIBZEPHYR}
-       ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install: zleave
-       ${LIBTOOL} --mode=install ${INSTALL} -m 755 zleave ${DESTDIR}${bindir}
-       ${INSTALL} -m 644 ${srcdir}/zleave.1 ${DESTDIR}${mandir}/man1
-
-clean:
-       ${LIBTOOL} --mode=clean rm -f zleave
-       rm -f ${OBJS}
-
-${OBJS}: ${top_srcdir}/h/sysdep.h ${BUILDTOP}/h/config.h
-${OBJS}: ${BUILDTOP}/h/zephyr/zephyr.h ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/clients/zleave/zleave.1 b/zephyr/clients/zleave/zleave.1
deleted file mode 100644 (file)
index 1e52d8a..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-.\"    $Id: zleave.1 2091 2007-12-20 01:17:23Z kcr $
-.\"
-.\" Copyright (c) 1980 Regents of the University of California.
-.\" All rights reserved.  The Berkeley software License Agreement
-.\" specifies the terms and conditions for redistribution.
-.\"
-.\"
-.TH ZLEAVE 1 "July 1, 1988" "MIT Project Athena"
-.ds ]W MIT Project Athena
-.SH NAME
-zleave \- notify you via Zephyr when you have to leave 
-.SH SYNOPSIS
-.B zleave
-[ 
-.RI [+] hhmm
-[
-.I -m "Reminder Message"
-] ]
-.br
-.B zleave 
-.I can\fR[\fIcel\fR]
-.SH DESCRIPTION
-.I Zleave
-waits until the specified time, then reminds you that you
-have to leave, using the \fIZephyr(1)\fR Notification Service.
-You are reminded 5 minutes and 1 minute before the actual
-time, at the time, and every minute thereafter.
-When you log off,
-.I zleave
-exits just before it would have sent the next message.
-.PP
-The time of day is in the form hhmm where hh is a time in
-hours (on a 12 or 24 hour clock).
-All times are converted to a 12 hour clock, and assumed to
-be in the next 12 hours.
-.PP
-If the time is preceded by `+', the alarm will go off in hours and minutes
-from the current time.
-.PP
-If no argument is given,
-.I zleave
-prompts with "When do you
-have to leave?". A reply of newline causes
-.I zleave
-to exit,
-otherwise the reply is assumed to be a time.
-This form is suitable for inclusion in a
-.I .login
-or
-.I .profile.
-.PP
-The
-.I cancel
-option cancels the currently running \fIzleave\fR.  If another
-.I zleave
-is running, it is automatically killed when a new time to leave is
-set.  The process id is stored in the file /tmp/zleave.\fIuid\fR, where
-\fIuid\fR is the user's UNIX uid.
-.PP
-If the
-.I -m
-argument is specified, the next argument
-is appended to the standard message 
-(a sentence describing how much time remains until the appointed hour)
-sent at appropriate times.
-If you want to append a multiple-word message, you normally must quote it with
-double quotes (") (This is necessary for users of
-.IR csh (1)
-and
-.IR sh (1).)
-.PP
-.I Zleave
-automatically subscribes you to Zephyr class "MESSAGE",
-instance "LEAVE".  You do not have to add anything to your
-default subscriptions file (see 
-.IR zctl (1)).
-The reminder message is displayed by the WindowGram client (usually
-.IR zwgc (1)).
-.PP
-If Zephyr is unavailable,
-.I zleave 
-acts essentially like 
-.IR leave (1).
-.PP
-Zleave ignores SIGINT, SIGQUIT, and SIGTERM.
-To get rid of it you should either log off or use the
-.I cancel
-option.
-.SH FILES
-/tmp/zleave.\fIuid\fR
-/tmp/wg.*
-.SH SEE ALSO
-calendar(1), zephyr(1), leave(1), zwgc(1), zctl(1), csh(1), sh(1)
-.br
-Project Athena Technical Plan Section E.4.1, `Zephyr Notification
-Service'
-.SH RESTRICTIONS
-Copyright (c) 1980,  Regents of the University of California.
-All rights reserved.
-Redistribution and use in source and binary forms are permitted
-provided that this notice is preserved and that due credit is given
-to the University of California at Berkeley. The name of the University
-may not be used to endorse or promote products derived from this
-software without specific written prior permission. This software
-is provided ``as is'' without express or implied warranty.
-.sp
-Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
diff --git a/zephyr/clients/zleave/zleave.c b/zephyr/clients/zleave/zleave.c
deleted file mode 100644 (file)
index feb277a..0000000
+++ /dev/null
@@ -1,426 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains code for the "zleave" command.
- *
- *      Created by:     David Jedlinsky
- *
- *      $Id: zleave.c 2323 2009-03-22 05:27:07Z kcr $
- *
- *      Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h". 
- */
-
-#include <sysdep.h>
-#include <zephyr/mit-copyright.h>
-#include <zephyr/zephyr.h>
-
-#include <com_err.h>
-
-#ifndef lint
-static const char rcsid_zlocate_c[] = "$Id: zleave.c 2323 2009-03-22 05:27:07Z kcr $";
-#endif /* lint */
-
-/*
- * Copyright (c) 1980 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that this notice is preserved and that due credit is given
- * to the University of California at Berkeley. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific written prior permission. This software
- * is provided ``as is'' without express or implied warranty.
- */
-
-#ifndef lint
-char copyright[] =
-"@(#) Copyright (c) 1980 Regents of the University of California.\n\
- All rights reserved.\n";
-#endif /* not lint */
-
-#define MESSAGE_CLASS "MESSAGE"
-#define INSTANCE "LEAVE"
-/*
- * zleave [[+]hhmm [ -m "Reminder Message" ]]
- *  or
- * zleave can[cel]
- *
- * Reminds you when you have to leave.
- * Leave prompts for input and goes away if you hit return.
- * Messages are sent through Zephyr.  Subscriptions are handled automagically.
- * It nags you like a mother hen.
- */
-char origlogin[20];
-char tempfile[40];
-char *whenleave;
-char *reminder_message = NULL;
-char buff[100];
-int use_zephyr=1, oldpid;
-
-void usage(void);
-void doalarm(long);
-void bother(long, char *);
-void delay(long);
-int gethm(char *, int *, int*);
-
-int
-main(int argc,
-     char **argv)
-{
-       time_t now;
-       long when, diff;
-       int hours, minutes;
-       char *cp;
-       FILE *fp;
-       struct tm *nv;
-       int port, c;
-       ZSubscription_t sub;
-       
-       if (ZInitialize() != ZERR_NONE) {
-             fprintf(stderr,"No Zephyr! Will write directly to terminal.\n");
-             use_zephyr = 0;
-       }
-       (void) sprintf(tempfile, "/tmp/zleave.%d", (int) getuid());
-
-       if (use_zephyr) {
-               if ((port = ZGetWGPort()) == -1) {
-                       fprintf(stderr,
-                               "Can't find WindowGram subscription port.\n");
-                       fprintf(stderr,"Will write directly to terminal.\n");
-                       use_zephyr = 0;
-               } else {
-                       sub.zsub_class = MESSAGE_CLASS;
-                       sub.zsub_classinst = INSTANCE;
-                       sub.zsub_recipient = ZGetSender();
-                       if (ZSubscribeToSansDefaults(&sub,1,(u_short)port)
-                           != ZERR_NONE) {
-                               fprintf(stderr,
-                                       "Subscription error!  Writing to your terminal...\n");
-                               use_zephyr = 0;
-                       } 
-               }
-       }       
-       if (!use_zephyr) {
-           if ((cp = getlogin()) == NULL) {
-               fputs("leave: You are not logged in.\n", stderr);
-               exit(1);
-           }
-           (void) strcpy(origlogin, cp);
-       }
-
-       c = 1;
-       while ((c<argc) && (! reminder_message))
-           if (!strcmp(argv[c++],"-m")) {
-               if (argv[c])
-                   reminder_message = argv[c];
-               else
-                   usage();
-           }
-
-       if (!reminder_message)
-           reminder_message = "";
-
-       if (argc < 2) {
-               printf("When do you have to leave? ");
-               (void) fflush(stdout);
-               buff[read(0, buff, sizeof buff)] = 0;
-               cp = buff;
-       } else
-               cp = argv[1];
-       if (*cp == '\n')
-               exit(0);
-       if (*cp == '+') {
-               cp++;
-               if (!gethm(cp, &hours, &minutes))
-                       usage();
-               if (minutes < 0 || minutes > 59)
-                       usage();
-               diff = 60*hours+minutes;
-               doalarm(diff);
-               exit(0);
-       }
-       if (!strcmp(cp, "cancel") || !strcmp(cp, "can")) {
-             if (!(fp = fopen(tempfile,"r"))) {
-                   printf("No zleave is currently running.\n");
-                   exit(0);
-             }
-             if (fscanf(fp, "%d", &oldpid) != 1) {
-                     printf("The zleave pid file is corrupted.\n");
-                     (void) fclose(fp);
-                     exit(0);
-             }
-             (void) fclose(fp);
-             if (kill(oldpid,9))
-                   printf("No zleave is currently running.\n");
-             (void) unlink(tempfile);
-             exit(0);
-       }
-       if (!gethm(cp, &hours, &minutes))
-               usage();
-       if (hours > 12)
-               hours -= 12;
-       if (hours == 12)
-               hours = 0;
-
-       if (hours < 0 || hours > 12 || minutes < 0 || minutes > 59)
-               usage();
-
-       (void) time(&now);
-       nv = localtime(&now);
-       when = 60*hours+minutes;
-       if (nv->tm_hour > 12)
-               nv->tm_hour -= 12;      /* do am/pm bit */
-       now = 60 * nv->tm_hour + nv->tm_min;
-       diff = when - now;
-       while (diff < 0)
-               diff += 12*60;
-       if (diff > 11*60) {
-               fprintf(stderr, "That time has already passed!\n");
-               exit(1);
-       }
-
-       doalarm(diff);
-       exit(0);
-}
-
-void
-usage(void)
-{
-       fprintf(stderr, "usage: zleave [[+]hhmm [-m \"Reminder Message\"]]\n\
-\tor: zleave can[cel]\n");
-       exit(1);
-}
-
-int
-gethm(char *cp,
-      int *hp,
-      int *mp)
-{
-       char c;
-       int tod;
-
-       tod = 0;
-       while ((c = *cp++) != '\0') {
-               if (!isdigit(c))
-                       return(0);
-               tod = tod * 10 + (c - '0');
-       }
-       *hp = tod / 100;
-       *mp = tod % 100;
-       return(1);
-}
-
-void
-doalarm(long nmins)
-{
-       time_t daytime;
-       char *msg1, *msg2, *msg3, *msg4;
-       register int i;
-       long slp1, slp2, slp3, slp4;
-       long seconds, gseconds;
-       FILE *fp;
-#ifdef _POSIX_VERSION
-       struct sigaction sa;
-#endif
-
-       seconds = 60 * nmins;
-       if (seconds <= 0)
-               seconds = 1;
-       gseconds = seconds;
-
-       msg1 = "You have to leave in 5 minutes";
-       if (seconds <= 60*5) {
-               slp1 = 0;
-       } else {
-               slp1 = seconds - 60*5;
-               seconds = 60*5;
-       }
-
-       msg2 = "Just one more minute!";
-       if (seconds <= 60) {
-               slp2 = 0;
-       } else {
-               slp2 = seconds - 60;
-               seconds = 60;
-       }
-
-       msg3 = "Time to leave!";
-       slp3 = seconds;
-
-       msg4 = "You're going to be late!";
-       slp4 = 60L;
-
-       (void) time(&daytime);
-       daytime += gseconds;
-       whenleave = ctime(&daytime);
-
-       fp = fopen(tempfile,"r");
-       if (fp) {
-             if (fscanf(fp, "%d", &oldpid) == 1)
-                     if (!kill(oldpid,9))
-                             printf("Old zleave process killed.\n");
-             (void) fclose(fp);
-       }
-       printf("Alarm set for %s", whenleave);
-
-/* Subscribe to MESSAGE.LEAVE here */
-
-       switch(fork()) {
-           case -1:
-             perror("fork");
-             exit(-1);
-             break;
-           case 0:
-             break;
-           default:
-             exit(0);
-             break;
-       }
-       if (!(fp = fopen(tempfile, "w")))
-         fprintf(stderr, "Cannot open pid file.\n");
-       else {
-             fprintf(fp, "%d\n", getpid());
-             if (fclose(fp) == EOF)
-                     (void) perror("fclose on pid file");
-       }
-
-#ifdef _POSIX_VERSION
-       sigemptyset(&sa.sa_mask);
-       sa.sa_flags = 0;
-       sa.sa_handler = SIG_IGN;
-       sigaction(SIGINT, &sa, (struct sigaction *)0);
-       sigaction(SIGQUIT, &sa, (struct sigaction *)0);
-       sigaction(SIGTERM, &sa, (struct sigaction *)0);
-       sigaction(SIGTTOU, &sa, (struct sigaction *)0);
-#else
-       (void) signal(SIGINT, SIG_IGN);
-       (void) signal(SIGQUIT, SIG_IGN);
-       (void) signal(SIGTERM, SIG_IGN);
-       (void) signal(SIGTTOU, SIG_IGN);
-#endif
-
-       if (slp1)
-               bother(slp1, msg1);
-       if (slp2)
-               bother(slp2, msg2);
-       bother(slp3, msg3);
-       for (i = 0; i < 10; i++)
-               bother(slp4, msg4);
-
-       bother(0L, "That was the last time I'll tell you. Bye.");
-       (void) unlink(tempfile);
-       exit(0);
-}
-
-void
-bother(long slp,
-       char *msg)
-{
-      ZNotice_t notice;
-      ZNotice_t retnotice;
-      int retval;
-      char *real_message;
-
-      delay(slp);
-
-      if (use_zephyr) {
-           real_message = (char *) malloc(strlen(msg) +
-                                          strlen(reminder_message) + 3);
-           if (real_message == NULL) {
-               fprintf (stderr, "zleave: out of memory\n");
-               exit (1);
-           }
-           sprintf(real_message,"%c%s\n%s",'\0',msg,reminder_message);
-
-           (void) memset((char *)&notice, 0, sizeof(notice));
-           notice.z_kind = ACKED;
-           notice.z_port = 0;
-           notice.z_charset = ZCHARSET_UNKNOWN;
-           notice.z_class = MESSAGE_CLASS;
-           notice.z_class_inst = INSTANCE;
-           notice.z_recipient = ZGetSender();
-           notice.z_opcode = "";
-           notice.z_sender = (char *) 0;
-           notice.z_default_format = "\n$2";
-           notice.z_message = real_message;
-           /* +3: initial null, newline, final null */
-           notice.z_message_len = strlen(msg)+strlen(reminder_message)+3;
-           
-           if (ZSendNotice(&notice, ZAUTH) != ZERR_NONE) {
-                 printf("\7\7\7%s\n%s", msg, reminder_message);
-                 use_zephyr = 0;
-           } else
-           if ((retval = ZIfNotice(&retnotice, (struct sockaddr_in *) 0,
-                                   ZCompareUIDPred, 
-                                   (char *)&notice.z_uid)) != ZERR_NONE) {
-               fprintf(stderr,
-                       "zleave: %s while waiting for acknowledgement\n", 
-                       error_message(retval));
-               use_zephyr = 0;
-           } else
-           if (retnotice.z_kind == SERVNAK) {
-               fprintf(stderr,
-                       "zleave: authorization failure while sending\n");
-               use_zephyr = 0;
-           } else
-           if (retnotice.z_kind != SERVACK || !retnotice.z_message_len) {
-               fprintf(stderr, "zleave: Detected server failure while receiving acknowledgement\n");
-               use_zephyr = 0;
-           } else
-           if (strcmp(retnotice.z_message, ZSRVACK_SENT)) {
-               /* it wasn't sent */
-               exit(0);
-           }
-           if (!use_zephyr)
-               exit(1);
-           ZFreeNotice(&retnotice);
-           free(real_message);
-      } else
-#ifdef __STDC__
-       printf("\a\a\a%s\n%s", msg, reminder_message);
-#else
-       printf("\7\7\7%s\n%s", msg, reminder_message);
-#endif
-}
-
-/*
- * delay is like sleep but does it in 100 sec pieces and
- * knows what zero means.
- */
-void
-delay(long secs)
-{
-       long n;
-       register char *l;
-
-       while (secs > 0) {
-               n = 100;
-               if (secs < n)
-                       n = secs;
-               secs -= n;
-               if (n > 0)
-                       sleep((unsigned) n);
-               if (!use_zephyr) {
-                   l = getlogin();
-                   if (l == NULL)
-                       exit(0);
-                   if (strcmp(origlogin, l) != 0)
-                       exit(0);
-               }
-       }
-}
-
-#ifndef HAVE_GETLOGIN
-char *getlogin() {
-#include <utmp.h>
-
-       static struct utmp ubuf;
-       int ufd;
-
-       ufd = open("/etc/utmp",0);
-       seek(ufd, ttyn(0)*sizeof(ubuf), 0);
-       read(ufd, &ubuf, sizeof(ubuf));
-       ubuf.ut_name[sizeof(ubuf.ut_name)] = 0;
-       return(&ubuf.ut_name);
-}
-#endif
diff --git a/zephyr/clients/zlocate/Makefile.in b/zephyr/clients/zlocate/Makefile.in
deleted file mode 100644 (file)
index 1f84150..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-bindir=${exec_prefix}/bin
-top_builddir=../..
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=../..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-INSTALL=@INSTALL@
-
-LIBZEPHYR=${BUILDTOP}/lib/libzephyr.la
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -I${top_srcdir}/h -I${BUILDTOP}/h ${CPPFLAGS}
-LDFLAGS=@LDFLAGS@
-LIBS=${LIBZEPHYR} @LIBS@ -lcom_err
-
-OBJS=  zlocate.o
-
-all: zlocate
-
-zlocate: ${OBJS} ${LIBZEPHYR}
-       ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install: zlocate
-       ${LIBTOOL} --mode=install ${INSTALL} -m 755 zlocate ${DESTDIR}${bindir}
-       ${INSTALL} -m 644 ${srcdir}/zlocate.1 ${DESTDIR}${mandir}/man1
-
-clean:
-       ${LIBTOOL} --mode=clean rm -f zlocate
-       rm -f ${OBJS}
-
-${OBJS}: ${top_srcdir}/h/sysdep.h ${BUILDTOP}/h/config.h
-${OBJS}: ${BUILDTOP}/h/zephyr/zephyr.h ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/clients/zlocate/zlocate.1 b/zephyr/clients/zlocate/zlocate.1
deleted file mode 100644 (file)
index 8ee0cae..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-.\"    $Id: zlocate.1 2339 2009-03-22 21:16:09Z kcr $
-.\"
-.\" Copyright 1987,1988 by the Massachusetts Institute of Technology
-.\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
-.\" specifies the terms and conditions for redistribution.
-.\"
-.\"
-.TH ZLOCATE 1 "April 17, 1990" "MIT Project Athena"
-.ds ]W MIT Project Athena
-.SH NAME
-zlocate \- find a user using Zephyr
-.SH SYNOPSIS
-.B zlocate
-[
-.B -a
-| 
-.B -d
-] [
-.B -1
-] [
-.B -p
-] user ...
-.SH DESCRIPTION
-.I Zlocate
-uses the
-.I Zephyr(1)
-Notification Service to find where a user is currently logged in.  If
-the user is not logged in, or has set his location information such that
-you do not have access to see it,
-.I zlocate
-prints "Hidden or not logged-in".  Otherwise, each machine that the
-user is currently logged into is printed, along with the time of
-login and location.  The location is usually the X window system display
-name of the user's display, but may be the terminal name if he is not
-using X or for some other reason is only using the terminal interface to
-.I zwgc(1).
-
-By default, all zlocate requests are authenticated using
-.IR Kerberos .
-If you do not have Kerberos tickets, or for some other reason do not
-want to authenticate, the
-.B -d
-option will turn off authentication.  The
-.B -a
-option is the default, authentication on.
-
-When locating multiple users,
-.I zlocate
-will display the user name on a line by itself, followed by the locations for that user. To display the user name on the same line as the output, use the
-.B -1
-option (the numeral one).
-
-To look up multiple users in parallel asynchronously, use the
-.B -p
-option.
-
-.SH DIAGNOSTICS
-.I zlocate
-exits with status zero (0) if at least one user was found, and one (1)
-if no users were found.
-.SH SEE ALSO
-zctl(1), zephyr(1), znol(1), zwgc(1), zhm(8), zephyrd(8), X(1)
-.br
-Project Athena Technical Plan Section E.4.1, `Zephyr Notification
-Service'
-.SH AUTHORS
-.PP
-Robert S. French (MIT-Project Athena)
-.br
-Marc Horowitz (MIT-Project Athena)
-.SH RESTRICTIONS
-Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
-All Rights Reserved.
-.br
-.I zephyr(1)
-specifies the terms and conditions for redistribution.
diff --git a/zephyr/clients/zlocate/zlocate.c b/zephyr/clients/zlocate/zlocate.c
deleted file mode 100644 (file)
index 91c7d3c..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains code for the "zlocate" command.
- *
- *     Created by:     Robert French
- *
- *     $Id: zlocate.c 2125 2008-01-20 20:46:45Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <sysdep.h>
-#include <zephyr/zephyr.h>
-#include <sys/socket.h>
-
-#if !defined(lint) && !defined(SABER)
-static const char rcsid_zlocate_c[] = "$Id: zlocate.c 2125 2008-01-20 20:46:45Z kcr $";
-#endif
-
-int numusers=0, numleft=0, parallel=0, oneline=0;
-char *whoami;
-
-RETSIGTYPE
-timeout(int sig)
-{
-  fprintf (stderr, "%s: no response from server\n", whoami);
-  exit(1);
-}
-
-void
-usage(void)
-{
-   printf("Usage: %s [ -a | -d ] [ -p ] [ -1 ] user ... \n",whoami);
-   exit(1);
-}
-
-void
-print_locs(char *user,
-          int nlocs)
-{
-   int one = 1, retval;
-   ZLocations_t locations;
-
-   if ((!oneline) && (numusers>1))
-     printf("\t%s:\n",user);
-
-   if ((!oneline) && (nlocs == 0))
-      printf("Hidden or not logged-in\n");
-
-   for (;nlocs;nlocs--) {
-      if ((retval = ZGetLocations(&locations,&one)) != ZERR_NONE) {
-        com_err(whoami,retval,"while getting location");
-        exit(1);
-      }
-      if (oneline) {
-        printf("%s:\t%s\t%s\t%s\n",user,locations.host,locations.tty,
-               locations.time);
-      } else {
-        printf("%-42s %-7s %s\n",locations.host, locations.tty, locations.time);
-      }
-   }
-
-   if ((!oneline) && (numusers > 1) && (numleft > 0))
-     printf("\n");
-}
-
-/*ARGSUSED*/
-int
-main(int argc,
-     char *argv[])
-{
-    char user[BUFSIZ],*whichuser;
-    ZAsyncLocateData_t ald;
-    int retval,i,numlocs,numfound,loc,auth,rlen;
-    ZNotice_t notice;
-#ifdef _POSIX_VERSION
-    struct sigaction sa;
-#endif
-   
-    whoami = argv[0];
-    auth = -1;
-
-    argv++;
-    argc--;
-
-    for (i=0; i < argc; i++)
-       if (argv[i][0] == '-')
-           switch (argv[i][1]) {
-           case 'a':
-               if (auth != -1) usage();
-               auth = 1;
-               break;
-           case 'd':
-               if (auth != -1) usage();
-               auth = 0;
-               break;
-           case 'p':
-               parallel = 1;
-               break;
-           case '1':
-               oneline = 1;
-               break;
-           default:
-               usage();
-               break;
-           }
-       else
-           numusers++;
-
-    if (numusers == 0)
-       usage();
-
-    if (auth == -1) auth = 1;
-   
-    if ((retval = ZInitialize()) != ZERR_NONE) {
-       com_err(whoami,retval,"while initializing");
-       exit(1);
-    } 
-
-    numleft = numusers;
-    numfound = 0;
-    rlen = strlen(ZGetRealm());
-
-    i = 0;
-    for (loc = 0; loc < argc; loc++) {
-       if (argv[loc][0] == '-') continue;
-
-       (void) strncpy(user,argv[loc],sizeof(user) - rlen - 2);
-       user[sizeof(user) - rlen - 2] = '\0';
-       if (!strchr(user,'@')) {
-           (void) strcat(user,"@");
-           (void) strcat(user,ZGetRealm());
-       } 
-       if (parallel) {
-           if ((retval = ZRequestLocations(user, &ald, i ? UNSAFE : UNACKED,
-                                           auth?ZAUTH:ZNOAUTH)) != ZERR_NONE) {
-               com_err(whoami,retval,"requesting location of %s",user);
-               exit(1);
-           }
-           i = 1;
-       } else {
-           if ((retval = ZLocateUser(user,&numlocs,auth?ZAUTH:ZNOAUTH)) != ZERR_NONE) {
-               com_err(whoami,retval,"while locating user %s",user);
-               exit(1);
-           }
-           print_locs(user,numlocs);
-           numfound += numlocs;
-       }
-    }
-
-    if (parallel) {
-#ifdef _POSIX_VERSION
-       sigemptyset(&sa.sa_mask);
-       sa.sa_flags = 0;
-       sa.sa_handler = timeout;
-       sigaction(SIGALRM, &sa, (struct sigaction *)0);
-#else
-       signal (SIGALRM, timeout);
-#endif
-       while (numleft-- > 0) {
-           alarm(SRV_TIMEOUT);
-           if ((retval = ZReceiveNotice(&notice, NULL)) != ZERR_NONE) {
-               com_err(whoami,retval,"while searching notice queue");
-               continue;
-           }
-           if ((retval = ZParseLocations(&notice, (ZAsyncLocateData_t *)NULL,
-                                         &numlocs, &whichuser)) != ZERR_NONE) {
-               com_err(whoami,retval,"while parsing locations");
-               continue;
-           }
-           if (numlocs >= 0) {
-               print_locs(whichuser,numlocs);
-               free(whichuser);
-               numfound += numlocs;
-           }
-           ZFreeNotice(&notice);
-       }
-    }
-    return((numfound > 0) ? 0 : 1);
-}
diff --git a/zephyr/clients/znol/Makefile.in b/zephyr/clients/znol/Makefile.in
deleted file mode 100644 (file)
index aa01641..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-bindir=${exec_prefix}/bin
-top_builddir=../..
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=../..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-INSTALL=@INSTALL@
-
-LIBZEPHYR=${BUILDTOP}/lib/libzephyr.la
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -I${top_srcdir}/h -I${BUILDTOP}/h ${CPPFLAGS}
-LDFLAGS=@LDFLAGS@
-LIBS=${LIBZEPHYR} @LIBS@ -lcom_err
-
-OBJS=  znol.o
-
-all: znol
-
-znol: ${OBJS} ${LIBZEPHYR}
-       ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install: znol
-       ${LIBTOOL} --mode=install ${INSTALL} -m 755 znol ${DESTDIR}${bindir}
-       ${INSTALL} -m 644 ${srcdir}/znol.1 ${DESTDIR}${mandir}/man1
-
-clean:
-       ${LIBTOOL} --mode=clean rm -f znol
-       rm -f ${OBJS}
-
-${OBJS}: ${top_srcdir}/h/sysdep.h ${BUILDTOP}/h/config.h
-${OBJS}: ${BUILDTOP}/h/zephyr/zephyr.h ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/clients/znol/znol.1 b/zephyr/clients/znol/znol.1
deleted file mode 100644 (file)
index 5395be3..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-.\"    $Id: znol.1 2091 2007-12-20 01:17:23Z kcr $
-.\"
-.\" Copyright 1987,1988 by the Massachusetts Institute of Technology
-.\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
-.\" specifies the terms and conditions for redistribution.
-.\"
-.\"    @(#)znol.1      6.1 (MIT) 7/9/87
-.\"
-.TH ZNOL 1 "July 1, 1988" "MIT Project Athena"
-.ds ]W MIT Project Athena
-.SH NAME
-znol \- notify via Zephyr upon login or logout of interesting people
-.SH SYNOPSIS
-.B znol
-[
-.BI on|off
-] [
-.BI \-f \ file
-] [
-.BI \-u \ username
-] [
-.BI \-l
-] [
-.BI \-q
-]
-.SH DESCRIPTION
-.I Znol
-provides a way for you to be notified when "interesting" people log in
-or out.  It uses the
-.I Zephyr(1)
-Notification Service, which causes a message to appear on your screen
-for every person specified in a namelist (which defaults to
-$HOME/.anyone).  The namelist should have one login name per line.  Any
-line starting with `#' is considered a comment and ignored.
-Anyone in the namelist who is logged in when
-.I znol
-is executed is printed to stdout.  The control arguments are as
-follows:
-.TP 12
-.B on|off
-Turns notification on or off.
-.TP
-.B \-f
-The namelist file is taken to be
-.I file.
-If
-.I file
-is "-", then the standard input is used instead of a file. If
-.I file
-does not exist, an error message is printed, and
-.I znol
-exits.
-This option may not be used in conjunction with the
-.B \-u
-option.
-.TP
-.B \-l
-Causes
-.I znol
-to just list the people in the namelist who are currently logged in,
-without subscribing to the login messages.   This option may not be used
-in conjunction with the
-.BI \-q
-option.
-.TP
-.B \-q
-Disables printing who is currently logged in when subscribing.  This
-option may not be used in conjunction with the
-.BI \-l
-option.
-.TP
-.B \-u
-Instead of reading a file to specify the "interesting" users, the next
-argument is used as the only "interesting" user.  This option may not be
-used in conjunction with the
-.B \-f
-option.
-.SH EXAMPLES
-.nf
-.in +.5in
-znol
-.in -.5in
-.fi
-reads the standard namelist file, prints the locations of any users
-named therein which can be found on the system, and enters subscriptions
-for notices about those users.
-.nf
-.in +.5in
-znol -l -u foo
-.in -.5in
-.fi
-prints the location (if visible) of the user 'foo'.
-.SH FILES
-$HOME/.anyone
-.SH SEE ALSO
-anyone(SIPB), nol(SIPB), zctl(1), zephyr(1), zwgc(1), zhm(8), zephyrd(8)
-.br
-Project Athena Technical Plan Section E.4.1, `Zephyr Notification
-Service'
-.SH AUTHOR
-.PP
-Robert S. French (MIT-Project Athena)
-.sp
-.SH RESTRICTIONS
-Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
-All Rights Reserved.
-.br
-.I zephyr(1)
-specifies the terms and conditions for redistribution.
diff --git a/zephyr/clients/znol/znol.c b/zephyr/clients/znol/znol.c
deleted file mode 100644 (file)
index 7769593..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains code for the "znol" command.
- *
- *     Created by:     Robert French
- *
- *     $Id: znol.c 2333 2009-03-22 18:30:19Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <sysdep.h>
-#include <zephyr/zephyr.h>
-
-#include <pwd.h>
-
-#ifndef lint
-static const char rcsid_znol_c[] = "$Id: znol.c 2333 2009-03-22 18:30:19Z kcr $";
-#endif 
-
-#define SUBSATONCE 7
-#define ON 1
-#define OFF 0
-
-int
-main(int argc, char *argv[])
-{
-       register char *cp;
-       ZSubscription_t subs[SUBSATONCE];
-       ZLocations_t locations;
-       FILE *fp = NULL;
-       struct passwd *pwd;
-       char anyonename[BUFSIZ],name[BUFSIZ],cleanname[BUFSIZ],*envptr;
-       char *comment_ptr;
-       int onoff = ON,quiet = 0,justlist = 0,useronly = 0, filenamed = 0;
-       int retval,arg,ind,one,numlocs,i;
-       int wgport = 0;
-
-       if ((retval = ZInitialize()) != ZERR_NONE) {
-               com_err(argv[0],retval,"initializing");
-               exit (1);
-       }
-
-       for (arg=1;arg<argc;arg++) {
-               if (!strcmp(argv[arg],"on")) {
-                       onoff = ON;
-                       continue;
-               }
-               if (!strcmp(argv[arg],"off")) {
-                       onoff = OFF;
-                       continue;
-               } 
-               if (argv[arg][0] == '-') {
-                       char opt = argv[arg][1];
-                       if (opt == 0 || argv[arg][2] != 0)
-                               goto usage;
-                       switch (argv[arg][1]) {
-                       case 'q':
-                               quiet = 1;
-                               break;
-                       case 'l':
-                               justlist = 1;
-                               break;
-                       case 'f':
-                               if (arg == argc-1) {
-                                       fprintf(stderr,"No file name specified\n");
-                                       goto usage;
-                               }
-                               (void) strcpy(anyonename,argv[++arg]);
-                               filenamed = 1;
-                               break;
-                       case 'u':
-                               if (arg == argc-1) {
-                                       fprintf(stderr,"No username specified\n");
-                                       goto usage;
-                               }
-                               (void) strcpy(cleanname,argv[++arg]);
-                               useronly = 1;
-                               break;
-                       default:
-                               goto usage;
-                       }
-                       continue;
-               }
-           usage:
-               fprintf(stderr,"Usage: %s [on|off] [-q | -l] [-f file | -u username]\n", argv[0]);
-               exit (1);
-       }
-
-       if (quiet && justlist) {
-               fprintf(stderr,"-q and -l cannot both be used\n");
-               goto usage;
-       } 
-       if (useronly && filenamed) {
-               fprintf(stderr,"-u and -f cannot both be used\n");
-               goto usage;
-       } 
-       if (!justlist)
-               if ((wgport = ZGetWGPort()) == -1) {
-                       com_err(argv[0],errno,"while getting WindowGram port");
-                       exit(1);
-               }
-       
-       if (!useronly) {
-               /* If no filename specified, get the default */
-               if (!filenamed) {
-                       envptr = getenv("HOME");
-                       if (envptr)
-                           (void) strcpy(anyonename,envptr);
-                       else {
-                               if (!(pwd = getpwuid((int) getuid()))) {
-                                       fprintf(stderr,"You are not listed in the password file.\n");
-                                       exit (1);
-                               }
-                               (void) strcpy(anyonename,pwd->pw_dir);
-                       }
-                       (void) strcat(anyonename,"/.anyone");
-               }
-
-               /* if the filename is "-", read stdin */
-               if (strcmp(anyonename,"-") == 0) {
-                       fp = stdin;
-               } else if (!(fp = fopen(anyonename,"r"))) {
-                       fprintf(stderr,"Can't open %s for input\n",anyonename);
-                       exit (1);
-               }
-       }
-
-       ind = 0;
-       
-       for (;;) {
-               if (!useronly) {
-                   if (!fgets(cleanname,sizeof cleanname,fp))
-                       break;
-                   if (cleanname[0] == '#' || cleanname[0] == '\0' ||
-                       cleanname[0] == '\n')
-                       continue;       /* ignore comment and empty lines */
-                   comment_ptr = strchr(cleanname, '#');
-                   if (comment_ptr)
-                       *comment_ptr = '\0'; /* Ignore from # onwards */
-                   /* Get rid of old-style nol entries, just in case */
-                   cp = cleanname + strlen(cleanname) - 1;
-                   *cp = '\0';
-                   while(*--cp == ' ')
-                       *cp = '\0';
-                   if (*cleanname == '@' || !*cleanname)
-                       continue;
-               } else if (ind)
-                   break;              /* only do the one name */
-
-               subs[ind].zsub_class = LOGIN_CLASS;
-               (void) strcpy(name,cleanname);
-               if (!strchr(name,'@')) {
-                       cp = name + strlen(name);
-                       *cp++ = '@';
-                       (void) strcpy(cp,ZGetRealm());
-               }
-               if ((subs[ind].zsub_classinst = malloc((unsigned)(strlen(name)+1))) == NULL) {
-                       fprintf (stderr, "znol: out of memory");
-                       exit (1);
-               }
-               (void) strcpy(subs[ind].zsub_classinst, name);
-               subs[ind++].zsub_recipient = "";
-
-               if (!quiet && onoff == ON) {
-                       if ((retval = ZLocateUser(name,&numlocs,ZAUTH))
-                           != ZERR_NONE) {
-                               com_err(argv[0],retval,"locating user");
-                               exit(1);
-                       }
-                       one = 1;
-                       if (numlocs) {
-                               for (i=0;i<numlocs;i++) {
-                                       if ((retval =
-                                            ZGetLocations(&locations,&one))
-                                           != ZERR_NONE) {
-                                               com_err(argv[0],retval,
-                                                       "getting location");
-                                               continue;
-                                       }
-                                       if (one != 1) {
-                                               printf("%s: internal failure while getting location\n",argv[0]);
-                                               exit(1);
-                                       }
-                                       printf("%s: %s\t%s\t%s\n",cleanname,
-                                              locations.host,
-                                              locations.tty,
-                                              locations.time);
-                               }
-                       }
-               }
-               
-               if (ind == SUBSATONCE) {
-                       if (!justlist)
-                               if ((retval = (onoff==ON)?
-                                    ZSubscribeToSansDefaults(subs,ind,
-                                                             (u_short)wgport):
-                                    ZUnsubscribeTo(subs,ind,(u_short)wgport)) !=
-                                   ZERR_NONE) {
-                                       com_err(argv[0],retval,(onoff==ON)?
-                                               "subscribing":
-                                               "unsubscribing");
-                                       exit(1);
-                               } 
-                       for (ind=0;ind<SUBSATONCE;ind++)
-                               free(subs[ind].zsub_classinst);
-                       ind = 0;
-               }
-       }
-
-       if (ind && !justlist)
-               if ((retval = (onoff==ON)?
-                    ZSubscribeToSansDefaults(subs,ind,(u_short)wgport):
-                    ZUnsubscribeTo(subs,ind,(u_short)wgport)) !=
-                   ZERR_NONE) {
-                       com_err(argv[0],retval,(onoff==ON)?
-                               "subscribing":
-                               "unsubscribing");
-                       exit(1);
-               } 
-
-       if (!useronly)
-           (void) fclose(fp);          /* file is open read-only,
-                                          ignore errs */
-       exit(0);
-}
diff --git a/zephyr/clients/zshutdown_notify/Makefile.in b/zephyr/clients/zshutdown_notify/Makefile.in
deleted file mode 100644 (file)
index 9df06c0..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-bindir=${exec_prefix}/bin
-top_builddir=../..
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=../..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-INSTALL=@INSTALL@
-
-LIBZEPHYR=${BUILDTOP}/lib/libzephyr.la
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -I${top_srcdir}/h -I${BUILDTOP}/h ${CPPFLAGS}
-LDFLAGS=@LDFLAGS@
-LIBS=${LIBZEPHYR} @LIBS@ -lcom_err
-
-OBJS=  zshutdown_notify.o
-
-all: zshutdown_notify
-
-zshutdown_notify: ${OBJS} ${LIBZEPHYR}
-       ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install: zshutdown_notify
-       ${LIBTOOL} --mode=install ${INSTALL} -m 755 zshutdown_notify \
-         ${DESTDIR}${lsbindir}
-       ${INSTALL} -m 644 ${srcdir}/zshutdown_notify.8 ${DESTDIR}${mandir}/man8
-
-clean:
-       ${LIBTOOL} --mode=clean rm -f zshutdown_notify
-       rm -f ${OBJS}
-
-${OBJS}: ${top_srcdir}/h/sysdep.h ${BUILDTOP}/h/config.h
-${OBJS}: ${BUILDTOP}/h/zephyr/zephyr.h ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/clients/zshutdown_notify/zshutdown_notify.8 b/zephyr/clients/zshutdown_notify/zshutdown_notify.8
deleted file mode 100644 (file)
index 23daf7e..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-.\"    $Id: zshutdown_notify.8 2091 2007-12-20 01:17:23Z kcr $
-.\"
-.\" Copyright 1988 by the Massachusetts Institute of Technology
-.\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
-.\" specifies the terms and conditions for redistribution.
-.\"
-.TH ZSHUTDOWN_NOTIFY 8 "July 8, 1988" "MIT Project Athena"
-.ds ]W MIT Project Athena
-.SH NAME
-zshutdown_notify \- notify users of impending shutdown via Zephyr
-.SH SYNOPSIS
-.B zshutdown_notify
-.SH DESCRIPTION
-.I zshutdown_notify
-reads the standard input until EOF is reached, and then sends a Zephyr
-notice with the official hostname, the collected input, and a warning
-message as the message body of the notice.
-The notice is sent to class FILSRV, instance 
-.I <hostname>,
-recipient "*", where <hostname> is the official hostname of the sending host.
-.PP
-Any users who are using resources on the sending host are expected to
-subscribe to these messages so they will be warned of any impending
-shutdowns.
-.PP
-.I zshutdown_notify
-is usually invoked from within
-.I /etc/shutdown.
-.SH SEE ALSO
-attach(1), zephyr(1), zwgc(1), shutdown(8), zhm(8), zephyrd(8)
-.br
-Project Athena Technical Plan Section E.4.1, `Zephyr Notification
-Service'
-.SH AUTHOR
-.PP
-C. Anthony Della Fera (Digital Equipment Corporation-Project Athena)
-.sp
-.SH RESTRICTIONS
-Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
-All Rights Reserved.
-.br
-.I zephyr(1)
-specifies the terms and conditions for redistribution.
diff --git a/zephyr/clients/zshutdown_notify/zshutdown_notify.c b/zephyr/clients/zshutdown_notify/zshutdown_notify.c
deleted file mode 100644 (file)
index e9f9029..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains code for "zshutdown_notify", a utility called by
- * shutdown(8) to do Zephyr notification on shutdown.
- *
- *     Created by:     C. Anthony Della Fera
- *
- *     $Id: zshutdown_notify.c 2323 2009-03-22 05:27:07Z kcr $
- *
- *     Copyright (c) 1987, 1993 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <sysdep.h>
-#include <zephyr/mit-copyright.h>
-#include <zephyr/zephyr.h>
-
-#include <sys/socket.h>
-#include <netdb.h>
-
-#ifndef lint
-static const char rcsid_zshutdown_notify_c[] =
-    "$Id: zshutdown_notify.c 2323 2009-03-22 05:27:07Z kcr $";
-#endif
-
-#define N_KIND         UNSAFE
-#define N_CLASS                "FILSRV"
-#define N_OPCODE       "SHUTDOWN"
-#define N_DEF_FORMAT   "From $sender:\n@bold(Shutdown message from $1 at $time)\n@center(System going down, message is:)\n\n$2\n\n@center(@bold($3))"
-#define N_FIELD_CNT    3
-
-#ifdef HAVE_KRB4
-#define SVC_NAME       "rcmd"
-#endif
-
-/*
- * Standard warning strings appended as extra fields to
- * the message body.
- */
-
-static char warning[] = "Please detach any filesystems you may have\nattached from this host by typing detach -host %s";
-
-/*ARGSUSED*/
-int
-main(int argc,
-     char *argv[])
-{
-    ZNotice_t notice;
-    struct hostent *hp;
-    int retval;
-    char hostname[MAXHOSTNAMELEN];
-    char msgbuff[BUFSIZ], message[Z_MAXPKTLEN], *ptr;
-    char scratch[BUFSIZ];
-    char *msg[N_FIELD_CNT];
-#ifdef HAVE_KRB4
-    char tkt_filename[MAXPATHLEN];
-    char rlm[REALM_SZ];
-    char hn2[MAXHOSTNAMELEN];
-    char *cp;
-#endif
-
-    if (gethostname(hostname, MAXHOSTNAMELEN) < 0) {
-       com_err(argv[0], errno, "while finding hostname");
-       exit(1);
-    }
-
-    if ((hp = gethostbyname(hostname)) != NULL)
-           (void) strcpy(hostname, hp->h_name);
-
-    msg[0] = hostname;
-    msg[1] = message;
-    sprintf(scratch, warning, hostname);
-    msg[2] = scratch;
-
-#ifdef HAVE_KRB4
-    (void) sprintf(tkt_filename, "/tmp/tkt_zshut_%d", getpid());
-    krb_set_tkt_string(tkt_filename);
-
-    cp = krb_get_phost(hostname);
-    if (cp)
-       (void) strcpy(hn2, cp);
-    else {
-       fprintf(stderr, "%s: can't figure out canonical hostname\n",argv[0]);
-       exit(1);
-    }
-    retval = krb_get_lrealm(rlm, 1);
-    if (retval) {
-       fprintf(stderr, "%s: can't get local realm: %s\n",
-               argv[0], krb_get_err_text(retval));
-       exit(1);
-    }
-    retval = krb_get_svc_in_tkt(SVC_NAME, hn2, rlm,
-                               SERVER_SERVICE, SERVER_INSTANCE, 1,
-                               KEYFILE);
-    if (retval) {
-       fprintf(stderr, "%s: can't get tickets: %s\n",
-               argv[0], krb_get_err_text(retval));
-       exit(1);
-    }
-#endif
-
-    if ((retval = ZInitialize()) != ZERR_NONE) {
-       com_err(argv[0], retval, "while initializing");
-       exit(1);
-    } 
-
-    ptr = message;
-
-    for (;;) {
-       if (!fgets(msgbuff, sizeof(msgbuff), stdin))
-           break;
-       if ((strlen(msgbuff) + (ptr - message)) > Z_MAXPKTLEN){
-           break;
-       }
-       (void) strcpy(ptr, msgbuff);
-       ptr += strlen(ptr);
-    }
-
-    (void) memset((char *)&notice, 0, sizeof(notice));
-
-    notice.z_kind = N_KIND;
-    notice.z_port = 0;
-    notice.z_charset = ZCHARSET_UNKNOWN;
-    notice.z_class = N_CLASS;
-    notice.z_class_inst = hostname;
-    notice.z_opcode = N_OPCODE;
-    notice.z_sender = 0;
-    notice.z_message_len = 0;
-    notice.z_recipient = "";
-    notice.z_default_format = N_DEF_FORMAT;
-
-    retval = ZSendList(&notice, msg, N_FIELD_CNT, ZAUTH);
-#ifdef HAVE_KRB4
-    (void) dest_tkt();
-#endif
-
-    if (retval != ZERR_NONE) {
-       com_err(argv[0], retval, "while sending notice");
-       exit(1);
-    } 
-    return 0;
-}
diff --git a/zephyr/clients/zstat/Makefile.in b/zephyr/clients/zstat/Makefile.in
deleted file mode 100644 (file)
index 1ffdf1b..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-bindir=${exec_prefix}/bin
-top_builddir=../..
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=../..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-INSTALL=@INSTALL@
-
-LIBZEPHYR=${BUILDTOP}/lib/libzephyr.la
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -I${top_srcdir}/h -I${BUILDTOP}/h ${CPPFLAGS}
-LDFLAGS=@LDFLAGS@
-LIBS=${LIBZEPHYR} @LIBS@ -lcom_err
-
-OBJS=  zstat.o
-
-all: zstat
-
-zstat: ${OBJS} ${LIBZEPHYR}
-       ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install: zstat
-       ${LIBTOOL} --mode=install ${INSTALL} -m 755 zstat ${DESTDIR}${bindir}
-       ${INSTALL} -m 644 ${srcdir}/zstat.8 ${DESTDIR}${mandir}/man8
-
-clean:
-       ${LIBTOOL} --mode=clean rm -f zstat
-       rm -f ${OBJS}
-
-${OBJS}: zserver.h ${top_srcdir}/h/sysdep.h ${BUILDTOP}/h/config.h
-${OBJS}: ${BUILDTOP}/h/zephyr/zephyr.h ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/clients/zstat/zserver.h b/zephyr/clients/zstat/zserver.h
deleted file mode 100644 (file)
index 31f5d9c..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __ZSERVER_H__
-#define __ZSERVER_H__
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains declarations for use in the server.
- *
- *     Created by:     John T. Kohl
- *
- *     $Id: zserver.h 2091 2007-12-20 01:17:23Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#define        ADMIN_HELLO     "HELLO"         /* Opcode: hello, are you there */
-#define        ADMIN_IMHERE    "IHEARDYOU"     /* Opcode: yes, I am here */
-#define        ADMIN_SHUTDOWN  "GOODBYE"       /* Opcode: I am shutting down */
-#define ADMIN_BDUMP    "DUMP_AVAIL"    /* Opcode: I will give you a dump */
-#define        ADMIN_DONE      "DUMP_DONE"     /* Opcode: brain dump for this server
-                                          is complete */
-#define        ADMIN_NEWCLT    "NEXT_CLIENT"   /* Opcode: this is a new client */
-#define        ADMIN_LOST_CLT  "LOST_CLIENT"   /* Opcode: client not ack'ing */
-#define        ADMIN_KILL_CLT  "KILL_CLIENT"   /* Opcode: client is dead, remove */
-#define        ADMIN_STATUS    "STATUS"        /* Opcode: please send status */
-
-#endif /* !__ZSERVER_H__ */
diff --git a/zephyr/clients/zstat/zstat.8 b/zephyr/clients/zstat/zstat.8
deleted file mode 100644 (file)
index a2b7724..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-.\"    $Id: zstat.8 2091 2007-12-20 01:17:23Z kcr $
-.\"
-.\" Copyright 1987,1988 by the Massachusetts Institute of Technology
-.\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
-.\" specifies the terms and conditions for redistribution.
-.\"
-.\"
-.TH ZSTAT 8 "July 1, 1988" "MIT Project Athena"
-.ds ]W MIT Project Athena
-.SH NAME
-zstat \- display Zephyr statistics
-.SH SYNOPSIS
-.B zstat
-[
-.BI -h
-] [
-.BI -s
-] [
-.BI host \ ...
-]
-.SH DESCRIPTION
-.I Zstat
-is used to display statistics reported by a HostManager,
-.I zhm(8),
-or a Zephyr Server
-.I zephyrd(8),
-or both.
-.TP 12
-.B \-h
-is used to indicate that only HostManager statistics should be displayed.
-.TP
-.B \-s
-is used to indicate that only server statistics should be displayed.
-.TP
-If no hosts are specified, the current host is assumed.
-When both HostManager and server statistics are displayed,
-statistics from the current server for each host are displayed.
-.SH SEE ALSO
-zephyr(1), zhm(8), zephyrd(8)
-.br
-Project Athena Technical Plan Section E.4.1, `Zephyr Notification
-Service'
-.SH AUTHOR
-.PP
-David C. Jedlinsky (MIT-Project Athena)
-.SH RESTRICTIONS
-Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
-All Rights Reserved.
-.br
-.I zephyr(1)
-specifies the terms and conditions for redistribution.
diff --git a/zephyr/clients/zstat/zstat.c b/zephyr/clients/zstat/zstat.c
deleted file mode 100644 (file)
index 90af671..0000000
+++ /dev/null
@@ -1,317 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains the zstat program.
- *
- *      Created by:     David C. Jedlinsky
- *
- *      $Id: zstat.c 2323 2009-03-22 05:27:07Z kcr $
- *
- *      Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h". 
- */
-
-/* There should be library interfaces for the operations in zstat; for now,
- * however, zstat is more or less internal to the Zephyr system. */
-#include <internal.h>
-
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include "zserver.h"
-
-#if !defined(lint) && !defined(SABER)
-static const char rcsid_zstat_c[] = "$Id: zstat.c 2323 2009-03-22 05:27:07Z kcr $";
-#endif
-
-const char *hm_head[] = {
-    "Current server =",
-    "Items in queue:",
-    "Client packets received:",
-    "Server packets received:",
-    "Server changes:",
-    "Version:",
-    "Looking for a new server:",
-    "Time running:",
-    "Size:",
-    "Machine type:"
-};
-#define        HM_SIZE (sizeof(hm_head) / sizeof (char *))
-const char *srv_head[] = { 
-    "Current server version =",
-    "Packets handled:",
-    "Uptime:",
-    "Server states:",
-};
-#define        SRV_SIZE        (sizeof(srv_head) / sizeof (char *))
-
-int outoftime = 0;
-
-int serveronly = 0,hmonly = 0;
-u_short srv_port;
-
-void usage(char *);
-void do_stat(char *);
-int srv_stat(char *);
-int hm_stat(char *, char *);
-
-RETSIGTYPE
-timeout(int ignored)
-{
-       outoftime = 1;
-}
-
-int
-main(int argc,
-     char *argv[])
-{
-       Code_t ret;
-       char hostname[MAXHOSTNAMELEN];
-       int optchar;
-       struct servent *sp;
-       extern char *optarg;
-       extern int optind;
-
-       if ((ret = ZInitialize()) != ZERR_NONE) {
-               com_err("zstat", ret, "initializing");
-               exit(-1);
-       }
-
-       if ((ret = ZOpenPort((u_short *)0)) != ZERR_NONE) {
-               com_err("zstat", ret, "opening port");
-               exit(-1);
-       }
-
-       while ((optchar = getopt(argc, argv, "sh")) != EOF) {
-               switch(optchar) {
-               case 's':
-                       serveronly++;
-                       break;
-               case 'h':
-                       hmonly++;
-                       break;
-               case '?':
-               default:
-                       usage(argv[0]);
-                       exit(1);
-               }
-       }
-
-       if (serveronly && hmonly) {
-               fprintf(stderr,"Only one of -s and -h may be specified\n");
-               exit(1);
-       }
-
-       sp = getservbyname(SERVER_SVCNAME,"udp");
-       srv_port = (sp) ? sp->s_port : SERVER_SVC_FALLBACK;
-
-       if (optind == argc) {
-               if (gethostname(hostname, MAXHOSTNAMELEN) < 0) {
-                       com_err("zstat",errno,"while finding hostname");
-                       exit(-1);
-               }
-               do_stat(hostname);
-               exit(0);
-       }
-
-       for (;optind<argc;optind++)
-               do_stat(argv[optind]);
-
-       exit(0);
-}
-
-void
-do_stat(char *host)
-{
-       char srv_host[MAXHOSTNAMELEN];
-       
-       if (serveronly) {
-               (void) srv_stat(host);
-               return;
-       }
-
-       if (hm_stat(host,srv_host))
-               return;
-
-       if (!hmonly)
-               (void) srv_stat(srv_host);
-}
-
-int
-hm_stat(char *host,
-       char *server)
-{
-       struct in_addr inaddr;
-       Code_t code;
-
-       char *line[20],*mp;
-       int i,nf;
-       struct hostent *hp;
-       time_t runtime;
-       struct tm *tim;
-       ZNotice_t notice;
-       
-       if ((inaddr.s_addr = inet_addr(host)) == (unsigned)(-1)) {
-           if ((hp = gethostbyname(host)) == NULL) {
-               fprintf(stderr,"Unknown host: %s\n",host);
-               exit(-1);
-           }
-           (void) memcpy((char *) &inaddr, hp->h_addr, hp->h_length);
-
-           printf("Hostmanager stats: %s\n", hp->h_name);
-       } else {
-           printf("Hostmanager stats: %s\n", host);
-       }
-       
-       if ((code = ZhmStat(&inaddr, &notice)) != ZERR_NONE) {
-           com_err("zstat", code, "getting hostmanager status");
-           exit(-1);
-       }
-       
-       mp = notice.z_message;
-       for (nf=0;mp<notice.z_message+notice.z_message_len;nf++) {
-               line[nf] = mp;
-               mp += strlen(mp)+1;
-       }
-
-       (void) strcpy(server,line[0]);
-
-       printf("HostManager protocol version = %s\n",notice.z_version);
-
-       for (i=0; (i < nf) && (i < HM_SIZE); i++) {
-               if (!strncmp("Time",hm_head[i],4)) {
-                       runtime = atol(line[i]);
-                       tim = gmtime(&runtime);
-                       printf("%s %d days, %02d:%02d:%02d\n", hm_head[i],
-                               tim->tm_yday,
-                               tim->tm_hour,
-                               tim->tm_min,
-                               tim->tm_sec);
-               }
-               else
-                       printf("%s %s\n",hm_head[i],line[i]);
-       }
-
-       printf("\n");
-       
-       ZFreeNotice(&notice);
-       return(0);
-}
-
-int
-srv_stat(char *host)
-{
-       char *line[20],*mp;
-       int sock,i,nf,ret;
-       struct hostent *hp;
-       struct sockaddr_in sin;
-       ZNotice_t notice;
-       time_t runtime;
-       struct tm *tim;
-#ifdef _POSIX_VERSION
-       struct sigaction sa;
-#endif
-               
-       (void) memset((char *) &sin, 0, sizeof(struct sockaddr_in));
-
-       sin.sin_port = srv_port;
-
-       if ((sock = socket(PF_INET, SOCK_DGRAM, 0)) < 0) {
-               perror("socket:");
-               exit(-1);
-       }
-       
-       sin.sin_family = AF_INET;
-
-       if ((sin.sin_addr.s_addr = inet_addr(host)) == (unsigned)(-1)) {
-           if ((hp = gethostbyname(host)) == NULL) {
-               fprintf(stderr,"Unknown host: %s\n",host);
-               exit(-1);
-           }
-           (void) memcpy((char *) &sin.sin_addr, hp->h_addr, hp->h_length);
-
-           printf("Server stats: %s\n", hp->h_name);
-       } else {
-           printf("Server stats: %s\n", host);
-       }
-       
-       (void) memset((char *)&notice, 0, sizeof(notice));
-       notice.z_kind = UNSAFE;
-       notice.z_port = 0;
-       notice.z_charset = ZCHARSET_UNKNOWN;
-       notice.z_class = ZEPHYR_ADMIN_CLASS;
-       notice.z_class_inst = "";
-       notice.z_opcode = ADMIN_STATUS;
-       notice.z_sender = "";
-       notice.z_recipient = "";
-       notice.z_default_format = "";
-       notice.z_message_len = 0;
-       
-       if ((ret = ZSetDestAddr(&sin)) != ZERR_NONE) {
-               com_err("zstat", ret, "setting destination");
-               exit(-1);
-       }
-       if ((ret = ZSendNotice(&notice, ZNOAUTH)) != ZERR_NONE) {
-               com_err("zstat", ret, "sending notice");
-               exit(-1);
-       }
-
-#ifdef _POSIX_VERSION
-       sigemptyset(&sa.sa_mask);
-       sa.sa_flags = 0;
-       sa.sa_handler = timeout;
-       (void) sigaction(SIGALRM, &sa, (struct sigaction *)0);
-#else
-       (void) signal(SIGALRM,timeout);
-#endif
-       outoftime = 0;
-       (void) alarm(10);
-       if (((ret = ZReceiveNotice(&notice, (struct sockaddr_in *) 0))
-           != ZERR_NONE) &&
-           ret != EINTR) {
-               com_err("zstat", ret, "receiving notice");
-               return (1);
-       }
-       (void) alarm(0);
-       if (outoftime) {
-               fprintf(stderr,"No response after 10 seconds.\n");
-               return (1);
-       } 
-       
-       mp = notice.z_message;
-       for (nf=0;mp<notice.z_message+notice.z_message_len;nf++) {
-               line[nf] = mp;
-               mp += strlen(mp)+1;
-       }
-
-       printf("Server protocol version = %s\n",notice.z_version);
-       
-       for (i=0; i < nf; i++) {
-               if (i < 2)
-                       printf("%s %s\n",srv_head[i],line[i]);
-               else if (i == 2) { /* uptime field */
-                       runtime = atol(line[i]);
-                       tim = gmtime(&runtime);
-                       printf("%s %d days, %02d:%02d:%02d\n",
-                              srv_head[i],
-                              tim->tm_yday,
-                              tim->tm_hour,
-                              tim->tm_min,
-                              tim->tm_sec);
-               } else if (i == 3) {
-                       printf("%s\n",srv_head[i]);
-                       printf("%s\n",line[i]);
-               } else printf("%s\n",line[i]);
-       }
-       printf("\n");
-       
-       (void) close(sock);
-       ZFreeNotice(&notice);
-       return(0);
-}
-
-void
-usage(char *s)
-{
-       fprintf(stderr,"usage: %s [-s] [-h] [host ...]\n",s);
-       exit(1);
-}
diff --git a/zephyr/clients/zwrite/Makefile.in b/zephyr/clients/zwrite/Makefile.in
deleted file mode 100644 (file)
index 62f656d..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-bindir=${exec_prefix}/bin
-top_builddir=../..
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=../..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-INSTALL=@INSTALL@
-
-LIBZEPHYR=${BUILDTOP}/lib/libzephyr.la
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -I${top_srcdir}/h -I${BUILDTOP}/h ${CPPFLAGS}
-LDFLAGS=@LDFLAGS@
-LIBS=${LIBZEPHYR} @LIBS@ -lcom_err
-
-OBJS=  zwrite.o
-
-all: zwrite
-
-zwrite: ${OBJS} ${LIBZEPHYR}
-       ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install: zwrite
-       ${LIBTOOL} --mode=install ${INSTALL} -m 755 zwrite ${DESTDIR}${bindir}
-       ${INSTALL} -m 644 ${srcdir}/zwrite.1 ${DESTDIR}${mandir}/man1
-
-clean:
-       ${LIBTOOL} --mode=clean rm -f zwrite
-       rm -f ${OBJS}
-
-${OBJS}: ${top_srcdir}/h/sysdep.h ${BUILDTOP}/h/config.h
-${OBJS}: ${BUILDTOP}/h/zephyr/zephyr.h ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/clients/zwrite/zwrite.1 b/zephyr/clients/zwrite/zwrite.1
deleted file mode 100644 (file)
index fc3ee03..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-.\"    $Id: zwrite.1 2091 2007-12-20 01:17:23Z kcr $
-.\"
-.\" Copyright 1987,1988 by the Massachusetts Institute of Technology
-.\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
-.\" specifies the terms and conditions for redistribution.
-.\"
-.\"
-.TH ZWRITE 1 "October 26, 1989" "MIT Project Athena"
-.ds ]W MIT Project Athena
-.SH NAME
-zwrite \- write to another user via Zephyr
-.SH SYNOPSIS
-.B zwrite
-[
-.BI -a
-] [
-.BI -d
-] [
-.BI -v
-] [
-.BI -q
-] [
-.BI -t
-] [
-.BI -u
-] [
-.BI -o
-] [
-.BI -n
-] [
-.BI -l
-] [
-.BI -C
-] [
-.BI -O
-opcode ] [
-.BI -s
-signature ] [
-.BI -c
-class ] [
-.BI -i
-instance ] [
-.BI -r
-realm ] [
-.BI -f
-arg ] [
-.BI user \ ...
-] [
-.BI -m
-.BI message
-]
-.SH DESCRIPTION
-.I Zwrite
-sends a message from you to another user through the
-.I zephyr(1)
-notification service.  The user must have subscribed to messages of
-the appropriate class and instance using the
-.I zctl(1)
-program.
-.PP
-.I Zwrite
-understands the following options.
-.TP 12
-.B \-a
-Causes
-.I zwrite
-to send the message authenticated, using
-.I Kerberos
-to perform the authentication.  This is the default.
-.TP
-.B \-d
-Causes
-.I zwrite
-to send the message unauthenticated.
-.TP
-.B \-v
-Causes
-.I zwrite
-to print what type of message it is sending, and whether or not it was
-successful.
-.TP
-.B \-q
-Forces
-.I zwrite
-to suppress information about whether or not the message was sent.
-.TP
-.B \-t
-Prevents
-.I zwrite
-from expanding tabs in the message into appropriate spaces.  Normally
-.I zwrite
-will expand any tabs it finds into the appropriate number of spaces to
-maintain separation based on 8-character tab stops.
-.TP
-.B \-l
-Causes
-.I zwrite
-to ignore `.' on a line by itself in the input and only end a typed
-message when the user types the end-of-file character (usually
-control-D).  When the input is not a terminal, this is the default action.
-.TP
-.B \-u
-Sends an urgent message.  This changes the
-.I zephyr
-instance of the message to ``URGENT''.
-.TP
-.B \-o
-Causes
-.I zwrite
-to ignore the Zephyr variables 
-.IR zwrite-class ,
-.IR zwrite-inst ,
-and
-.I zwrite-opcode
-when picking a default class, instance, and opcode.
-.TP
-.B \-n
-prevents
-.I zwrite
-from sending a PING message to verify the recipient is subscribing to
-messages.  By default,
-.I zwrite
-will send a notice to the destination class, instance, and recipient,
-with opcode ``PING'' before sending the message.  If the PING is sent,
-and the server response indicates there are no recipients subscribed to
-your message,
-.I zwrite
-exits without sending a message.
-When the
-.B \-m
-option is used, no PING is sent.
-.TP
-.B \-C
-prepends a "CC:" line to the body of the message indicating the
-recipients of the message. This is strictly a convenience: the
-presence of a "CC:" line at the top of a zephyr body does not
-necessarily indicate that this option was used, or that the message
-really was sent to the listed users, and its lack doesn't indicate
-that the message was not sent to multiple users.
-.TP
-.B \-s \fIsignature\fR
-sets the signature to be included in the message.  This overrides both
-the user's name (as found in the password file) and any
-setting of the Zephyr variable 
-.IR zwrite-signature .
-.I signature
-must
-be a single argument, hence when using a shell it should be quoted with
-double quotes.  A
-.I signature
-argument of "" leaves the signature in
-the message empty.
-.TP
-.B \-c \fIclass\fR
-Allows a user to specify a different class for the message.  This allows
-a message to be sent to a large group of people with some degree of
-security.  See
-.I zephyr(1)
-and
-.I zephyrd(8)
-for a description of how to restrict access to classes.  When this option
-is specified, the message is sent to recipient "*" unless an additional
-list of recipients is specified.
-.br
-This argument may not be used in conjunction with the -f option.
-.TP
-.B \-i \fIinstance\fR
-Allows a user to specify a different instance than the default.
-When this option is used, the message is sent to recipient "*" unless an
-additional list of recipients is specified.  This allows a message to be
-sent to a large group of people (e.g. a development group) just by having
-the members subscribe to messages of class "MESSAGE", the specified instance,
-and recipient "*".
-.br
-This argument may not be used in conjunction with the -f option.
-.TP
-.B \-r \fIrealm\fR
-Allows a user to specify a different realm for the message, if the
-server supports interrealm Zephyr.
-.TP
-.B \-F \fIformat\fR
-Allows a user to specify a different default format for the message.
-.TP
-.B \-O \fIopcode\fR
-Allows a user to specify a different opcode for the message.
-Some Zephyr notice display programs may use the opcode to decide how
-to display a notice.
-.TP
-.B \-f \fIarg\fR
-Allows a user to specify an argument to be interpreted as a filesystem
-specification.  The class is set to 
-.BR FILSRV .
-he instance is set
-to
-.I arg
-as modified:
-If
-.I arg
-contains no colons (`:'), it is assumed to
-be a host name, and it is converted into an official host name via 
-.I gethostbyname(3).
-If
-.I arg
-contains a colon, the portion preceding the colon is
-treated as a host name, and the colon and any trailing characters are
-appended to the offical host name returned by
-.I gethostbyname.
-If the name fails to resolve into an official host name, the instance is
-set to
-.I arg
-unmodified.
-.br
-This option may not be used in conjunction with the -c or -i option.
-.TP
-.B \-m
-.I Zwrite
-sends the remaining arguments on the command line as the message.
-.PP
-If the
-.I \-m
-option is not specified, the user is prompted for the message to be
-sent.  The message may be terminated by typing ^D or ``.'' on a line
-by itself.
-.PP
-The default class for messages is ``MESSAGE'', the default instance
-is ``PERSONAL'', andthe default opcode is ``'' (an empty string).
-These defaults can be overridden by setting the Zephyr
-variables
-.IR zwrite-class ,
-.IR zwrite-inst ,
-and
-.IR zwrite-opcode ,
-respectively.
-Command-line options can override the defaults.
-.PP
-If the class is ``MESSAGE'' and the instance is either ``PERSONAL'' or
-``URGENT'', a recipient must be specified.  These comparisons are
-case-sensitive.
-.PP
-Unless the
-.B \-s
-option is used, the contents of the Zephyr variable
-.I zwrite-signature
-are used to augment the user's username in the
-message.  If
-.I zwrite-signature
-is not set and the
-.B \-s
-option is not specified, the user's full name (as specified in the
-password file) is used instead.
-.SH BUGS
-Tab expansion should really be done by the receiver of the message.
-.br
-The \-u option is provided for compatibility with old versions of
-.I zwrite
-and is not necessarily useful for sending messages to users who do not
-have old subscription files.
-.SH SEE ALSO
-kerberosintro(1), zctl(1), zephyr(1), zwgc(1), zhm(8), zephyrd(8),
-gethostbyname(3)
-.br
-Project Athena Technical Plan Section E.4.1, `Zephyr Notification
-Service'
-.SH FILES
-/etc/passwd
-.br
-$ZEPHYR_VARS or $HOME/.zephyr.vars
-.SH AUTHOR
-.PP
-.br
-Robert S. French (MIT-Project Athena)
-.SH RESTRICTIONS
-Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
-All Rights Reserved.
-.br
-.I zephyr(1)
-specifies the terms and conditions for redistribution.
diff --git a/zephyr/clients/zwrite/zwrite.c b/zephyr/clients/zwrite/zwrite.c
deleted file mode 100644 (file)
index 9b794df..0000000
+++ /dev/null
@@ -1,566 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains code for the "zwrite" command.
- *
- *     Created by:     Robert French
- *
- *     $Id: zwrite.c 2294 2009-03-15 18:39:20Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <sysdep.h>
-#include <zephyr/mit-copyright.h>
-#include <zephyr/zephyr.h>
-#include <netdb.h>
-#include <pwd.h>
-
-#ifndef lint
-static const char rcsid_zwrite_c[] = "$Id: zwrite.c 2294 2009-03-15 18:39:20Z kcr $";
-#endif /* lint */
-
-#define DEFAULT_CLASS "MESSAGE"
-#define DEFAULT_INSTANCE "PERSONAL"
-#define URGENT_INSTANCE "URGENT"
-#define DEFAULT_OPCODE ""
-#define FILSRV_CLASS "FILSRV"
-
-#define MAXRECIPS 100
-
-int nrecips, msgarg, verbose, quiet, nodot, cc;
-char *whoami, *inst, *class, *opcode, *realm, *recips[MAXRECIPS];
-Z_AuthProc auth;
-void un_tabify(char **, int *);
-
-char *fix_filsrv_inst(char *);
-void usage(char *);
-void send_off(ZNotice_t *, int);
-
-int
-main(int argc, char *argv[])
-{
-    int retval, arg, nocheck, nchars, msgsize, filsys, tabexpand;
-    char *message, *signature = NULL, *format = NULL;
-    static char bfr[BUFSIZ], classbfr[BUFSIZ], instbfr[BUFSIZ], sigbfr[BUFSIZ];
-    static char opbfr[BUFSIZ];
-    static ZNotice_t notice;
-    char *charset = NULL;
-
-    whoami = argv[0];
-
-    if ((retval = ZInitialize()) != ZERR_NONE) {
-       com_err(whoami, retval, "while initializing");
-       exit(1);
-    }
-
-    if (argc < 2)
-       usage(whoami);
-
-    auth = ZAUTH;
-    verbose = quiet = msgarg = nrecips = nocheck = filsys = nodot = 0;
-    tabexpand = 1;
-
-    class = ZGetVariable("zwrite-class");
-    if (class) {
-       (void) strcpy(classbfr, class);
-       class = classbfr;
-    }
-    else
-       class = DEFAULT_CLASS;
-    inst = ZGetVariable("zwrite-inst");
-    if (inst) {
-       (void) strcpy(instbfr, inst);
-       inst = instbfr;
-    }
-    else
-       inst = DEFAULT_INSTANCE;
-
-    opcode = ZGetVariable("zwrite-opcode");
-    if (opcode)
-      opcode = strcpy(opbfr, opcode);
-    else
-      opcode = DEFAULT_OPCODE;
-
-      signature = ZGetVariable("zwrite-signature");
-    if (signature) {
-       (void) strcpy(sigbfr, signature);
-       signature = sigbfr;
-    } 
-       
-    arg = 1;
-       
-    for (;arg<argc && !msgarg; arg++) {
-       if (*argv[arg] != '-') {
-           recips[nrecips++] = argv[arg];
-           continue;
-       } 
-       if (strlen(argv[arg]) > 2)
-           usage(whoami);
-       switch (argv[arg][1]) {
-       case 'a':               /* Backwards compatibility */
-           auth = ZAUTH;
-           break;
-       case 'o':
-           class = DEFAULT_CLASS;
-           inst = DEFAULT_INSTANCE;
-           opcode = DEFAULT_OPCODE;
-           break;
-       case 'd':
-           auth = ZNOAUTH;
-           break;
-       case 'v':
-           verbose = 1;
-           break;
-       case 'q':
-           quiet = 1;
-           break;
-       case 'n':
-           nocheck = 1;
-           break;
-       case 't':
-           tabexpand = 0;
-           break;
-       case 'u':
-           inst = URGENT_INSTANCE;
-           break;
-       case 'O':
-           if (arg == argc-1)
-             usage(whoami);
-           arg++;
-           opcode = argv[arg];
-           break;
-       case 'i':
-           if (arg == argc-1 || filsys == 1)
-               usage(whoami);
-           arg++;
-           inst = argv[arg];
-           filsys = -1;
-           break;
-       case 'c':
-           if (arg == argc-1 || filsys == 1)
-               usage(whoami);
-           arg++;
-           class = argv[arg];
-           filsys = -1;
-           break;
-       case 'f':
-           if (arg == argc-1 || filsys == -1)
-               usage(whoami);
-           arg++;
-           class = FILSRV_CLASS;
-           inst = fix_filsrv_inst(argv[arg]);
-           filsys = 1;
-           nocheck = 1;                /* implied -n (no ping) */
-           break;
-       case 's':
-           if (arg == argc-1)
-               usage(whoami);
-           arg++;
-           signature = argv[arg];
-           break;
-       case 'm':
-           if (arg == argc-1)
-               usage(whoami);
-           nocheck = 1;                /* implied -n (no ping) */
-           msgarg = arg+1;
-           break;
-       case 'l':                       /* literal */
-           nodot = 1;
-           break;
-       case 'F':
-           if (arg == argc-1)
-               usage(whoami);
-           arg++;
-           format = argv[arg];
-           break;
-       case 'r':
-           if (arg == argc-1)
-               usage(whoami);
-           arg++;
-           realm = argv[arg];
-           break;
-       case 'C':
-           cc = 1;
-           break;
-       case 'x':
-           if (arg == argc-1)
-               usage(whoami);
-           arg++;
-           charset = argv[arg];
-           break;
-       default:
-           usage(whoami);
-       }
-    }
-
-    if (!nrecips && !(strcmp(class, DEFAULT_CLASS) ||
-                     (strcmp(inst, DEFAULT_INSTANCE) &&
-                      strcmp(inst, URGENT_INSTANCE)))) {
-       /* must specify recipient if using default class and
-          (default instance or urgent instance) */
-       fprintf(stderr, "No recipients specified.\n");
-       usage(whoami);
-    }
-
-    if (!signature) {
-       /* try to find name in the password file */
-       register struct passwd *pwd;
-       register char *cp = sigbfr;
-       register char *cp2, *pp;
-
-       pwd = getpwuid(getuid());
-       if (pwd) {
-           cp2 = pwd->pw_gecos;
-           for (; *cp2 && *cp2 != ',' ; cp2++) {
-               if (*cp2 == '&') {
-                   pp = pwd->pw_name;
-                   *cp++ = islower(*pp) ? toupper(*pp) : *pp;
-                   pp++;
-                   while (*pp)
-                       *cp++ = *pp++;
-               } else
-                   *cp++ = *cp2;
-           }
-           signature = sigbfr;
-       }
-    }  
-
-    notice.z_kind = ACKED;
-    notice.z_port = 0;
-    notice.z_class = class;
-    notice.z_class_inst = inst;
-    notice.z_opcode = "PING";
-    notice.z_sender = 0;
-    notice.z_message_len = 0;
-    notice.z_recipient = "";
-    notice.z_charset = ZGetCharset(charset);
-    if (format)
-           notice.z_default_format = format;
-    else if (filsys == 1)
-           notice.z_default_format = "@bold(Filesystem Operation Message for $instance:)\nFrom: @bold($sender) at $time $date\n$message";
-    else if (auth == ZAUTH) {
-       if (signature)
-           notice.z_default_format = "Class $class, Instance $instance:\nTo: @bold($recipient) at $time $date\nFrom: @bold($1) <$sender>\n\n$2";
-       else
-           notice.z_default_format = "Class $class, Instance $instance:\nTo: @bold($recipient) at $time $date\n$message";
-    } else {
-       if (signature)
-           notice.z_default_format = "@bold(UNAUTHENTIC) Class $class, Instance $instance at $time $date:\nFrom: @bold($1) <$sender>\n\n$2";
-       else
-           notice.z_default_format = "@bold(UNAUTHENTIC) Class $class, Instance $instance at $time $date:\n$message";
-    }
-    if (!nocheck && nrecips)
-       send_off(&notice, 0);
-       
-    if (!msgarg && isatty(0)) {
-       if (nodot)
-           printf("Type your message now.  End with the end-of-file character.\n");
-       else
-           printf("Type your message now.  End with control-D or a dot on a line by itself.\n");
-    }
-       
-    message = NULL;
-    msgsize = 0;
-    if (signature) {
-       message = malloc((unsigned)(strlen(signature)+2));
-       (void) strcpy(message, signature);
-       msgsize = strlen(message);
-       message[msgsize++] = '\0';
-    } else {
-       message = malloc(1);
-       message[msgsize++] = '\0';
-    }
-
-    if (cc && nrecips > 1) {
-        int size = msgsize;
-       for (arg=0;arg<nrecips;arg++)
-           size += (strlen(recips[arg]) + 2);
-       size += 6;                      /* for the newlines and "cc: " */
-       message = realloc(message, (unsigned) size);
-       (void) strcpy(message+msgsize, "CC: ");
-       msgsize += 4;
-       for (arg=0;arg<nrecips;arg++) {
-           (void) strcpy(message+msgsize, recips[arg]);
-           msgsize += strlen(recips[arg]);
-           if (arg != nrecips-1) {
-               message[msgsize] = ' ';
-               msgsize++;
-           }
-       }
-       message[msgsize] = '\n';
-       msgsize += 1;
-    }
-
-    if (msgarg) {
-       int size = msgsize;
-       for (arg=msgarg;arg<argc;arg++)
-               size += (strlen(argv[arg]) + 1);
-       size++;                         /* for the newline */
-       message = realloc(message, (unsigned) size);
-       for (arg=msgarg;arg<argc;arg++) {
-           (void) strcpy(message+msgsize, argv[arg]);
-           msgsize += strlen(argv[arg]);
-           if (arg != argc-1) {
-               message[msgsize] = ' ';
-               msgsize++;
-           } 
-       }
-       message[msgsize] = '\n';
-       msgsize += 1;
-    } else {
-       if (isatty(0)) {
-           for (;;) {
-               unsigned int l;
-               if (!fgets(bfr, sizeof bfr, stdin))
-                   break;
-               if (!nodot && bfr[0] == '.' &&
-                   (bfr[1] == '\n' || bfr[1] == '\0'))
-                   break;
-               l = strlen(bfr);
-               message = realloc(message, msgsize+l+1);
-               (void) strcpy(message+msgsize, bfr);
-               msgsize += l;
-           }
-           message = realloc(message, (unsigned)(msgsize+1));
-       }
-       else {  /* Use read so you can send binary messages... */
-           while ((nchars = read(fileno(stdin), bfr, sizeof bfr))) {
-               if (nchars == -1) {
-                   fprintf(stderr, "Read error from stdin!  Can't continue!\n");
-                   exit(1);
-               }
-               message = realloc(message, (unsigned)(msgsize+nchars));
-               (void) memcpy(message+msgsize, bfr, nchars);
-               msgsize += nchars;
-           }
-           /* end of msg */
-           message = realloc(message, (unsigned)(msgsize+1));
-       } 
-    }
-
-    notice.z_opcode = opcode;
-    if (tabexpand)
-       un_tabify(&message, &msgsize);
-    notice.z_message = message;
-    notice.z_message_len = msgsize;
-
-    send_off(&notice, 1);
-    exit(0);
-}
-
-void
-send_off(ZNotice_t *notice, int real)
-{
-    int i, success, retval;
-    char bfr[BUFSIZ], realm_recip[BUFSIZ], dest[3 * BUFSIZ];
-    ZNotice_t retnotice;
-
-    success = 0;
-       
-    for (i=0;i<nrecips || i==0;i++) {
-       if (realm) {
-           sprintf(realm_recip, "%s@%s", (nrecips) ? recips[i] : "", realm);
-           notice->z_recipient = realm_recip;
-       } else {
-           notice->z_recipient = (nrecips) ? recips[i] : "";
-       }
-       if (nrecips)
-           strcpy(dest, recips[i]);
-       else if (!strcmp(class, DEFAULT_CLASS))
-           sprintf(dest, "instance \"%s\"", inst);
-       else if (!strcmp(inst, DEFAULT_INSTANCE))
-           sprintf(dest, "class \"%s\"", class);
-       else
-           sprintf(dest, "class \"%s\", instance \"%s\"", class, inst);
-       if (verbose && real)
-           printf("Sending %smessage, class %s, instance %s, to %s\n", 
-                  auth?"authenticated ":"", 
-                  class, inst, 
-                  nrecips?notice->z_recipient:"everyone");
-       if ((retval = ZSendNotice(notice, auth)) != ZERR_NONE) {
-           (void) sprintf(bfr, "while sending notice to %s", dest);
-           com_err(whoami, retval, bfr);
-           break;
-       }
-       if (real && !quiet) {
-           if (verbose)
-               printf("Queued... ");
-           else
-               printf("Message queued for %s... ", dest);
-           fflush(stdout);
-       }
-       if ((retval = ZIfNotice(&retnotice, (struct sockaddr_in *) 0,
-                               ZCompareUIDPred, 
-                               (char *)&notice->z_uid)) !=
-           ZERR_NONE) {
-           ZFreeNotice(&retnotice);
-           (void) sprintf(bfr, "while waiting for acknowledgement for %s", 
-                   dest);
-           com_err(whoami, retval, bfr);
-           continue;
-       }
-       if (retnotice.z_kind == SERVNAK) {
-           if (!quiet) {
-               printf("Received authorization failure while sending to %s\n", 
-                      dest);
-           }
-           ZFreeNotice(&retnotice);
-           break;                      /* if auth fails, punt */
-       } 
-       if (retnotice.z_kind != SERVACK || !retnotice.z_message_len) {
-           if (!quiet) {
-               printf("Detected server failure while receiving acknowledgement for %s\n", 
-                      dest);
-           }
-           ZFreeNotice(&retnotice);
-           continue;
-       }
-       if (!strcmp(retnotice.z_message, ZSRVACK_SENT)) {
-           success = 1;
-           if (real && !quiet)
-               printf("sent\n");
-       } else if (!strcmp(retnotice.z_message, ZSRVACK_NOTSENT)) {
-           if (verbose && real && !quiet) {
-               if (strcmp(class, DEFAULT_CLASS)) {
-                   fprintf(stderr, "Not logged in or not subscribing to class %s, instance %s\n", 
-                          class, inst);
-               } else {
-                   fprintf(stderr,
-                           "Not logged in or not subscribing to messages\n");
-               }
-           } 
-           else if (!quiet) {
-               if (!nrecips) {
-                   fprintf(stderr,
-                           "No one subscribing to class %s, instance %s\n", 
-                           class, inst);
-               } else {
-                   if (strcmp(class, DEFAULT_CLASS)) {
-                       fprintf(stderr, "%s: Not logged in or not subscribing to class %s, instance %s\n", 
-                              notice->z_recipient, class, inst);
-                   } else {
-                       fprintf(stderr, "%s: Not logged in or not subscribing to messages\n", 
-                              notice->z_recipient);
-                   }
-               }
-           }
-       } 
-       else
-           printf("Internal failure - illegal message field in server response\n");
-       ZFreeNotice(&retnotice);
-    }
-    if (!success)
-       exit(1);
-} 
-
-void
-usage(char *s)
-{
-    fprintf(stderr,
-           "Usage: %s [-a] [-o] [-d] [-v] [-q] [-n] [-t] [-u] [-l]\n\
-\t[-c class] [-i inst] [-O opcode] [-f fsname] [-s signature] [-C]\n\
-\t[user ...] [-F format] [-r realm] [-x charset] [-m message]\n", s);
-    fprintf(stderr,"\t-f and -c are mutually exclusive\n\
-\t-f and -i are mutually exclusive\n\
-\trecipients must be specified unless -c or -f specifies a class\n\
-\tother than the default class or -i or -f specifies an instance\n\
-\tother than the default or urgent instance\n");
-    exit(1);
-} 
-
-/*
-  if the -f option is specified, this routine is called to canonicalize
-  an instance of the form hostname[:pack].  It turns the hostname into the
-  name returned by gethostbyname(hostname)
- */
-
-char *
-fix_filsrv_inst(char *str)
-{
-       static char fsinst[BUFSIZ];
-       char *ptr;
-       struct hostent *hp;
-
-       ptr = strchr(str,':');
-       if (ptr)
-               *ptr = '\0';
-       
-       hp = gethostbyname(str);
-       if (!hp) {
-               if (ptr)
-                       *ptr = ':';
-               return(str);
-       }
-       (void) strcpy(fsinst, hp->h_name);
-       if (ptr) {
-               (void) strcat(fsinst, ":");
-               ptr++;
-               (void) strcat(fsinst, ptr);
-       }
-       return(fsinst);
-}
-
-/* convert tabs in the buffer into appropriate # of spaces.
-   slightly tricky since the buffer can have NUL's in it. */
-
-#ifndef TABSTOP
-#define        TABSTOP 8                       /* #chars between tabstops */
-#endif /* ! TABSTOP */
-
-void
-un_tabify(char **bufp,
-         int *sizep)
-{
-    register char *cp, *cp2;
-    char *cp3;
-    register int i;
-    register int column;               /* column of next character */
-    register int size = *sizep;
-
-    for (cp = *bufp, i = 0; size; size--, cp++)
-       if (*cp == '\t')
-           i++;                        /* count tabs in buffer */
-
-    if (!i)
-       return;                         /* no tabs == no work */
-
-    /* To avoid allocation churning, allocate enough extra space to convert
-       every tab into TABSTOP spaces */
-    /* only add (TABSTOP-1)x because we re-use the cell holding the
-       tab itself */
-    cp = malloc((unsigned)(*sizep + (i * (TABSTOP-1))));
-    if (!cp)                           /* XXX */
-       return;                         /* punt expanding if memory fails */
-    cp3 = cp;
-    /* Copy buffer, converting tabs to spaces as we go */
-    for (cp2 = *bufp, column = 1, size = *sizep; size; cp2++, size--) {
-       switch (*cp2) {
-       case '\n':
-       case '\0':
-           /* newline or null: reset column */
-           column = 1;
-           *cp++ = *cp2;               /* copy the newline */
-           break;
-       default:
-           /* copy the character */
-           *cp = *cp2;
-           cp++;
-           column++;
-           break;
-       case '\t':
-           /* it's a tab, compute how many spaces to expand into. */
-           i = TABSTOP - ((column - 1) % TABSTOP);
-           for (; i > 0; i--) {
-               *cp++ = ' ';            /* fill in the spaces */
-               column++;
-               (*sizep)++;             /* increment the size */
-           }
-           (*sizep)--;                 /* remove one (we replaced the tab) */
-           break;
-       }
-    }
-    free(*bufp);                       /* free the old buf */
-    *bufp = cp3;
-    return;
-}
diff --git a/zephyr/config.do b/zephyr/config.do
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/zephyr/config.guess b/zephyr/config.guess
deleted file mode 100755 (executable)
index f32079a..0000000
+++ /dev/null
@@ -1,1526 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-#   Free Software Foundation, Inc.
-
-timestamp='2008-01-23'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
-    --version | -v )
-       echo "$version" ; exit ;;
-    --help | --h* | -h )
-       echo "$usage"; exit ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )        # Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help" >&2
-       exit 1 ;;
-    * )
-       break ;;
-  esac
-done
-
-if test $# != 0; then
-  echo "$me: too many arguments$help" >&2
-  exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
-       for c in cc gcc c89 c99 ; do
-         if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
-            CC_FOR_BUILD="$c"; break ;
-         fi ;
-       done ;
-       if test x"$CC_FOR_BUILD" = x ; then
-         CC_FOR_BUILD=no_compiler_found ;
-       fi
-       ;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-       PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-       # NetBSD (nbsd) targets should (where applicable) match one or
-       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-       # switched to ELF, *-*-netbsd* would select the old
-       # object file format.  This provides both forward
-       # compatibility and a consistent mechanism for selecting the
-       # object file format.
-       #
-       # Note: NetBSD doesn't particularly care about the vendor
-       # portion of the name.  We always set it to "unknown".
-       sysctl="sysctl -n hw.machine_arch"
-       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-       case "${UNAME_MACHINE_ARCH}" in
-           armeb) machine=armeb-unknown ;;
-           arm*) machine=arm-unknown ;;
-           sh3el) machine=shl-unknown ;;
-           sh3eb) machine=sh-unknown ;;
-           sh5el) machine=sh5le-unknown ;;
-           *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-       esac
-       # The Operating System including object format, if it has switched
-       # to ELF recently, or will in the future.
-       case "${UNAME_MACHINE_ARCH}" in
-           arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-               eval $set_cc_for_build
-               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-                       | grep __ELF__ >/dev/null
-               then
-                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-                   # Return netbsd for either.  FIX?
-                   os=netbsd
-               else
-                   os=netbsdelf
-               fi
-               ;;
-           *)
-               os=netbsd
-               ;;
-       esac
-       # The OS release
-       # Debian GNU/NetBSD machines have a different userland, and
-       # thus, need a distinct triplet. However, they do not need
-       # kernel version information, so it can be replaced with a
-       # suitable tag, in the style of linux-gnu.
-       case "${UNAME_VERSION}" in
-           Debian*)
-               release='-gnu'
-               ;;
-           *)
-               release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-               ;;
-       esac
-       # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-       # contains redundant information, the shorter form:
-       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "${machine}-${os}${release}"
-       exit ;;
-    *:OpenBSD:*:*)
-       UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
-       exit ;;
-    *:ekkoBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
-       exit ;;
-    *:SolidBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
-       exit ;;
-    macppc:MirBSD:*:*)
-       echo powerpc-unknown-mirbsd${UNAME_RELEASE}
-       exit ;;
-    *:MirBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
-       exit ;;
-    alpha:OSF1:*:*)
-       case $UNAME_RELEASE in
-       *4.0)
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-               ;;
-       *5.*)
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-               ;;
-       esac
-       # According to Compaq, /usr/sbin/psrinfo has been available on
-       # OSF/1 and Tru64 systems produced since 1995.  I hope that
-       # covers most systems running today.  This code pipes the CPU
-       # types through head -n 1, so we only detect the type of CPU 0.
-       ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-       case "$ALPHA_CPU_TYPE" in
-           "EV4 (21064)")
-               UNAME_MACHINE="alpha" ;;
-           "EV4.5 (21064)")
-               UNAME_MACHINE="alpha" ;;
-           "LCA4 (21066/21068)")
-               UNAME_MACHINE="alpha" ;;
-           "EV5 (21164)")
-               UNAME_MACHINE="alphaev5" ;;
-           "EV5.6 (21164A)")
-               UNAME_MACHINE="alphaev56" ;;
-           "EV5.6 (21164PC)")
-               UNAME_MACHINE="alphapca56" ;;
-           "EV5.7 (21164PC)")
-               UNAME_MACHINE="alphapca57" ;;
-           "EV6 (21264)")
-               UNAME_MACHINE="alphaev6" ;;
-           "EV6.7 (21264A)")
-               UNAME_MACHINE="alphaev67" ;;
-           "EV6.8CB (21264C)")
-               UNAME_MACHINE="alphaev68" ;;
-           "EV6.8AL (21264B)")
-               UNAME_MACHINE="alphaev68" ;;
-           "EV6.8CX (21264D)")
-               UNAME_MACHINE="alphaev68" ;;
-           "EV6.9A (21264/EV69A)")
-               UNAME_MACHINE="alphaev69" ;;
-           "EV7 (21364)")
-               UNAME_MACHINE="alphaev7" ;;
-           "EV7.9 (21364A)")
-               UNAME_MACHINE="alphaev79" ;;
-       esac
-       # A Pn.n version is a patched version.
-       # A Vn.n version is a released version.
-       # A Tn.n version is a released field test version.
-       # A Xn.n version is an unreleased experimental baselevel.
-       # 1.2 uses "1.2" for uname -r.
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       exit ;;
-    Alpha\ *:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # Should we change UNAME_MACHINE based on the output of uname instead
-       # of the specific Alpha model?
-       echo alpha-pc-interix
-       exit ;;
-    21064:Windows_NT:50:3)
-       echo alpha-dec-winnt3.5
-       exit ;;
-    Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-unknown-sysv4
-       exit ;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-amigaos
-       exit ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-morphos
-       exit ;;
-    *:OS/390:*:*)
-       echo i370-ibm-openedition
-       exit ;;
-    *:z/VM:*:*)
-       echo s390-ibm-zvmoe
-       exit ;;
-    *:OS400:*:*)
-        echo powerpc-ibm-os400
-       exit ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-       echo arm-acorn-riscix${UNAME_RELEASE}
-       exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
-       echo arm-unknown-riscos
-       exit ;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-       echo hppa1.1-hitachi-hiuxmpp
-       exit ;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-       # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-       if test "`(/bin/universe) 2>/dev/null`" = att ; then
-               echo pyramid-pyramid-sysv3
-       else
-               echo pyramid-pyramid-bsd
-       fi
-       exit ;;
-    NILE*:*:*:dcosx)
-       echo pyramid-pyramid-svr4
-       exit ;;
-    DRS?6000:unix:4.0:6*)
-       echo sparc-icl-nx6
-       exit ;;
-    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
-       case `/usr/bin/uname -p` in
-           sparc) echo sparc-icl-nx7; exit ;;
-       esac ;;
-    sun4H:SunOS:5.*:*)
-       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-       echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-    sun4*:SunOS:6*:*)
-       # According to config.sub, this is the proper way to canonicalize
-       # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-       # it's likely to be more like Solaris than SunOS4.
-       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-    sun4*:SunOS:*:*)
-       case "`/usr/bin/arch -k`" in
-           Series*|S4*)
-               UNAME_RELEASE=`uname -v`
-               ;;
-       esac
-       # Japanese Language versions have a version number like `4.1.3-JL'.
-       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-       exit ;;
-    sun3*:SunOS:*:*)
-       echo m68k-sun-sunos${UNAME_RELEASE}
-       exit ;;
-    sun*:*:4.2BSD:*)
-       UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-       case "`/bin/arch`" in
-           sun3)
-               echo m68k-sun-sunos${UNAME_RELEASE}
-               ;;
-           sun4)
-               echo sparc-sun-sunos${UNAME_RELEASE}
-               ;;
-       esac
-       exit ;;
-    aushp:SunOS:*:*)
-       echo sparc-auspex-sunos${UNAME_RELEASE}
-       exit ;;
-    # The situation for MiNT is a little confusing.  The machine name
-    # can be virtually everything (everything which is not
-    # "atarist" or "atariste" at least should have a processor
-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
-    # to the lowercase version "mint" (or "freemint").  Finally
-    # the system name "TOS" denotes a system which is actually not
-    # MiNT.  But MiNT is downward compatible to TOS, so this should
-    # be no problem.
-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-       exit ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-       exit ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit ;;
-    m68k:machten:*:*)
-       echo m68k-apple-machten${UNAME_RELEASE}
-       exit ;;
-    powerpc:machten:*:*)
-       echo powerpc-apple-machten${UNAME_RELEASE}
-       exit ;;
-    RISC*:Mach:*:*)
-       echo mips-dec-mach_bsd4.3
-       exit ;;
-    RISC*:ULTRIX:*:*)
-       echo mips-dec-ultrix${UNAME_RELEASE}
-       exit ;;
-    VAX*:ULTRIX*:*:*)
-       echo vax-dec-ultrix${UNAME_RELEASE}
-       exit ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-       echo clipper-intergraph-clix${UNAME_RELEASE}
-       exit ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-       int main (int argc, char *argv[]) {
-#else
-       int main (argc, argv) int argc; char *argv[]; {
-#endif
-       #if defined (host_mips) && defined (MIPSEB)
-       #if defined (SYSTYPE_SYSV)
-         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-       #endif
-       #if defined (SYSTYPE_SVR4)
-         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-       #endif
-       #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-       #endif
-       #endif
-         exit (-1);
-       }
-EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c &&
-         dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-         SYSTEM_NAME=`$dummy $dummyarg` &&
-           { echo "$SYSTEM_NAME"; exit; }
-       echo mips-mips-riscos${UNAME_RELEASE}
-       exit ;;
-    Motorola:PowerMAX_OS:*:*)
-       echo powerpc-motorola-powermax
-       exit ;;
-    Motorola:*:4.3:PL8-*)
-       echo powerpc-harris-powermax
-       exit ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-       echo powerpc-harris-powermax
-       exit ;;
-    Night_Hawk:Power_UNIX:*:*)
-       echo powerpc-harris-powerunix
-       exit ;;
-    m88k:CX/UX:7*:*)
-       echo m88k-harris-cxux7
-       exit ;;
-    m88k:*:4*:R4*)
-       echo m88k-motorola-sysv4
-       exit ;;
-    m88k:*:3*:R3*)
-       echo m88k-motorola-sysv3
-       exit ;;
-    AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-       then
-           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-              [ ${TARGET_BINARY_INTERFACE}x = x ]
-           then
-               echo m88k-dg-dgux${UNAME_RELEASE}
-           else
-               echo m88k-dg-dguxbcs${UNAME_RELEASE}
-           fi
-       else
-           echo i586-dg-dgux${UNAME_RELEASE}
-       fi
-       exit ;;
-    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
-       echo m88k-dolphin-sysv3
-       exit ;;
-    M88*:*:R3*:*)
-       # Delta 88k system running SVR3
-       echo m88k-motorola-sysv3
-       exit ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-       echo m88k-tektronix-sysv3
-       exit ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-       echo m68k-tektronix-bsd
-       exit ;;
-    *:IRIX*:*:*)
-       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-       exit ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-       echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
-       exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-       echo i386-ibm-aix
-       exit ;;
-    ia64:AIX:*:*)
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
-       else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-       fi
-       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-       exit ;;
-    *:AIX:2:3)
-       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-               eval $set_cc_for_build
-               sed 's/^                //' << EOF >$dummy.c
-               #include <sys/systemcfg.h>
-
-               main()
-                       {
-                       if (!__power_pc())
-                               exit(1);
-                       puts("powerpc-ibm-aix3.2.5");
-                       exit(0);
-                       }
-EOF
-               if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
-               then
-                       echo "$SYSTEM_NAME"
-               else
-                       echo rs6000-ibm-aix3.2.5
-               fi
-       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-               echo rs6000-ibm-aix3.2.4
-       else
-               echo rs6000-ibm-aix3.2
-       fi
-       exit ;;
-    *:AIX:*:[456])
-       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
-               IBM_ARCH=rs6000
-       else
-               IBM_ARCH=powerpc
-       fi
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
-       else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-       fi
-       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-       exit ;;
-    *:AIX:*:*)
-       echo rs6000-ibm-aix
-       exit ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-       echo romp-ibm-bsd4.4
-       exit ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-       exit ;;                             # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-       echo rs6000-bull-bosx
-       exit ;;
-    DPX/2?00:B.O.S.:*:*)
-       echo m68k-bull-sysv3
-       exit ;;
-    9000/[34]??:4.3bsd:1.*:*)
-       echo m68k-hp-bsd
-       exit ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-       echo m68k-hp-bsd4.4
-       exit ;;
-    9000/[34678]??:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       case "${UNAME_MACHINE}" in
-           9000/31? )            HP_ARCH=m68000 ;;
-           9000/[34]?? )         HP_ARCH=m68k ;;
-           9000/[678][0-9][0-9])
-               if [ -x /usr/bin/getconf ]; then
-                   sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
-                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
-               fi
-               if [ "${HP_ARCH}" = "" ]; then
-                   eval $set_cc_for_build
-                   sed 's/^              //' << EOF >$dummy.c
-
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
-
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
-
-                  switch (cpu)
-               {
-               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-               case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-                   switch (bits)
-                       {
-                       case 64: puts ("hppa2.0w"); break;
-                       case 32: puts ("hppa2.0n"); break;
-                       default: puts ("hppa2.0"); break;
-                       } break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-                   puts ("hppa2.0"); break;
-              #endif
-               default: puts ("hppa1.0"); break;
-               }
-                  exit (0);
-              }
-EOF
-                   (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
-                   test -z "$HP_ARCH" && HP_ARCH=hppa
-               fi ;;
-       esac
-       if [ ${HP_ARCH} = "hppa2.0w" ]
-       then
-           eval $set_cc_for_build
-
-           # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
-           # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
-           # generating 64-bit code.  GNU and HP use different nomenclature:
-           #
-           # $ CC_FOR_BUILD=cc ./config.guess
-           # => hppa2.0w-hp-hpux11.23
-           # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
-           # => hppa64-hp-hpux11.23
-
-           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-               grep __LP64__ >/dev/null
-           then
-               HP_ARCH="hppa2.0w"
-           else
-               HP_ARCH="hppa64"
-           fi
-       fi
-       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-       exit ;;
-    ia64:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       echo ia64-hp-hpux${HPUX_REV}
-       exit ;;
-    3050*:HI-UX:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #include <unistd.h>
-       int
-       main ()
-       {
-         long cpu = sysconf (_SC_CPU_VERSION);
-         /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-            true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-            results, however.  */
-         if (CPU_IS_PA_RISC (cpu))
-           {
-             switch (cpu)
-               {
-                 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-                 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-                 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-                 default: puts ("hppa-hitachi-hiuxwe2"); break;
-               }
-           }
-         else if (CPU_IS_HP_MC68K (cpu))
-           puts ("m68k-hitachi-hiuxwe2");
-         else puts ("unknown-hitachi-hiuxwe2");
-         exit (0);
-       }
-EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
-               { echo "$SYSTEM_NAME"; exit; }
-       echo unknown-hitachi-hiuxwe2
-       exit ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-       echo hppa1.1-hp-bsd
-       exit ;;
-    9000/8??:4.3bsd:*:*)
-       echo hppa1.0-hp-bsd
-       exit ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-       echo hppa1.0-hp-mpeix
-       exit ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-       echo hppa1.1-hp-osf
-       exit ;;
-    hp8??:OSF1:*:*)
-       echo hppa1.0-hp-osf
-       exit ;;
-    i*86:OSF1:*:*)
-       if [ -x /usr/sbin/sysversion ] ; then
-           echo ${UNAME_MACHINE}-unknown-osf1mk
-       else
-           echo ${UNAME_MACHINE}-unknown-osf1
-       fi
-       exit ;;
-    parisc*:Lites*:*:*)
-       echo hppa1.1-hp-lites
-       exit ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-       echo c1-convex-bsd
-        exit ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-        exit ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-       echo c34-convex-bsd
-        exit ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-       echo c38-convex-bsd
-        exit ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-       echo c4-convex-bsd
-        exit ;;
-    CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
-    CRAY*[A-Z]90:*:*:*)
-       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-       | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-             -e 's/\.[^.]*$/.X/'
-       exit ;;
-    CRAY*TS:*:*:*)
-       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
-    CRAY*T3E:*:*:*)
-       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
-    CRAY*SV1:*:*:*)
-       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
-    *:UNICOS/mp:*:*)
-       echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit ;;
-    5000:UNIX_System_V:4.*:*)
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-       exit ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-       exit ;;
-    sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi${UNAME_RELEASE}
-       exit ;;
-    *:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-       exit ;;
-    *:FreeBSD:*:*)
-       case ${UNAME_MACHINE} in
-           pc98)
-               echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-           amd64)
-               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-           *)
-               echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-       esac
-       exit ;;
-    i*:CYGWIN*:*)
-       echo ${UNAME_MACHINE}-pc-cygwin
-       exit ;;
-    *:MINGW*:*)
-       echo ${UNAME_MACHINE}-pc-mingw32
-       exit ;;
-    i*:windows32*:*)
-       # uname -m includes "-pc" on this system.
-       echo ${UNAME_MACHINE}-mingw32
-       exit ;;
-    i*:PW*:*)
-       echo ${UNAME_MACHINE}-pc-pw32
-       exit ;;
-    *:Interix*:[3456]*)
-       case ${UNAME_MACHINE} in
-           x86)
-               echo i586-pc-interix${UNAME_RELEASE}
-               exit ;;
-           EM64T | authenticamd)
-               echo x86_64-unknown-interix${UNAME_RELEASE}
-               exit ;;
-           IA64)
-               echo ia64-unknown-interix${UNAME_RELEASE}
-               exit ;;
-       esac ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-       echo i${UNAME_MACHINE}-pc-mks
-       exit ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-       # UNAME_MACHINE based on the output of uname instead of i386?
-       echo i586-pc-interix
-       exit ;;
-    i*:UWIN*:*)
-       echo ${UNAME_MACHINE}-pc-uwin
-       exit ;;
-    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-       echo x86_64-unknown-cygwin
-       exit ;;
-    p*:CYGWIN*:*)
-       echo powerpcle-unknown-cygwin
-       exit ;;
-    prep*:SunOS:5.*:*)
-       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-    *:GNU:*:*)
-       # the GNU system
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-       exit ;;
-    *:GNU/*:*:*)
-       # other systems with GNU libc and userland
-       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
-       exit ;;
-    i*86:Minix:*:*)
-       echo ${UNAME_MACHINE}-pc-minix
-       exit ;;
-    arm*:Linux:*:*)
-       eval $set_cc_for_build
-       if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
-           | grep -q __ARM_EABI__
-       then
-           echo ${UNAME_MACHINE}-unknown-linux-gnu
-       else
-           echo ${UNAME_MACHINE}-unknown-linux-gnueabi
-       fi
-       exit ;;
-    avr32*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    cris:Linux:*:*)
-       echo cris-axis-linux-gnu
-       exit ;;
-    crisv32:Linux:*:*)
-       echo crisv32-axis-linux-gnu
-       exit ;;
-    frv:Linux:*:*)
-       echo frv-unknown-linux-gnu
-       exit ;;
-    ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    m32r*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    mips:Linux:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #undef CPU
-       #undef mips
-       #undef mipsel
-       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-       CPU=mipsel
-       #else
-       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-       CPU=mips
-       #else
-       CPU=
-       #endif
-       #endif
-EOF
-       eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-           /^CPU/{
-               s: ::g
-               p
-           }'`"
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-       ;;
-    mips64:Linux:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #undef CPU
-       #undef mips64
-       #undef mips64el
-       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-       CPU=mips64el
-       #else
-       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-       CPU=mips64
-       #else
-       CPU=
-       #endif
-       #endif
-EOF
-       eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-           /^CPU/{
-               s: ::g
-               p
-           }'`"
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-       ;;
-    or32:Linux:*:*)
-       echo or32-unknown-linux-gnu
-       exit ;;
-    ppc:Linux:*:*)
-       echo powerpc-unknown-linux-gnu
-       exit ;;
-    ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-gnu
-       exit ;;
-    alpha:Linux:*:*)
-       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-         EV5)   UNAME_MACHINE=alphaev5 ;;
-         EV56)  UNAME_MACHINE=alphaev56 ;;
-         PCA56) UNAME_MACHINE=alphapca56 ;;
-         PCA57) UNAME_MACHINE=alphapca56 ;;
-         EV6)   UNAME_MACHINE=alphaev6 ;;
-         EV67)  UNAME_MACHINE=alphaev67 ;;
-         EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-       objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-       exit ;;
-    parisc:Linux:*:* | hppa:Linux:*:*)
-       # Look for CPU level
-       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-gnu ;;
-         PA8*) echo hppa2.0-unknown-linux-gnu ;;
-         *)    echo hppa-unknown-linux-gnu ;;
-       esac
-       exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-gnu
-       exit ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux
-       exit ;;
-    sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    vax:Linux:*:*)
-       echo ${UNAME_MACHINE}-dec-linux-gnu
-       exit ;;
-    x86_64:Linux:*:*)
-       echo x86_64-unknown-linux-gnu
-       exit ;;
-    xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    i*86:Linux:*:*)
-       # The BFD linker knows what the default object file format is, so
-       # first see if it will tell us. cd to the root directory to prevent
-       # problems with other programs or directories called `ld' in the path.
-       # Set LC_ALL=C to ensure ld outputs messages in English.
-       ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-                        | sed -ne '/supported targets:/!d
-                                   s/[         ][      ]*/ /g
-                                   s/.*supported targets: *//
-                                   s/ .*//
-                                   p'`
-        case "$ld_supported_targets" in
-         elf32-i386)
-               TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-               ;;
-         a.out-i386-linux)
-               echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-               exit ;;
-         coff-i386)
-               echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-               exit ;;
-         "")
-               # Either a pre-BFD a.out linker (linux-gnuoldld) or
-               # one that does not give us useful --help.
-               echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-               exit ;;
-       esac
-       # Determine whether the default compiler is a.out or elf
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #include <features.h>
-       #ifdef __ELF__
-       # ifdef __GLIBC__
-       #  if __GLIBC__ >= 2
-       LIBC=gnu
-       #  else
-       LIBC=gnulibc1
-       #  endif
-       # else
-       LIBC=gnulibc1
-       # endif
-       #else
-       #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-       LIBC=gnu
-       #else
-       LIBC=gnuaout
-       #endif
-       #endif
-       #ifdef __dietlibc__
-       LIBC=dietlibc
-       #endif
-EOF
-       eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-           /^LIBC/{
-               s: ::g
-               p
-           }'`"
-       test x"${LIBC}" != x && {
-               echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-               exit
-       }
-       test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
-       ;;
-    i*86:DYNIX/ptx:4*:*)
-       # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-       # earlier versions are messed up and put the nodename in both
-       # sysname and nodename.
-       echo i386-sequent-sysv4
-       exit ;;
-    i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
-       # I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
-       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-       exit ;;
-    i*86:OS/2:*:*)
-       # If we were able to find `uname', then EMX Unix compatibility
-       # is probably installed.
-       echo ${UNAME_MACHINE}-pc-os2-emx
-       exit ;;
-    i*86:XTS-300:*:STOP)
-       echo ${UNAME_MACHINE}-unknown-stop
-       exit ;;
-    i*86:atheos:*:*)
-       echo ${UNAME_MACHINE}-unknown-atheos
-       exit ;;
-    i*86:syllable:*:*)
-       echo ${UNAME_MACHINE}-pc-syllable
-       exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-       echo i386-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-    i*86:*DOS:*:*)
-       echo ${UNAME_MACHINE}-pc-msdosdjgpp
-       exit ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-       else
-               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-       fi
-       exit ;;
-    i*86:*:5:[678]*)
-       # UnixWare 7.x, OpenUNIX and OpenServer 6.
-       case `/bin/uname -X | grep "^Machine"` in
-           *486*)           UNAME_MACHINE=i486 ;;
-           *Pentium)        UNAME_MACHINE=i586 ;;
-           *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
-       esac
-       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-       exit ;;
-    i*86:*:3.2:*)
-       if test -f /usr/options/cb.name; then
-               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-       elif /bin/uname -X 2>/dev/null >/dev/null ; then
-               UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
-               (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
-               (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
-                       && UNAME_MACHINE=i586
-               (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
-                       && UNAME_MACHINE=i686
-               (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
-                       && UNAME_MACHINE=i686
-               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-       else
-               echo ${UNAME_MACHINE}-pc-sysv32
-       fi
-       exit ;;
-    pc:*:*:*)
-       # Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-       echo i386-pc-msdosdjgpp
-        exit ;;
-    Intel:Mach:3*:*)
-       echo i386-pc-mach3
-       exit ;;
-    paragon:*:*:*)
-       echo i860-intel-osf1
-       exit ;;
-    i860:*:4.*:*) # i860-SVR4
-       if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-       else # Add other i860-SVR4 vendors below as they are discovered.
-         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-       fi
-       exit ;;
-    mini*:CTIX:SYS*5:*)
-       # "miniframe"
-       echo m68010-convergent-sysv
-       exit ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-       echo m68k-convergent-sysv
-       exit ;;
-    M680?0:D-NIX:5.3:*)
-       echo m68k-diab-dnix
-       exit ;;
-    M68*:*:R3V[5678]*:*)
-       test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
-    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
-       OS_REL=''
-       test -r /etc/.relid \
-       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-         && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-         && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && { echo i486-ncr-sysv4; exit; } ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-    mc68030:UNIX_System_V:4.*:*)
-       echo m68k-atari-sysv4
-       exit ;;
-    TSUNAMI:LynxOS:2.*:*)
-       echo sparc-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-    rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-       echo powerpc-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-    SM[BE]S:UNIX_SV:*:*)
-       echo mips-dde-sysv${UNAME_RELEASE}
-       exit ;;
-    RM*:ReliantUNIX-*:*:*)
-       echo mips-sni-sysv4
-       exit ;;
-    RM*:SINIX-*:*:*)
-       echo mips-sni-sysv4
-       exit ;;
-    *:SINIX-*:*:*)
-       if uname -p 2>/dev/null >/dev/null ; then
-               UNAME_MACHINE=`(uname -p) 2>/dev/null`
-               echo ${UNAME_MACHINE}-sni-sysv4
-       else
-               echo ns32k-sni-sysv
-       fi
-       exit ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit ;;
-    *:UNIX_System_V:4*:FTX*)
-       # From Gerald Hewes <hewes@openmarket.com>.
-       # How about differentiating between stratus architectures? -djm
-       echo hppa1.1-stratus-sysv4
-       exit ;;
-    *:*:*:FTX*)
-       # From seanf@swdc.stratus.com.
-       echo i860-stratus-sysv4
-       exit ;;
-    i*86:VOS:*:*)
-       # From Paul.Green@stratus.com.
-       echo ${UNAME_MACHINE}-stratus-vos
-       exit ;;
-    *:VOS:*:*)
-       # From Paul.Green@stratus.com.
-       echo hppa1.1-stratus-vos
-       exit ;;
-    mc68*:A/UX:*:*)
-       echo m68k-apple-aux${UNAME_RELEASE}
-       exit ;;
-    news*:NEWS-OS:6*:*)
-       echo mips-sony-newsos6
-       exit ;;
-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-       if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
-       else
-               echo mips-unknown-sysv${UNAME_RELEASE}
-       fi
-        exit ;;
-    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
-       echo powerpc-be-beos
-       exit ;;
-    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
-       echo powerpc-apple-beos
-       exit ;;
-    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
-       echo i586-pc-beos
-       exit ;;
-    SX-4:SUPER-UX:*:*)
-       echo sx4-nec-superux${UNAME_RELEASE}
-       exit ;;
-    SX-5:SUPER-UX:*:*)
-       echo sx5-nec-superux${UNAME_RELEASE}
-       exit ;;
-    SX-6:SUPER-UX:*:*)
-       echo sx6-nec-superux${UNAME_RELEASE}
-       exit ;;
-    SX-7:SUPER-UX:*:*)
-       echo sx7-nec-superux${UNAME_RELEASE}
-       exit ;;
-    SX-8:SUPER-UX:*:*)
-       echo sx8-nec-superux${UNAME_RELEASE}
-       exit ;;
-    SX-8R:SUPER-UX:*:*)
-       echo sx8r-nec-superux${UNAME_RELEASE}
-       exit ;;
-    Power*:Rhapsody:*:*)
-       echo powerpc-apple-rhapsody${UNAME_RELEASE}
-       exit ;;
-    *:Rhapsody:*:*)
-       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-       exit ;;
-    *:Darwin:*:*)
-       UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       case $UNAME_PROCESSOR in
-           unknown) UNAME_PROCESSOR=powerpc ;;
-       esac
-       echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-       exit ;;
-    *:procnto*:*:* | *:QNX:[0123456789]*:*)
-       UNAME_PROCESSOR=`uname -p`
-       if test "$UNAME_PROCESSOR" = "x86"; then
-               UNAME_PROCESSOR=i386
-               UNAME_MACHINE=pc
-       fi
-       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-       exit ;;
-    *:QNX:*:4*)
-       echo i386-pc-qnx
-       exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
-       echo nse-tandem-nsk${UNAME_RELEASE}
-       exit ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
-       echo nsr-tandem-nsk${UNAME_RELEASE}
-       exit ;;
-    *:NonStop-UX:*:*)
-       echo mips-compaq-nonstopux
-       exit ;;
-    BS2000:POSIX*:*:*)
-       echo bs2000-siemens-sysv
-       exit ;;
-    DS/*:UNIX_System_V:*:*)
-       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-       exit ;;
-    *:Plan9:*:*)
-       # "uname -m" is not consistent, so use $cputype instead. 386
-       # is converted to i386 for consistency with other x86
-       # operating systems.
-       if test "$cputype" = "386"; then
-           UNAME_MACHINE=i386
-       else
-           UNAME_MACHINE="$cputype"
-       fi
-       echo ${UNAME_MACHINE}-unknown-plan9
-       exit ;;
-    *:TOPS-10:*:*)
-       echo pdp10-unknown-tops10
-       exit ;;
-    *:TENEX:*:*)
-       echo pdp10-unknown-tenex
-       exit ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-       echo pdp10-dec-tops20
-       exit ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-       echo pdp10-xkl-tops20
-       exit ;;
-    *:TOPS-20:*:*)
-       echo pdp10-unknown-tops20
-       exit ;;
-    *:ITS:*:*)
-       echo pdp10-unknown-its
-       exit ;;
-    SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
-       exit ;;
-    *:DragonFly:*:*)
-       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-       exit ;;
-    *:*VMS:*:*)
-       UNAME_MACHINE=`(uname -p) 2>/dev/null`
-       case "${UNAME_MACHINE}" in
-           A*) echo alpha-dec-vms ; exit ;;
-           I*) echo ia64-dec-vms ; exit ;;
-           V*) echo vax-dec-vms ; exit ;;
-       esac ;;
-    *:XENIX:*:SysV)
-       echo i386-pc-xenix
-       exit ;;
-    i*86:skyos:*:*)
-       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
-       exit ;;
-    i*86:rdos:*:*)
-       echo ${UNAME_MACHINE}-pc-rdos
-       exit ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-         ""
-#endif
-         ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-       printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-       printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-       { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-       echo c1-convex-bsd
-       exit ;;
-    c2*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-       exit ;;
-    c34*)
-       echo c34-convex-bsd
-       exit ;;
-    c38*)
-       echo c38-convex-bsd
-       exit ;;
-    c4*)
-       echo c4-convex-bsd
-       exit ;;
-    esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-and
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo               = `(hostinfo) 2>/dev/null`
-/bin/universe          = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch              = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/zephyr/config.site.athena b/zephyr/config.site.athena
deleted file mode 100644 (file)
index a77b733..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-# config.site: Athena-specific autconf configuration
-# $Id: config.site.athena 2091 2007-12-20 01:17:23Z kcr $
-#
-
-athena=true
-
-# Compile programs with debugging and without optimization, for ease
-# of maintenance.  Use headers and libraries from /usr/athena.
-: ${CFLAGS=-g}
-: ${LDFLAGS="-L/usr/athena/lib -Wl,-R/usr/athena/lib"}
-: ${CPPFLAGS="-I/usr/athena/include -D_REENTRANT"}
-
-# Set location of X and Motif includes and libraries.
-case "$ATHENA_HOSTTYPE" in
-sun4)
-  x_includes=/usr/openwin/include
-  x_libraries=/usr/openwin/lib
-  with_motif=/usr/dt
-  ;;
-linux)
-  x_includes=/usr/X11R6/include
-  x_libraries=/usr/X11R6/lib
-  with_motif=yes
-  # Kludge around namespace protection problems.
-  ac_cv_lib_resolv_res_send=yes
-  ac_cv_lib_db_dbm_open=yes
-  ;;
-*)
-  x_includes=
-  x_libraries=
-  with_motif=yes
-  ;;
-esac
-
-# Set location of various includes and libraries if they aren't
-# already set.
-[ -n "$with_afs" ]     || with_afs=/usr/afsws
-[ -n "$with_krb4" ]    || with_krb4=yes
-[ -n "$with_krb5" ]    || with_krb5=yes
-[ -n "$with_hesiod" ]  || with_hesiod=yes
-[ -n "$with_com_err" ] || with_com_err=yes
-[ -n "$with_ss" ]      || with_ss=yes
-[ -n "$with_zephyr" ]  || with_zephyr=yes
-[ -n "$with_ares" ]    || with_ares=yes
-
-prefix=/usr/athena
-sbindir='${exec_prefix}/etc'
-sysconfdir=/etc/athena
-lbindir=/bin/athena
-lsbindir=/etc/athena
diff --git a/zephyr/config.sub b/zephyr/config.sub
deleted file mode 100755 (executable)
index 6759825..0000000
+++ /dev/null
@@ -1,1658 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-#   Free Software Foundation, Inc.
-
-timestamp='2008-01-16'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
-    --version | -v )
-       echo "$version" ; exit ;;
-    --help | --h* | -h )
-       echo "$usage"; exit ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )        # Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help"
-       exit 1 ;;
-
-    *local*)
-       # First pass through any local machine types.
-       echo $1
-       exit ;;
-
-    * )
-       break ;;
-  esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
-    exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
-    exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
-  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
-  storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-       -sun*os*)
-               # Prevent following clause from handling this invalid input.
-               ;;
-       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple | -axis | -knuth | -cray)
-               os=
-               basic_machine=$1
-               ;;
-       -sim | -cisco | -oki | -wec | -winbond)
-               os=
-               basic_machine=$1
-               ;;
-       -scout)
-               ;;
-       -wrs)
-               os=-vxworks
-               basic_machine=$1
-               ;;
-       -chorusos*)
-               os=-chorusos
-               basic_machine=$1
-               ;;
-       -chorusrdb)
-               os=-chorusrdb
-               basic_machine=$1
-               ;;
-       -hiux*)
-               os=-hiuxwe2
-               ;;
-       -sco6)
-               os=-sco5v6
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco5)
-               os=-sco3.2v5
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco4)
-               os=-sco3.2v4
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2.[4-9]*)
-               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2v[4-9]*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco5v6*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco*)
-               os=-sco3.2v2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -udk*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -isc)
-               os=-isc2.2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -clix*)
-               basic_machine=clipper-intergraph
-               ;;
-       -isc*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -lynx*)
-               os=-lynxos
-               ;;
-       -ptx*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-               ;;
-       -windowsnt*)
-               os=`echo $os | sed -e 's/windowsnt/winnt/'`
-               ;;
-       -psos*)
-               os=-psos
-               ;;
-       -mint | -mint[0-9]*)
-               basic_machine=m68k-atari
-               os=-mint
-               ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-       # Recognize the basic CPU types without company name.
-       # Some are omitted here because they have special meanings below.
-       1750a | 580 \
-       | a29k \
-       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-       | am33_2.0 \
-       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-       | bfin \
-       | c4x | clipper \
-       | d10v | d30v | dlx | dsp16xx \
-       | fido | fr30 | frv \
-       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-       | i370 | i860 | i960 | ia64 \
-       | ip2k | iq2000 \
-       | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | maxq | mb | microblaze | mcore | mep \
-       | mips | mipsbe | mipseb | mipsel | mipsle \
-       | mips16 \
-       | mips64 | mips64el \
-       | mips64vr | mips64vrel \
-       | mips64orion | mips64orionel \
-       | mips64vr4100 | mips64vr4100el \
-       | mips64vr4300 | mips64vr4300el \
-       | mips64vr5000 | mips64vr5000el \
-       | mips64vr5900 | mips64vr5900el \
-       | mipsisa32 | mipsisa32el \
-       | mipsisa32r2 | mipsisa32r2el \
-       | mipsisa64 | mipsisa64el \
-       | mipsisa64r2 | mipsisa64r2el \
-       | mipsisa64sb1 | mipsisa64sb1el \
-       | mipsisa64sr71k | mipsisa64sr71kel \
-       | mipstx39 | mipstx39el \
-       | mn10200 | mn10300 \
-       | mt \
-       | msp430 \
-       | nios | nios2 \
-       | ns16k | ns32k \
-       | or32 \
-       | pdp10 | pdp11 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-       | pyramid \
-       | score \
-       | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
-       | sh64 | sh64le \
-       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
-       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu | strongarm \
-       | tahoe | thumb | tic4x | tic80 | tron \
-       | v850 | v850e \
-       | we32k \
-       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
-       | z8k)
-               basic_machine=$basic_machine-unknown
-               ;;
-       m6811 | m68hc11 | m6812 | m68hc12)
-               # Motorola 68HC11/12.
-               basic_machine=$basic_machine-unknown
-               os=-none
-               ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-               ;;
-       ms1)
-               basic_machine=mt-unknown
-               ;;
-
-       # We use `pc' rather than `unknown'
-       # because (1) that's what they normally are, and
-       # (2) the word "unknown" tends to confuse beginning users.
-       i*86 | x86_64)
-         basic_machine=$basic_machine-pc
-         ;;
-       # Object if more than one company name word.
-       *-*-*)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-               exit 1
-               ;;
-       # Recognize the basic CPU types with company name.
-       580-* \
-       | a29k-* \
-       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
-       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-       | avr-* | avr32-* \
-       | bfin-* | bs2000-* \
-       | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-       | clipper-* | craynv-* | cydra-* \
-       | d10v-* | d30v-* | dlx-* \
-       | elxsi-* \
-       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
-       | h8300-* | h8500-* \
-       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-       | i*86-* | i860-* | i960-* | ia64-* \
-       | ip2k-* | iq2000-* \
-       | m32c-* | m32r-* | m32rle-* \
-       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | maxq-* | mcore-* \
-       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-       | mips16-* \
-       | mips64-* | mips64el-* \
-       | mips64vr-* | mips64vrel-* \
-       | mips64orion-* | mips64orionel-* \
-       | mips64vr4100-* | mips64vr4100el-* \
-       | mips64vr4300-* | mips64vr4300el-* \
-       | mips64vr5000-* | mips64vr5000el-* \
-       | mips64vr5900-* | mips64vr5900el-* \
-       | mipsisa32-* | mipsisa32el-* \
-       | mipsisa32r2-* | mipsisa32r2el-* \
-       | mipsisa64-* | mipsisa64el-* \
-       | mipsisa64r2-* | mipsisa64r2el-* \
-       | mipsisa64sb1-* | mipsisa64sb1el-* \
-       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
-       | mipstx39-* | mipstx39el-* \
-       | mmix-* \
-       | mt-* \
-       | msp430-* \
-       | nios-* | nios2-* \
-       | none-* | np1-* | ns16k-* | ns32k-* \
-       | orion-* \
-       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-       | pyramid-* \
-       | romp-* | rs6000-* \
-       | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
-       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
-       | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
-       | tahoe-* | thumb-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-       | tron-* \
-       | v850-* | v850e-* | vax-* \
-       | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-       | xstormy16-* | xtensa*-* \
-       | ymp-* \
-       | z8k-*)
-               ;;
-       # Recognize the basic CPU types without company name, with glob match.
-       xtensa*)
-               basic_machine=$basic_machine-unknown
-               ;;
-       # Recognize the various machine names and aliases which stand
-       # for a CPU type and a company and sometimes even an OS.
-       386bsd)
-               basic_machine=i386-unknown
-               os=-bsd
-               ;;
-       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-               basic_machine=m68000-att
-               ;;
-       3b*)
-               basic_machine=we32k-att
-               ;;
-       a29khif)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       abacus)
-               basic_machine=abacus-unknown
-               ;;
-       adobe68k)
-               basic_machine=m68010-adobe
-               os=-scout
-               ;;
-       alliant | fx80)
-               basic_machine=fx80-alliant
-               ;;
-       altos | altos3068)
-               basic_machine=m68k-altos
-               ;;
-       am29k)
-               basic_machine=a29k-none
-               os=-bsd
-               ;;
-       amd64)
-               basic_machine=x86_64-pc
-               ;;
-       amd64-*)
-               basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       amdahl)
-               basic_machine=580-amdahl
-               os=-sysv
-               ;;
-       amiga | amiga-*)
-               basic_machine=m68k-unknown
-               ;;
-       amigaos | amigados)
-               basic_machine=m68k-unknown
-               os=-amigaos
-               ;;
-       amigaunix | amix)
-               basic_machine=m68k-unknown
-               os=-sysv4
-               ;;
-       apollo68)
-               basic_machine=m68k-apollo
-               os=-sysv
-               ;;
-       apollo68bsd)
-               basic_machine=m68k-apollo
-               os=-bsd
-               ;;
-       aux)
-               basic_machine=m68k-apple
-               os=-aux
-               ;;
-       balance)
-               basic_machine=ns32k-sequent
-               os=-dynix
-               ;;
-       blackfin)
-               basic_machine=bfin-unknown
-               os=-linux
-               ;;
-       blackfin-*)
-               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
-               ;;
-       c90)
-               basic_machine=c90-cray
-               os=-unicos
-               ;;
-       convex-c1)
-               basic_machine=c1-convex
-               os=-bsd
-               ;;
-       convex-c2)
-               basic_machine=c2-convex
-               os=-bsd
-               ;;
-       convex-c32)
-               basic_machine=c32-convex
-               os=-bsd
-               ;;
-       convex-c34)
-               basic_machine=c34-convex
-               os=-bsd
-               ;;
-       convex-c38)
-               basic_machine=c38-convex
-               os=-bsd
-               ;;
-       cray | j90)
-               basic_machine=j90-cray
-               os=-unicos
-               ;;
-       craynv)
-               basic_machine=craynv-cray
-               os=-unicosmp
-               ;;
-       cr16)
-               basic_machine=cr16-unknown
-               os=-elf
-               ;;
-       crds | unos)
-               basic_machine=m68k-crds
-               ;;
-       crisv32 | crisv32-* | etraxfs*)
-               basic_machine=crisv32-axis
-               ;;
-       cris | cris-* | etrax*)
-               basic_machine=cris-axis
-               ;;
-       crx)
-               basic_machine=crx-unknown
-               os=-elf
-               ;;
-       da30 | da30-*)
-               basic_machine=m68k-da30
-               ;;
-       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-               basic_machine=mips-dec
-               ;;
-       decsystem10* | dec10*)
-               basic_machine=pdp10-dec
-               os=-tops10
-               ;;
-       decsystem20* | dec20*)
-               basic_machine=pdp10-dec
-               os=-tops20
-               ;;
-       delta | 3300 | motorola-3300 | motorola-delta \
-             | 3300-motorola | delta-motorola)
-               basic_machine=m68k-motorola
-               ;;
-       delta88)
-               basic_machine=m88k-motorola
-               os=-sysv3
-               ;;
-       djgpp)
-               basic_machine=i586-pc
-               os=-msdosdjgpp
-               ;;
-       dpx20 | dpx20-*)
-               basic_machine=rs6000-bull
-               os=-bosx
-               ;;
-       dpx2* | dpx2*-bull)
-               basic_machine=m68k-bull
-               os=-sysv3
-               ;;
-       ebmon29k)
-               basic_machine=a29k-amd
-               os=-ebmon
-               ;;
-       elxsi)
-               basic_machine=elxsi-elxsi
-               os=-bsd
-               ;;
-       encore | umax | mmax)
-               basic_machine=ns32k-encore
-               ;;
-       es1800 | OSE68k | ose68k | ose | OSE)
-               basic_machine=m68k-ericsson
-               os=-ose
-               ;;
-       fx2800)
-               basic_machine=i860-alliant
-               ;;
-       genix)
-               basic_machine=ns32k-ns
-               ;;
-       gmicro)
-               basic_machine=tron-gmicro
-               os=-sysv
-               ;;
-       go32)
-               basic_machine=i386-pc
-               os=-go32
-               ;;
-       h3050r* | hiux*)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       h8300hms)
-               basic_machine=h8300-hitachi
-               os=-hms
-               ;;
-       h8300xray)
-               basic_machine=h8300-hitachi
-               os=-xray
-               ;;
-       h8500hms)
-               basic_machine=h8500-hitachi
-               os=-hms
-               ;;
-       harris)
-               basic_machine=m88k-harris
-               os=-sysv3
-               ;;
-       hp300-*)
-               basic_machine=m68k-hp
-               ;;
-       hp300bsd)
-               basic_machine=m68k-hp
-               os=-bsd
-               ;;
-       hp300hpux)
-               basic_machine=m68k-hp
-               os=-hpux
-               ;;
-       hp3k9[0-9][0-9] | hp9[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hp9k2[0-9][0-9] | hp9k31[0-9])
-               basic_machine=m68000-hp
-               ;;
-       hp9k3[2-9][0-9])
-               basic_machine=m68k-hp
-               ;;
-       hp9k6[0-9][0-9] | hp6[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hp9k7[0-79][0-9] | hp7[0-79][0-9])
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k78[0-9] | hp78[0-9])
-               # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-               # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[0-9][13679] | hp8[0-9][13679])
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[0-9][0-9] | hp8[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hppa-next)
-               os=-nextstep3
-               ;;
-       hppaosf)
-               basic_machine=hppa1.1-hp
-               os=-osf
-               ;;
-       hppro)
-               basic_machine=hppa1.1-hp
-               os=-proelf
-               ;;
-       i370-ibm* | ibm*)
-               basic_machine=i370-ibm
-               ;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-       i*86v32)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv32
-               ;;
-       i*86v4*)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv4
-               ;;
-       i*86v)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv
-               ;;
-       i*86sol2)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-solaris2
-               ;;
-       i386mach)
-               basic_machine=i386-mach
-               os=-mach
-               ;;
-       i386-vsta | vsta)
-               basic_machine=i386-unknown
-               os=-vsta
-               ;;
-       iris | iris4d)
-               basic_machine=mips-sgi
-               case $os in
-                   -irix*)
-                       ;;
-                   *)
-                       os=-irix4
-                       ;;
-               esac
-               ;;
-       isi68 | isi)
-               basic_machine=m68k-isi
-               os=-sysv
-               ;;
-       m68knommu)
-               basic_machine=m68k-unknown
-               os=-linux
-               ;;
-       m68knommu-*)
-               basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
-               ;;
-       m88k-omron*)
-               basic_machine=m88k-omron
-               ;;
-       magnum | m3230)
-               basic_machine=mips-mips
-               os=-sysv
-               ;;
-       merlin)
-               basic_machine=ns32k-utek
-               os=-sysv
-               ;;
-       mingw32)
-               basic_machine=i386-pc
-               os=-mingw32
-               ;;
-       mingw32ce)
-               basic_machine=arm-unknown
-               os=-mingw32ce
-               ;;
-       miniframe)
-               basic_machine=m68000-convergent
-               ;;
-       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-               basic_machine=m68k-atari
-               os=-mint
-               ;;
-       mips3*-*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-               ;;
-       mips3*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-               ;;
-       monitor)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       morphos)
-               basic_machine=powerpc-unknown
-               os=-morphos
-               ;;
-       msdos)
-               basic_machine=i386-pc
-               os=-msdos
-               ;;
-       ms1-*)
-               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
-               ;;
-       mvs)
-               basic_machine=i370-ibm
-               os=-mvs
-               ;;
-       ncr3000)
-               basic_machine=i486-ncr
-               os=-sysv4
-               ;;
-       netbsd386)
-               basic_machine=i386-unknown
-               os=-netbsd
-               ;;
-       netwinder)
-               basic_machine=armv4l-rebel
-               os=-linux
-               ;;
-       news | news700 | news800 | news900)
-               basic_machine=m68k-sony
-               os=-newsos
-               ;;
-       news1000)
-               basic_machine=m68030-sony
-               os=-newsos
-               ;;
-       news-3600 | risc-news)
-               basic_machine=mips-sony
-               os=-newsos
-               ;;
-       necv70)
-               basic_machine=v70-nec
-               os=-sysv
-               ;;
-       next | m*-next )
-               basic_machine=m68k-next
-               case $os in
-                   -nextstep* )
-                       ;;
-                   -ns2*)
-                     os=-nextstep2
-                       ;;
-                   *)
-                     os=-nextstep3
-                       ;;
-               esac
-               ;;
-       nh3000)
-               basic_machine=m68k-harris
-               os=-cxux
-               ;;
-       nh[45]000)
-               basic_machine=m88k-harris
-               os=-cxux
-               ;;
-       nindy960)
-               basic_machine=i960-intel
-               os=-nindy
-               ;;
-       mon960)
-               basic_machine=i960-intel
-               os=-mon960
-               ;;
-       nonstopux)
-               basic_machine=mips-compaq
-               os=-nonstopux
-               ;;
-       np1)
-               basic_machine=np1-gould
-               ;;
-       nsr-tandem)
-               basic_machine=nsr-tandem
-               ;;
-       op50n-* | op60c-*)
-               basic_machine=hppa1.1-oki
-               os=-proelf
-               ;;
-       openrisc | openrisc-*)
-               basic_machine=or32-unknown
-               ;;
-       os400)
-               basic_machine=powerpc-ibm
-               os=-os400
-               ;;
-       OSE68000 | ose68000)
-               basic_machine=m68000-ericsson
-               os=-ose
-               ;;
-       os68k)
-               basic_machine=m68k-none
-               os=-os68k
-               ;;
-       pa-hitachi)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       paragon)
-               basic_machine=i860-intel
-               os=-osf
-               ;;
-       parisc)
-               basic_machine=hppa-unknown
-               os=-linux
-               ;;
-       parisc-*)
-               basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
-               ;;
-       pbd)
-               basic_machine=sparc-tti
-               ;;
-       pbb)
-               basic_machine=m68k-tti
-               ;;
-       pc532 | pc532-*)
-               basic_machine=ns32k-pc532
-               ;;
-       pc98)
-               basic_machine=i386-pc
-               ;;
-       pc98-*)
-               basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentium | p5 | k5 | k6 | nexgen | viac3)
-               basic_machine=i586-pc
-               ;;
-       pentiumpro | p6 | 6x86 | athlon | athlon_*)
-               basic_machine=i686-pc
-               ;;
-       pentiumii | pentium2 | pentiumiii | pentium3)
-               basic_machine=i686-pc
-               ;;
-       pentium4)
-               basic_machine=i786-pc
-               ;;
-       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentiumpro-* | p6-* | 6x86-* | athlon-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentium4-*)
-               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pn)
-               basic_machine=pn-gould
-               ;;
-       power)  basic_machine=power-ibm
-               ;;
-       ppc)    basic_machine=powerpc-unknown
-               ;;
-       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppcle | powerpclittle | ppc-le | powerpc-little)
-               basic_machine=powerpcle-unknown
-               ;;
-       ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppc64)  basic_machine=powerpc64-unknown
-               ;;
-       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-               basic_machine=powerpc64le-unknown
-               ;;
-       ppc64le-* | powerpc64little-*)
-               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ps2)
-               basic_machine=i386-ibm
-               ;;
-       pw32)
-               basic_machine=i586-unknown
-               os=-pw32
-               ;;
-       rdos)
-               basic_machine=i386-pc
-               os=-rdos
-               ;;
-       rom68k)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       rm[46]00)
-               basic_machine=mips-siemens
-               ;;
-       rtpc | rtpc-*)
-               basic_machine=romp-ibm
-               ;;
-       s390 | s390-*)
-               basic_machine=s390-ibm
-               ;;
-       s390x | s390x-*)
-               basic_machine=s390x-ibm
-               ;;
-       sa29200)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       sb1)
-               basic_machine=mipsisa64sb1-unknown
-               ;;
-       sb1el)
-               basic_machine=mipsisa64sb1el-unknown
-               ;;
-       sde)
-               basic_machine=mipsisa32-sde
-               os=-elf
-               ;;
-       sei)
-               basic_machine=mips-sei
-               os=-seiux
-               ;;
-       sequent)
-               basic_machine=i386-sequent
-               ;;
-       sh)
-               basic_machine=sh-hitachi
-               os=-hms
-               ;;
-       sh5el)
-               basic_machine=sh5le-unknown
-               ;;
-       sh64)
-               basic_machine=sh64-unknown
-               ;;
-       sparclite-wrs | simso-wrs)
-               basic_machine=sparclite-wrs
-               os=-vxworks
-               ;;
-       sps7)
-               basic_machine=m68k-bull
-               os=-sysv2
-               ;;
-       spur)
-               basic_machine=spur-unknown
-               ;;
-       st2000)
-               basic_machine=m68k-tandem
-               ;;
-       stratus)
-               basic_machine=i860-stratus
-               os=-sysv4
-               ;;
-       sun2)
-               basic_machine=m68000-sun
-               ;;
-       sun2os3)
-               basic_machine=m68000-sun
-               os=-sunos3
-               ;;
-       sun2os4)
-               basic_machine=m68000-sun
-               os=-sunos4
-               ;;
-       sun3os3)
-               basic_machine=m68k-sun
-               os=-sunos3
-               ;;
-       sun3os4)
-               basic_machine=m68k-sun
-               os=-sunos4
-               ;;
-       sun4os3)
-               basic_machine=sparc-sun
-               os=-sunos3
-               ;;
-       sun4os4)
-               basic_machine=sparc-sun
-               os=-sunos4
-               ;;
-       sun4sol2)
-               basic_machine=sparc-sun
-               os=-solaris2
-               ;;
-       sun3 | sun3-*)
-               basic_machine=m68k-sun
-               ;;
-       sun4)
-               basic_machine=sparc-sun
-               ;;
-       sun386 | sun386i | roadrunner)
-               basic_machine=i386-sun
-               ;;
-       sv1)
-               basic_machine=sv1-cray
-               os=-unicos
-               ;;
-       symmetry)
-               basic_machine=i386-sequent
-               os=-dynix
-               ;;
-       t3e)
-               basic_machine=alphaev5-cray
-               os=-unicos
-               ;;
-       t90)
-               basic_machine=t90-cray
-               os=-unicos
-               ;;
-       tic54x | c54x*)
-               basic_machine=tic54x-unknown
-               os=-coff
-               ;;
-       tic55x | c55x*)
-               basic_machine=tic55x-unknown
-               os=-coff
-               ;;
-       tic6x | c6x*)
-               basic_machine=tic6x-unknown
-               os=-coff
-               ;;
-       tile*)
-               basic_machine=tile-unknown
-               os=-linux-gnu
-               ;;
-       tx39)
-               basic_machine=mipstx39-unknown
-               ;;
-       tx39el)
-               basic_machine=mipstx39el-unknown
-               ;;
-       toad1)
-               basic_machine=pdp10-xkl
-               os=-tops20
-               ;;
-       tower | tower-32)
-               basic_machine=m68k-ncr
-               ;;
-       tpf)
-               basic_machine=s390x-ibm
-               os=-tpf
-               ;;
-       udi29k)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       ultra3)
-               basic_machine=a29k-nyu
-               os=-sym1
-               ;;
-       v810 | necv810)
-               basic_machine=v810-nec
-               os=-none
-               ;;
-       vaxv)
-               basic_machine=vax-dec
-               os=-sysv
-               ;;
-       vms)
-               basic_machine=vax-dec
-               os=-vms
-               ;;
-       vpp*|vx|vx-*)
-               basic_machine=f301-fujitsu
-               ;;
-       vxworks960)
-               basic_machine=i960-wrs
-               os=-vxworks
-               ;;
-       vxworks68)
-               basic_machine=m68k-wrs
-               os=-vxworks
-               ;;
-       vxworks29k)
-               basic_machine=a29k-wrs
-               os=-vxworks
-               ;;
-       w65*)
-               basic_machine=w65-wdc
-               os=-none
-               ;;
-       w89k-*)
-               basic_machine=hppa1.1-winbond
-               os=-proelf
-               ;;
-       xbox)
-               basic_machine=i686-pc
-               os=-mingw32
-               ;;
-       xps | xps100)
-               basic_machine=xps100-honeywell
-               ;;
-       ymp)
-               basic_machine=ymp-cray
-               os=-unicos
-               ;;
-       z8k-*-coff)
-               basic_machine=z8k-unknown
-               os=-sim
-               ;;
-       none)
-               basic_machine=none-none
-               os=-none
-               ;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-       w89k)
-               basic_machine=hppa1.1-winbond
-               ;;
-       op50n)
-               basic_machine=hppa1.1-oki
-               ;;
-       op60c)
-               basic_machine=hppa1.1-oki
-               ;;
-       romp)
-               basic_machine=romp-ibm
-               ;;
-       mmix)
-               basic_machine=mmix-knuth
-               ;;
-       rs6000)
-               basic_machine=rs6000-ibm
-               ;;
-       vax)
-               basic_machine=vax-dec
-               ;;
-       pdp10)
-               # there are many clones, so DEC is not a safe bet
-               basic_machine=pdp10-unknown
-               ;;
-       pdp11)
-               basic_machine=pdp11-dec
-               ;;
-       we32k)
-               basic_machine=we32k-att
-               ;;
-       sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
-               basic_machine=sh-unknown
-               ;;
-       sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
-               basic_machine=sparc-sun
-               ;;
-       cydra)
-               basic_machine=cydra-cydrome
-               ;;
-       orion)
-               basic_machine=orion-highlevel
-               ;;
-       orion105)
-               basic_machine=clipper-highlevel
-               ;;
-       mac | mpw | mac-mpw)
-               basic_machine=m68k-apple
-               ;;
-       pmac | pmac-mpw)
-               basic_machine=powerpc-apple
-               ;;
-       *-unknown)
-               # Make sure to match an already-canonicalized machine name.
-               ;;
-       *)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-               exit 1
-               ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-       *-digital*)
-               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-               ;;
-       *-commodore*)
-               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-               ;;
-       *)
-               ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-       # -solaris* is a basic system type, with this one exception.
-       -solaris1 | -solaris1.*)
-               os=`echo $os | sed -e 's|solaris1|sunos4|'`
-               ;;
-       -solaris)
-               os=-solaris2
-               ;;
-       -svr4*)
-               os=-sysv4
-               ;;
-       -unixware*)
-               os=-sysv4.2uw
-               ;;
-       -gnu/linux*)
-               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-               ;;
-       # First accept the basic system types.
-       # The portable systems comes first.
-       # Each alternative MUST END IN A *, to match a version number.
-       # -sysv* is not here because it comes later, after sysvr4.
-       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-             | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* \
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-             | -openbsd* | -solidbsd* \
-             | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-             | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -chorusos* | -chorusrdb* \
-             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
-             | -uxpv* | -beos* | -mpeix* | -udk* \
-             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
-       # Remember, each alternative MUST END IN *, to match a version number.
-               ;;
-       -qnx*)
-               case $basic_machine in
-                   x86-* | i*86-*)
-                       ;;
-                   *)
-                       os=-nto$os
-                       ;;
-               esac
-               ;;
-       -nto-qnx*)
-               ;;
-       -nto*)
-               os=`echo $os | sed -e 's|nto|nto-qnx|'`
-               ;;
-       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-             | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
-             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-               ;;
-       -mac*)
-               os=`echo $os | sed -e 's|mac|macos|'`
-               ;;
-       -linux-dietlibc)
-               os=-linux-dietlibc
-               ;;
-       -linux*)
-               os=`echo $os | sed -e 's|linux|linux-gnu|'`
-               ;;
-       -sunos5*)
-               os=`echo $os | sed -e 's|sunos5|solaris2|'`
-               ;;
-       -sunos6*)
-               os=`echo $os | sed -e 's|sunos6|solaris3|'`
-               ;;
-       -opened*)
-               os=-openedition
-               ;;
-        -os400*)
-               os=-os400
-               ;;
-       -wince*)
-               os=-wince
-               ;;
-       -osfrose*)
-               os=-osfrose
-               ;;
-       -osf*)
-               os=-osf
-               ;;
-       -utek*)
-               os=-bsd
-               ;;
-       -dynix*)
-               os=-bsd
-               ;;
-       -acis*)
-               os=-aos
-               ;;
-       -atheos*)
-               os=-atheos
-               ;;
-       -syllable*)
-               os=-syllable
-               ;;
-       -386bsd)
-               os=-bsd
-               ;;
-       -ctix* | -uts*)
-               os=-sysv
-               ;;
-       -nova*)
-               os=-rtmk-nova
-               ;;
-       -ns2 )
-               os=-nextstep2
-               ;;
-       -nsk*)
-               os=-nsk
-               ;;
-       # Preserve the version number of sinix5.
-       -sinix5.*)
-               os=`echo $os | sed -e 's|sinix|sysv|'`
-               ;;
-       -sinix*)
-               os=-sysv4
-               ;;
-        -tpf*)
-               os=-tpf
-               ;;
-       -triton*)
-               os=-sysv3
-               ;;
-       -oss*)
-               os=-sysv3
-               ;;
-       -svr4)
-               os=-sysv4
-               ;;
-       -svr3)
-               os=-sysv3
-               ;;
-       -sysvr4)
-               os=-sysv4
-               ;;
-       # This must come after -sysvr4.
-       -sysv*)
-               ;;
-       -ose*)
-               os=-ose
-               ;;
-       -es1800*)
-               os=-ose
-               ;;
-       -xenix)
-               os=-xenix
-               ;;
-       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-               os=-mint
-               ;;
-       -aros*)
-               os=-aros
-               ;;
-       -kaos*)
-               os=-kaos
-               ;;
-       -zvmoe)
-               os=-zvmoe
-               ;;
-       -none)
-               ;;
-       *)
-               # Get rid of the `-' at the beginning of $os.
-               os=`echo $os | sed 's/[^-]*-//'`
-               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-               exit 1
-               ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-        score-*)
-               os=-elf
-               ;;
-        spu-*)
-               os=-elf
-               ;;
-       *-acorn)
-               os=-riscix1.2
-               ;;
-       arm*-rebel)
-               os=-linux
-               ;;
-       arm*-semi)
-               os=-aout
-               ;;
-        c4x-* | tic4x-*)
-               os=-coff
-               ;;
-       # This must come before the *-dec entry.
-       pdp10-*)
-               os=-tops20
-               ;;
-       pdp11-*)
-               os=-none
-               ;;
-       *-dec | vax-*)
-               os=-ultrix4.2
-               ;;
-       m68*-apollo)
-               os=-domain
-               ;;
-       i386-sun)
-               os=-sunos4.0.2
-               ;;
-       m68000-sun)
-               os=-sunos3
-               # This also exists in the configure program, but was not the
-               # default.
-               # os=-sunos4
-               ;;
-       m68*-cisco)
-               os=-aout
-               ;;
-        mep-*)
-               os=-elf
-               ;;
-       mips*-cisco)
-               os=-elf
-               ;;
-       mips*-*)
-               os=-elf
-               ;;
-       or32-*)
-               os=-coff
-               ;;
-       *-tti)  # must be before sparc entry or we get the wrong os.
-               os=-sysv3
-               ;;
-       sparc-* | *-sun)
-               os=-sunos4.1.1
-               ;;
-       *-be)
-               os=-beos
-               ;;
-       *-haiku)
-               os=-haiku
-               ;;
-       *-ibm)
-               os=-aix
-               ;;
-       *-knuth)
-               os=-mmixware
-               ;;
-       *-wec)
-               os=-proelf
-               ;;
-       *-winbond)
-               os=-proelf
-               ;;
-       *-oki)
-               os=-proelf
-               ;;
-       *-hp)
-               os=-hpux
-               ;;
-       *-hitachi)
-               os=-hiux
-               ;;
-       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-               os=-sysv
-               ;;
-       *-cbm)
-               os=-amigaos
-               ;;
-       *-dg)
-               os=-dgux
-               ;;
-       *-dolphin)
-               os=-sysv3
-               ;;
-       m68k-ccur)
-               os=-rtu
-               ;;
-       m88k-omron*)
-               os=-luna
-               ;;
-       *-next )
-               os=-nextstep
-               ;;
-       *-sequent)
-               os=-ptx
-               ;;
-       *-crds)
-               os=-unos
-               ;;
-       *-ns)
-               os=-genix
-               ;;
-       i370-*)
-               os=-mvs
-               ;;
-       *-next)
-               os=-nextstep3
-               ;;
-       *-gould)
-               os=-sysv
-               ;;
-       *-highlevel)
-               os=-bsd
-               ;;
-       *-encore)
-               os=-bsd
-               ;;
-       *-sgi)
-               os=-irix
-               ;;
-       *-siemens)
-               os=-sysv4
-               ;;
-       *-masscomp)
-               os=-rtu
-               ;;
-       f30[01]-fujitsu | f700-fujitsu)
-               os=-uxpv
-               ;;
-       *-rom68k)
-               os=-coff
-               ;;
-       *-*bug)
-               os=-coff
-               ;;
-       *-apple)
-               os=-macos
-               ;;
-       *-atari*)
-               os=-mint
-               ;;
-       *)
-               os=-none
-               ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-       *-unknown)
-               case $os in
-                       -riscix*)
-                               vendor=acorn
-                               ;;
-                       -sunos*)
-                               vendor=sun
-                               ;;
-                       -aix*)
-                               vendor=ibm
-                               ;;
-                       -beos*)
-                               vendor=be
-                               ;;
-                       -hpux*)
-                               vendor=hp
-                               ;;
-                       -mpeix*)
-                               vendor=hp
-                               ;;
-                       -hiux*)
-                               vendor=hitachi
-                               ;;
-                       -unos*)
-                               vendor=crds
-                               ;;
-                       -dgux*)
-                               vendor=dg
-                               ;;
-                       -luna*)
-                               vendor=omron
-                               ;;
-                       -genix*)
-                               vendor=ns
-                               ;;
-                       -mvs* | -opened*)
-                               vendor=ibm
-                               ;;
-                       -os400*)
-                               vendor=ibm
-                               ;;
-                       -ptx*)
-                               vendor=sequent
-                               ;;
-                       -tpf*)
-                               vendor=ibm
-                               ;;
-                       -vxsim* | -vxworks* | -windiss*)
-                               vendor=wrs
-                               ;;
-                       -aux*)
-                               vendor=apple
-                               ;;
-                       -hms*)
-                               vendor=hitachi
-                               ;;
-                       -mpw* | -macos*)
-                               vendor=apple
-                               ;;
-                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-                               vendor=atari
-                               ;;
-                       -vos*)
-                               vendor=stratus
-                               ;;
-               esac
-               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-               ;;
-esac
-
-echo $basic_machine$os
-exit
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/zephyr/configure b/zephyr/configure
deleted file mode 100755 (executable)
index fc3191b..0000000
+++ /dev/null
@@ -1,27567 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61.
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-as_nl='
-'
-IFS=" ""       $as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-
-  if test $as_have_required = yes &&    (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
-else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  case $as_dir in
-        /*)
-          for as_base in sh bash ksh sh5; do
-            as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
-          done;;
-       esac
-done
-IFS=$as_save_IFS
-
-
-      for as_shell in $as_candidate_shells $SHELL; do
-        # Try only shells that exist, to save several forks.
-        if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-               { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-              as_have_required=yes
-              if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-        done
-        export CONFIG_SHELL
-        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell autoconf@gnu.org about your system,
-  echo including any error possibly output before this
-  echo message
-}
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-    as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-        test -d "$1/.";
-      else
-       case $1 in
-        -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
-       echo_test_string="`eval $cmd`" &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for dir in $PATH /usr/ucb; do
-    IFS="$lt_save_ifs"
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-        test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-        echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-        test "X$echo_testing_string" = "X$echo_test_string"; then
-       # Cool, printf works
-       :
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-       export CONFIG_SHELL
-       SHELL="$CONFIG_SHELL"
-       export SHELL
-       echo="$CONFIG_SHELL $0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       echo="$CONFIG_SHELL $0 --fallback-echo"
-      else
-       # maybe with a smaller string...
-       prev=:
-
-       for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-         if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-         then
-           break
-         fi
-         prev="$cmd"
-       done
-
-       if test "$prev" != 'sed 50q "$0"'; then
-         echo_test_string=`eval $prev`
-         export echo_test_string
-         exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-       else
-         # Oops.  We lost completely, so just stick with echo.
-         echo=echo
-       fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
-
-tagnames=${tagnames+${tagnames},}CXX
-
-tagnames=${tagnames+${tagnames},}F77
-
-exec 7<&0 </dev/null 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="server/server.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL
-PATH_SEPARATOR
-PACKAGE_NAME
-PACKAGE_TARNAME
-PACKAGE_VERSION
-PACKAGE_STRING
-PACKAGE_BUGREPORT
-exec_prefix
-prefix
-program_transform_name
-bindir
-sbindir
-libexecdir
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-lbindir
-lsbindir
-build
-build_cpu
-build_vendor
-build_os
-host
-host_cpu
-host_vendor
-host_os
-target
-target_cpu
-target_vendor
-target_os
-CC
-CFLAGS
-LDFLAGS
-CPPFLAGS
-ac_ct_CC
-EXEEXT
-OBJEXT
-YACC
-YFLAGS
-LEX
-LEX_OUTPUT_ROOT
-LEXLIB
-INSTALL_PROGRAM
-INSTALL_SCRIPT
-INSTALL_DATA
-RANLIB
-GREP
-EGREP
-LN_S
-ECHO
-AR
-STRIP
-CPP
-CXX
-CXXFLAGS
-ac_ct_CXX
-CXXCPP
-F77
-FFLAGS
-ac_ct_F77
-LIBTOOL
-XMKMF
-X_CFLAGS
-X_PRE_LIBS
-X_LIBS
-X_EXTRA_LIBS
-XCLIENTS
-ZWGC_LIBX11
-TLIB
-RLIB
-SLIB
-KRB4_LIBS
-krb5config
-KRB5_LIBS
-HESIOD_LIBS
-REGEX_LIBS
-ARES_LIBS
-LIBOBJS
-LTLIBOBJS'
-ac_subst_files=''
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-YACC
-YFLAGS
-CPP
-CXX
-CXXFLAGS
-CCC
-CXXCPP
-F77
-FFLAGS
-XMKMF'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *)   ac_optarg=yes ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-    datadir=$ac_optarg ;;
-
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=\$ac_optarg ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=no ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute directory names.
-for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
-               datadir sysconfdir sharedstatedir localstatedir includedir \
-               oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-               libdir localedir mandir
-do
-  eval ac_val=\$$ac_var
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; }
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { echo "$as_me: error: Working directory cannot be determined" >&2
-   { (exit 1); exit 1; }; }
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { echo "$as_me: error: pwd does not report name of working directory" >&2
-   { (exit 1); exit 1; }; }
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$0" ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$0" : 'X\(//\)[^/]' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-       cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
-   { (exit 1); exit 1; }; }
-       pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                         [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                         [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR          info documentation [DATAROOTDIR/info]
-  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR           man documentation [DATAROOTDIR/man]
-  --docdir=DIR           documentation root [DATAROOTDIR/doc/PACKAGE]
-  --htmldir=DIR          html documentation [DOCDIR]
-  --dvidir=DIR           dvi documentation [DOCDIR]
-  --pdfdir=DIR           pdf documentation [DOCDIR]
-  --psdir=DIR            ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-X features:
-  --x-includes=DIR    X include files are in DIR
-  --x-libraries=DIR   X library files are in DIR
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-  --target=TARGET   configure for building compilers for TARGET [HOST]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-shared[=PKGS]  build shared libraries [default=yes]
-  --enable-static[=PKGS]  build static libraries [default=yes]
-  --enable-fast-install[=PKGS]
-                          optimize for fast installation [default=yes]
-  --disable-libtool-lock  avoid locking (might break parallel builds)
-  --enable-cmu-zwgcplus   enable CMU zwgcplus extensions
-  --enable-cmu-zctl-punt  enable CMU zctl punt extensions
-  --enable-cmu-hm-flush-restrict   enable CMU zctl hm flush restriction
-  --enable-cmu-opstaff-locate-self enable CMU opstaff locate-self ability
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-pic              try to use only PIC/non-PIC objects [default=use
-                          both]
-  --with-tags[=TAGS]      include additional configurations [automatic]
-  --with-x                use the X Window System
-  --with-krb4=PREFIX      Use Kerberos 4
-  --with-krb5=PREFIX      Use Kerberos 5
-  --with-hesiod=PREFIX    Use Hesiod
-  --with-regex=PREFIX     Use installed regex library
-  --with-com_err=PREFIX   Specify location of com_err
-  --with-ss=PREFIX        Specify location of ss (requires com_err)
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
-  YACC        The `Yet Another C Compiler' implementation to use. Defaults to
-              the first program found out of: `bison -y', `byacc', `yacc'.
-  YFLAGS      The list of arguments that will be passed by default to $YACC.
-              This script will default YFLAGS to the empty string to avoid a
-              default value of `-d' given by some make applications.
-  CPP         C preprocessor
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-  CXXCPP      C++ preprocessor
-  F77         Fortran 77 compiler command
-  FFLAGS      Fortran 77 compiler flags
-  XMKMF       Path to xmkmf, Makefile generator for X Window System
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" || continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
-  done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
-  cat <<\_ACEOF
-configure
-generated by GNU Autoconf 2.61
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit
-fi
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-       ac_must_keep_next=false # Got value, back to normal.
-      else
-       case $ac_arg in
-         *=* | --config-cache | -C | -disable-* | --disable-* \
-         | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-         | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-         | -with-* | --with-* | -without-* | --without-* | --x)
-           case "$ac_configure_args0 " in
-             "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-           esac
-           ;;
-         -* ) ac_must_keep_next=true ;;
-       esac
-      fi
-      ac_configure_args="$ac_configure_args '$ac_arg'"
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      *) $as_unset $ac_var ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-       "s/'\''/'\''\\\\'\'''\''/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------------- ##
-## File substitutions. ##
-## ------------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-       eval ac_val=\$$ac_var
-       case $ac_val in
-       *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-       esac
-       echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -n "$CONFIG_SITE"; then
-  set x "$CONFIG_SITE"
-elif test "x$prefix" != xNONE; then
-  set x "$prefix/share/config.site" "$prefix/etc/config.site"
-else
-  set x "$ac_default_prefix/share/config.site" \
-       "$ac_default_prefix/etc/config.site"
-fi
-shift
-for ac_site_file
-do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-       { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-       { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-       { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-       ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-test -d h || mkdir h
-test -d h/zephyr || mkdir h/zephyr
-
-test -z "$lbindir" && lbindir='${bindir}'
-test -z "$lsbindir" && lsbindir='${sbindir}'
-
-
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
-   { (exit 1); exit 1; }; }
-
-{ echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
-if test "${ac_cv_build+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-echo "$as_me: error: invalid value of canonical build" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
-if test "${ac_cv_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-echo "$as_me: error: invalid value of canonical host" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-{ echo "$as_me:$LINENO: checking target system type" >&5
-echo $ECHO_N "checking target system type... $ECHO_C" >&6; }
-if test "${ac_cv_target+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "x$target_alias" = x; then
-  ac_cv_target=$ac_cv_host
-else
-  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
-    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5
-echo "${ECHO_T}$ac_cv_target" >&6; }
-case $ac_cv_target in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5
-echo "$as_me: error: invalid value of canonical target" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-target=$ac_cv_target
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_target
-shift
-target_cpu=$1
-target_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-target_os=$*
-IFS=$ac_save_IFS
-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
-
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
-  test "$program_prefix$program_suffix$program_transform_name" = \
-    NONENONEs,x,x, &&
-  program_prefix=${target_alias}-
-cat >>confdefs.h <<_ACEOF
-#define MACHINE_TYPE "$host"
-_ACEOF
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-#
-# List of possible output files, starting from the most likely.
-# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
-# only as a last resort.  b.out is created by i960 compilers.
-ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
-#
-# The IRIX 6 linker writes into existing files which may not be
-# executable, retaining their permissions.  Remove them first so a
-# subsequent execution test works.
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
-
-if { (ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
-       ;;
-    [ab].out )
-       # We found the default executable, but exeext='' is most
-       # certainly right.
-       break;;
-    *.* )
-        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-       then :; else
-          ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-       fi
-       # We set ac_cv_exeext here because the later test for it is not
-       # safe: cross compilers may not add the suffix if given an `-o'
-       # argument, so we may need to know it at that point already.
-       # Even if this section looks crufty: it has the advantage of
-       # actually working.
-       break;;
-    * )
-       break;;
-  esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
-  ac_file=''
-fi
-
-{ echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6; }
-if test -z "$ac_file"; then
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-       cross_compiling=yes
-    else
-       { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-  fi
-fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6; }
-
-{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-         break;;
-    * ) break;;
-  esac
-done
-else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
-if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_c_werror_flag=$ac_save_c_werror_flag
-        CFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_c89=$ac_arg
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6; } ;;
-  xno)
-    { echo "$as_me:$LINENO: result: unsupported" >&5
-echo "${ECHO_T}unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-for ac_prog in 'bison -y' byacc
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_YACC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$YACC"; then
-  ac_cv_prog_YACC="$YACC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_YACC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-YACC=$ac_cv_prog_YACC
-if test -n "$YACC"; then
-  { echo "$as_me:$LINENO: result: $YACC" >&5
-echo "${ECHO_T}$YACC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$YACC" && break
-done
-test -n "$YACC" || YACC="yacc"
-
-
-for ac_prog in flex lex
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_LEX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$LEX"; then
-  ac_cv_prog_LEX="$LEX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_LEX="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-LEX=$ac_cv_prog_LEX
-if test -n "$LEX"; then
-  { echo "$as_me:$LINENO: result: $LEX" >&5
-echo "${ECHO_T}$LEX" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$LEX" && break
-done
-test -n "$LEX" || LEX=":"
-
-if test "x$LEX" != "x:"; then
-  cat >conftest.l <<_ACEOF
-%%
-a { ECHO; }
-b { REJECT; }
-c { yymore (); }
-d { yyless (1); }
-e { yyless (input () != 0); }
-f { unput (yytext[0]); }
-. { BEGIN INITIAL; }
-%%
-#ifdef YYTEXT_POINTER
-extern char *yytext;
-#endif
-int
-main (void)
-{
-  return ! yylex () + ! yywrap ();
-}
-_ACEOF
-{ (ac_try="$LEX conftest.l"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$LEX conftest.l") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ echo "$as_me:$LINENO: checking lex output file root" >&5
-echo $ECHO_N "checking lex output file root... $ECHO_C" >&6; }
-if test "${ac_cv_prog_lex_root+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-if test -f lex.yy.c; then
-  ac_cv_prog_lex_root=lex.yy
-elif test -f lexyy.c; then
-  ac_cv_prog_lex_root=lexyy
-else
-  { { echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5
-echo "$as_me: error: cannot find output from $LEX; giving up" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_root" >&6; }
-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
-
-if test -z "${LEXLIB+set}"; then
-  { echo "$as_me:$LINENO: checking lex library" >&5
-echo $ECHO_N "checking lex library... $ECHO_C" >&6; }
-if test "${ac_cv_lib_lex+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-    ac_save_LIBS=$LIBS
-    ac_cv_lib_lex='none needed'
-    for ac_lib in '' -lfl -ll; do
-      LIBS="$ac_lib $ac_save_LIBS"
-      cat >conftest.$ac_ext <<_ACEOF
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_lex=$ac_lib
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-      test "$ac_cv_lib_lex" != 'none needed' && break
-    done
-    LIBS=$ac_save_LIBS
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_lex" >&5
-echo "${ECHO_T}$ac_cv_lib_lex" >&6; }
-  test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5
-echo $ECHO_N "checking whether yytext is a pointer... $ECHO_C" >&6; }
-if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # POSIX says lex can declare yytext either as a pointer or an array; the
-# default is implementation-dependent.  Figure out which it is, since
-# not all implementations provide the %pointer and %array declarations.
-ac_cv_prog_lex_yytext_pointer=no
-ac_save_LIBS=$LIBS
-LIBS="$LEXLIB $ac_save_LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#define YYTEXT_POINTER 1
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_prog_lex_yytext_pointer=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_save_LIBS
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_yytext_pointer" >&6; }
-if test $ac_cv_prog_lex_yytext_pointer = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define YYTEXT_POINTER 1
-_ACEOF
-
-fi
-rm -f conftest.l $LEX_OUTPUT_ROOT.c
-
-fi
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-       if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
-         if test $ac_prog = install &&
-           grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-           # AIX install.  It has an incompatible calling convention.
-           :
-         elif test $ac_prog = install &&
-           grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-           # program-specific install script used by HP pwplus--don't use.
-           :
-         else
-           ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-           break 3
-         fi
-       fi
-      done
-    done
-    ;;
-esac
-done
-IFS=$as_save_IFS
-
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-# Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then
-  enableval=$enable_shared; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_shared=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_shared=yes
-fi
-
-
-# Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then
-  enableval=$enable_static; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_static=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_static=yes
-fi
-
-
-# Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
-  enableval=$enable_fast_install; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_fast_install=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_fast_install=yes
-fi
-
-
-{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
-if test "${lt_cv_path_SED+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && break
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-SED=$lt_cv_path_SED
-
-fi
-
-{ echo "$as_me:$LINENO: result: $SED" >&5
-echo "${ECHO_T}$SED" >&6; }
-
-{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
-echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Extract the first word of "grep ggrep" to use in msg output
-if test -z "$GREP"; then
-set dummy grep ggrep; ac_prog_name=$2
-if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_path_GREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in grep ggrep; do
-  for ac_exec_ext in '' $ac_executable_extensions; do
-    ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-    { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-    # Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-
-    $ac_path_GREP_found && break 3
-  done
-done
-
-done
-IFS=$as_save_IFS
-
-
-fi
-
-GREP="$ac_cv_path_GREP"
-if test -z "$GREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     # Extract the first word of "egrep" to use in msg output
-if test -z "$EGREP"; then
-set dummy egrep; ac_prog_name=$2
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_path_EGREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in egrep; do
-  for ac_exec_ext in '' $ac_executable_extensions; do
-    ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-    { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-    # Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-
-    $ac_path_EGREP_found && break 3
-  done
-done
-
-done
-IFS=$as_save_IFS
-
-
-fi
-
-EGREP="$ac_cv_path_EGREP"
-if test -z "$EGREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-
-   fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
-else
-  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break
-       ;;
-      *)
-       test "$with_gnu_ld" != yes && break
-       ;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_ld_reload_flag='-r'
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-
-{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
-echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; }
-if test "${lt_cv_path_NM+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
-    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-      */dev/null* | *'Invalid file or object type'*)
-       lt_cv_path_NM="$tmp_nm -B"
-       break
-        ;;
-      *)
-       case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-       */dev/null*)
-         lt_cv_path_NM="$tmp_nm -p"
-         break
-         ;;
-       *)
-         lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-         continue # so that we can try to find one that supports BSD flags
-         ;;
-       esac
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
-echo "${ECHO_T}$lt_cv_path_NM" >&6; }
-NM="$lt_cv_path_NM"
-
-{ echo "$as_me:$LINENO: checking whether ln -s works" >&5
-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6; }
-fi
-
-{ echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
-echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi4*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | kfreebsd*-gnu)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case "$host_cpu" in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  case $host_cpu in
-  alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64*)
-    lt_cv_deplibs_check_method=pass_all ;;
-  *)
-    # glibc up to 2.1.1 does not perform some relocations on ARM
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-nto-qnx*)
-  lt_cv_deplibs_check_method=unknown
-  ;;
-
-openbsd*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
-  else
-    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sco3.2v5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; }
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
-  enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *ELF-32*)
-      HPUX_IA64_MODE="32"
-      ;;
-    *ELF-64*)
-      HPUX_IA64_MODE="64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '#line 4148 "configure"' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-   if test "$lt_cv_prog_gnu_ld" = yes; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -melf32bsmip"
-      ;;
-    *N32*)
-      LD="${LD-ld} -melf32bmipn32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -melf64bmip"
-      ;;
-    esac
-   else
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-   fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    case "`/usr/bin/file conftest.o`" in
-    *32-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_i386"
-          ;;
-        ppc64-*linux*|powerpc64-*linux*)
-          LD="${LD-ld} -m elf32ppclinux"
-          ;;
-        s390x-*linux*)
-          LD="${LD-ld} -m elf_s390"
-          ;;
-        sparc64-*linux*)
-          LD="${LD-ld} -m elf32_sparc"
-          ;;
-      esac
-      ;;
-    *64-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        ppc*-*linux*|powerpc*-*linux*)
-          LD="${LD-ld} -m elf64ppc"
-          ;;
-        s390*-*linux*)
-          LD="${LD-ld} -m elf64_s390"
-          ;;
-        sparc*-*linux*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  lt_cv_cc_needs_belf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       lt_cv_cc_needs_belf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-     ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-
-esac
-
-need_locks="$enable_libtool_lock"
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_stdc=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-                  (('a' <= (c) && (c) <= 'i') \
-                    || ('j' <= (c) && (c) <= 'r') \
-                    || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-       || toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                 inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-for ac_header in dlfcn.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; }
-GXX=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cxx_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CXXFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-        CXXFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cxx_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
-echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; }
-if test -z "$CXXCPP"; then
-  if test "${ac_cv_prog_CXXCPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$F77"; then
-  ac_cv_prog_F77="$F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-F77=$ac_cv_prog_F77
-if test -n "$F77"; then
-  { echo "$as_me:$LINENO: result: $F77" >&5
-echo "${ECHO_T}$F77" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    test -n "$F77" && break
-  done
-fi
-if test -z "$F77"; then
-  ac_ct_F77=$F77
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_F77"; then
-  ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_F77="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_F77=$ac_cv_prog_ac_ct_F77
-if test -n "$ac_ct_F77"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
-echo "${ECHO_T}$ac_ct_F77" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$ac_ct_F77" && break
-done
-
-  if test "x$ac_ct_F77" = x; then
-    F77=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    F77=$ac_ct_F77
-  fi
-fi
-
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-rm -f a.out
-
-# If we don't use `.F' as extension, the preprocessor is not run on the
-# input file.  (Note that this only needs to work for GNU compilers.)
-ac_save_ext=$ac_ext
-ac_ext=F
-{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; }
-if test "${ac_cv_f77_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-      program main
-#ifndef __GNUC__
-       choke me
-#endif
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_f77_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_f77_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; }
-ac_ext=$ac_save_ext
-ac_test_FFLAGS=${FFLAGS+set}
-ac_save_FFLAGS=$FFLAGS
-FFLAGS=
-{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
-echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_f77_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  FFLAGS=-g
-cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_f77_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_f77_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_prog_f77_g=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
-echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; }
-if test "$ac_test_FFLAGS" = set; then
-  FFLAGS=$ac_save_FFLAGS
-elif test $ac_cv_prog_f77_g = yes; then
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-g -O2"
-  else
-    FFLAGS="-g"
-  fi
-else
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-O2"
-  else
-    FFLAGS=
-  fi
-fi
-
-G77=`test $ac_compiler_gnu = yes && echo yes`
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
-# find the maximum length of command line arguments
-{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-    i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
- *)
-    # If test is not a shell built-in, we'll probably end up computing a
-    # maximum length that is only half of the actual maximum length, but
-    # we can't tell.
-    while (test "X"`$CONFIG_SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
-              = "XX$teststring") >/dev/null 2>&1 &&
-           new_result=`expr "X$teststring" : ".*" 2>&1` &&
-           lt_cv_sys_max_cmd_len=$new_result &&
-           test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      teststring=$teststring$teststring
-    done
-    teststring=
-    # Add a significant safety factor because C++ compilers can tack on massive
-    # amounts of additional arguments before passing them to the linker.
-    # It appears as though 1/2 is a usable value.
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    ;;
-  esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
-  { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; }
-else
-  { echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6; }
-fi
-
-
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-irix* | nonstopux*)
-  symcode='[BCDEGRST]'
-  ;;
-osf*)
-  symcode='[BCDEGQRST]'
-  ;;
-solaris* | sysv5*)
-  symcode='[BDRT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[      ]\($symcode$symcode*\)[         ][      ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-       mv -f "$nlist"T "$nlist"
-      else
-       rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-       if grep ' nm_test_func$' "$nlist" >/dev/null; then
-         cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-         # Now generate the symbol file.
-         eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-         cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-         cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-         # Now try linking the two files.
-         mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
-         LIBS="conftstm.$ac_objext"
-         CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-         if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext}; then
-           pipe_works=yes
-         fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
-       else
-         echo "cannot find nm_test_func in $nlist" >&5
-       fi
-      else
-       echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { echo "$as_me:$LINENO: result: failed" >&5
-echo "${ECHO_T}failed" >&6; }
-else
-  { echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6; }
-fi
-
-{ echo "$as_me:$LINENO: checking for objdir" >&5
-echo $ECHO_N "checking for objdir... $ECHO_C" >&6; }
-if test "${lt_cv_objdir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
-echo "${ECHO_T}$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_AR" = x; then
-    AR="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
-    ;;
-  *)
-    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
-      if test -n "$file_magic_test_file"; then
-       case $deplibs_check_method in
-       "file_magic "*)
-         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-           $EGREP "$file_magic_regex" > /dev/null; then
-           :
-         else
-           cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-         fi ;;
-       esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    { echo "$as_me:$LINENO: checking for file" >&5
-echo $ECHO_N "checking for file... $ECHO_C" >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
-      if test -n "$file_magic_test_file"; then
-       case $deplibs_check_method in
-       "file_magic "*)
-         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-           $EGREP "$file_magic_regex" > /dev/null; then
-           :
-         else
-           cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-         fi ;;
-       esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  else
-    MAGIC_CMD=:
-  fi
-fi
-
-  fi
-  ;;
-esac
-
-enable_dlopen=no
-enable_win32_dll=no
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
-  enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then
-  withval=$with_pic; pic_mode="$withval"
-else
-  pic_mode=default
-fi
-
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-#
-# Check for any special shared library compilation flags.
-#
-lt_prog_cc_shlib=
-if test "$GCC" = no; then
-  case $host_os in
-  sco3.2v5*)
-    lt_prog_cc_shlib='-belf'
-    ;;
-  esac
-fi
-if test -n "$lt_prog_cc_shlib"; then
-  { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5
-echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;}
-  if echo "$old_CC $old_CFLAGS " | grep "[     ]$lt_prog_cc_shlib[     ]" >/dev/null; then :
-  else
-    { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
-echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
-    lt_cv_prog_cc_can_build_shared=no
-  fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_prog_compiler_static"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-     else
-       lt_prog_compiler_static_works=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; }
-
-if test x"$lt_prog_compiler_static_works" = xyes; then
-    :
-else
-    lt_prog_compiler_static=
-fi
-
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
-
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6714: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:6718: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl='-Wl,'
-    lt_prog_compiler_static='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       lt_prog_compiler_pic=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic='-fPIC'
-       ;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static='-Bstatic'
-      else
-       lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic='+Z'
-       ;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc* | ecc*)
-       lt_prog_compiler_wl='-Wl,'
-       lt_prog_compiler_pic='-KPIC'
-       lt_prog_compiler_static='-static'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      lt_prog_compiler_pic='-Kpic'
-      lt_prog_compiler_static='-dn'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl='-Qoption ld '
-      lt_prog_compiler_pic='-PIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-       lt_prog_compiler_pic='-Kconform_pic'
-       lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic='-pic'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6947: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:6951: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_prog_compiler_pic_works" = xyes; then
-    case $lt_prog_compiler_pic in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
-     esac
-else
-    lt_prog_compiler_pic=
-     lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic=
-    ;;
-  *)
-    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7007: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:7011: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  runpath_var=
-  allow_undefined_flag=
-  enable_shared_with_static_runtimes=no
-  archive_cmds=
-  archive_expsym_cmds=
-  old_archive_From_new_cmds=
-  old_archive_from_expsyms_cmds=
-  export_dynamic_flag_spec=
-  whole_archive_flag_spec=
-  thread_safe_flag_spec=
-  hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
-  hardcode_libdir_separator=
-  hardcode_direct=no
-  hardcode_minus_L=no
-  hardcode_shlibpath_var=unsupported
-  link_all_deplibs=unknown
-  hardcode_automatic=no
-  module_cmds=
-  module_expsym_cmds=
-  always_export_symbols=no
-  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-       ld_shlibs=no
-       cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       allow_undefined_flag=unsupported
-       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-       # support --undefined.  This deserves some investigation.  FIXME
-       archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec='-L$libdir'
-      allow_undefined_flag=unsupported
-      always_export_symbols=no
-      enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-       wlarc=
-      else
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-       ld_shlibs=no
-       cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    sunos4*)
-      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-  linux*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_cmds="$tmp_archive_cmds"
-      supports_anon_versioning=no
-      case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-        *\ 2.11.*) ;; # other 2.11 versions
-        *) supports_anon_versioning=yes ;;
-      esac
-      if test $supports_anon_versioning = yes; then
-        archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-      else
-        archive_expsym_cmds="$tmp_archive_cmds"
-      fi
-    else
-      ld_shlibs=no
-    fi
-    ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs" = yes; then
-      runpath_var=LD_RUN_PATH
-      hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
-      export_dynamic_flag_spec='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
-       whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-       whole_archive_flag_spec=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag=unsupported
-      always_export_symbols=yes
-      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-       # Neither direct hardcoding nor static linking is supported with a
-       # broken collect2.
-       hardcode_direct=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-       # On IA64, the linker does run time linking by default, so we don't
-       # have to do anything special.
-       aix_use_runtimelinking=no
-       exp_sym_flag='-Bexport'
-       no_entry_flag=""
-      else
-       # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       else
-         export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       fi
-       aix_use_runtimelinking=no
-
-       # Test if we are trying to use run time linking or normal
-       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
-       case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-         for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-           aix_use_runtimelinking=yes
-           break
-         fi
-         done
-       esac
-
-       exp_sym_flag='-bexport'
-       no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds=''
-      hardcode_direct=yes
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-
-      if test "$GCC" = yes; then
-       case $host_os in aix4.012|aix4.012.*)
-       # We only want to do this on AIX 4.2 and lower, the check
-       # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
-         if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-         then
-         # We have reworked collect2
-         hardcode_direct=yes
-         else
-         # We have old collect2
-         hardcode_direct=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         hardcode_minus_L=yes
-         hardcode_libdir_flag_spec='-L$libdir'
-         hardcode_libdir_separator=
-         fi
-       esac
-       shared_flag='-shared'
-      else
-       # not using gcc
-       if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-         shared_flag='-G'
-       else
-       if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
-       fi
-       fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
-       # Warning - without using the other runtime loading flags (-brtl),
-       # -berok will link without error, but may produce a broken library.
-       allow_undefined_flag='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-       archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-       if test "$host_cpu" = ia64; then
-         hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-         allow_undefined_flag="-z nodefs"
-         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-       else
-        # Determine the default libpath from the value encoded in an empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-         # Warning - without using the other run time loading flags,
-         # -berok will link without error, but may produce a broken library.
-         no_undefined_flag=' ${wl}-bernotok'
-         allow_undefined_flag=' ${wl}-berok'
-         # -bexpall does not export symbols beginning with underscore (_)
-         always_export_symbols=yes
-         # Exported symbols can be pulled into shared objects from archives
-         whole_archive_flag_spec=' '
-         archive_cmds_need_lc=yes
-         # This is similar to how AIX traditionally builds it's shared libraries.
-         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-       fi
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs=no
-      ;;
-
-    bsdi4*)
-      export_dynamic_flag_spec=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
-      ;;
-
-    darwin* | rhapsody*)
-    if test "$GXX" = yes ; then
-      archive_cmds_need_lc=no
-      case "$host_os" in
-      rhapsody* | darwin1.[012])
-       allow_undefined_flag='-undefined suppress'
-       ;;
-      *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-       allow_undefined_flag='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[012])
-            allow_undefined_flag='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            allow_undefined_flag='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-       ;;
-      esac
-       lt_int_apple_cc_single_mod=no
-       output_verbose_link_cmd='echo'
-       if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-         lt_int_apple_cc_single_mod=yes
-       fi
-       if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-         archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-       else
-        archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-          archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        else
-          archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        fi
-          module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      hardcode_direct=no
-      hardcode_automatic=yes
-      hardcode_shlibpath_var=unsupported
-      whole_archive_flag_spec='-all_load $convenience'
-      link_all_deplibs=yes
-    else
-      ld_shlibs=no
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-       archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-       archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_direct=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       *)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       esac
-      else
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       *)
-         archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       esac
-      fi
-      if test "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*)
-         hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-         hardcode_libdir_flag_spec_ld='+b $libdir'
-         hardcode_libdir_separator=:
-         hardcode_direct=no
-         hardcode_shlibpath_var=no
-         ;;
-       ia64*)
-         hardcode_libdir_flag_spec='-L$libdir'
-         hardcode_direct=no
-         hardcode_shlibpath_var=no
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L=yes
-         ;;
-       *)
-         hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-         hardcode_libdir_separator=:
-         hardcode_direct=yes
-         export_dynamic_flag_spec='${wl}-E'
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L=yes
-         ;;
-       esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec_ld='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      link_all_deplibs=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-       archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    newsos6)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_shlibpath_var=no
-      ;;
-
-    openbsd*)
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-       archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-       hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-       export_dynamic_flag_spec='${wl}-E'
-      else
-       case $host_os in
-        openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-          archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-          hardcode_libdir_flag_spec='-R$libdir'
-          ;;
-        *)
-          archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-          hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-          ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-
-    osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      else
-       allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-       $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-       # Both c and cxx compiler support -rpath directly
-       hardcode_libdir_flag_spec='-rpath $libdir'
-      fi
-      hardcode_libdir_separator=:
-      ;;
-
-    sco3.2v5*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      no_undefined_flag=' -z text'
-      if test "$GCC" = yes; then
-       archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-       archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_shlibpath_var=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-       whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
-      esac
-      link_all_deplibs=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-       # Use $CC to link under sequent, because it throws in some extra .o
-       # files that make .init and .fini sections work.
-       archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-       sni)
-         archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct=yes # is this really true???
-       ;;
-       siemens)
-         ## LD is ld it makes a PLAMLIB
-         ## CC just makes a GrossModule.
-         archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-         reload_cmds='$CC -r -o $output$reload_objs'
-         hardcode_direct=no
-        ;;
-       motorola)
-         archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-       ;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       hardcode_shlibpath_var=no
-       runpath_var=LD_RUN_PATH
-       hardcode_runpath_var=yes
-       ld_shlibs=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=no
-      hardcode_shlibpath_var=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-       archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv5*)
-      no_undefined_flag=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec=
-      hardcode_shlibpath_var=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      ld_shlibs=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5
-echo "${ECHO_T}$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag
-        allow_undefined_flag=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-         archive_cmds_need_lc=no
-        else
-         archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-          echo ' yes '
-          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-       :
-      else
-       can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       else
-               version_type=irix
-       fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # find out which ABI we are using
-  libsuff=
-  case "$host_cpu" in
-  x86_64*|s390x*|powerpc64*)
-    echo '#line 8337 "configure"' > conftest.$ac_ext
-    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-      case `/usr/bin/file conftest.$ac_objext` in
-      *64-bit*)
-        libsuff=64
-        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
-        ;;
-      esac
-    fi
-    rm -rf conftest*
-    ;;
-  esac
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=yes
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" || \
-   test -n "$runpath_var " || \
-   test "X$hardcode_automatic"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-{ echo "$as_me:$LINENO: result: $hardcode_action" >&5
-echo "${ECHO_T}$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-       ;;
-   *)
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-    ;;
-  esac
-fi
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-   ;;
-
-  *)
-    { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  { echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 9175 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 9273 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-# Report which librarie types wil actually be built
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-
-aix4* | aix5*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-  ;;
-  darwin* | rhapsody*)
-  if test "$GCC" = yes; then
-    archive_cmds_need_lc=no
-    case "$host_os" in
-    rhapsody* | darwin1.[012])
-      allow_undefined_flag='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-       allow_undefined_flag='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[012])
-            allow_undefined_flag='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            allow_undefined_flag='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-      ;;
-    esac
-    output_verbose_link_cmd='echo'
-    archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
-    module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-    archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    hardcode_direct=no
-    hardcode_automatic=yes
-    hardcode_shlibpath_var=unsupported
-    whole_archive_flag_spec='-all_load $convenience'
-    link_all_deplibs=yes
-  else
-    ld_shlibs=no
-  fi
-    ;;
-esac
-{ echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-{ echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6; }
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler \
-    CC \
-    LD \
-    lt_prog_compiler_wl \
-    lt_prog_compiler_pic \
-    lt_prog_compiler_static \
-    lt_prog_compiler_no_builtin_flag \
-    export_dynamic_flag_spec \
-    thread_safe_flag_spec \
-    whole_archive_flag_spec \
-    enable_shared_with_static_runtimes \
-    old_archive_cmds \
-    old_archive_from_new_cmds \
-    predep_objects \
-    postdep_objects \
-    predeps \
-    postdeps \
-    compiler_lib_search_path \
-    archive_cmds \
-    archive_expsym_cmds \
-    postinstall_cmds \
-    postuninstall_cmds \
-    old_archive_from_expsyms_cmds \
-    allow_undefined_flag \
-    no_undefined_flag \
-    export_symbols_cmds \
-    hardcode_libdir_flag_spec \
-    hardcode_libdir_flag_spec_ld \
-    hardcode_libdir_separator \
-    hardcode_automatic \
-    module_cmds \
-    module_expsym_cmds \
-    lt_cv_prog_compiler_c_o \
-    exclude_expsyms \
-    include_expsyms; do
-
-    case $var in
-    old_archive_cmds | \
-    old_archive_from_new_cmds | \
-    archive_cmds | \
-    archive_expsym_cmds | \
-    module_cmds | \
-    module_expsym_cmds | \
-    old_archive_from_expsyms_cmds | \
-    export_symbols_cmds | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="${ofile}T"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  $rm -f "$cfgfile"
-  { echo "$as_me:$LINENO: creating $ofile" >&5
-echo "$as_me: creating $ofile" >&6;}
-
-  cat <<__EOF__ >> "$cfgfile"
-#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# ### END LIBTOOL CONFIG
-
-__EOF__
-
-
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" || \
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-
-# Check whether --with-tags was given.
-if test "${with_tags+set}" = set; then
-  withval=$with_tags; tagnames="$withval"
-fi
-
-
-if test -f "$ltmain" && test -n "$tagnames"; then
-  if test ! -f "${ofile}"; then
-    { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
-  fi
-
-  if test -z "$LTCC"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
-    if test -z "$LTCC"; then
-      { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
-    else
-      { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
-echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
-    fi
-  fi
-
-  # Extract list of available tagged configurations in $ofile.
-  # Note that this assumes the entire list is on one line.
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-  for tagname in $tagnames; do
-    IFS="$lt_save_ifs"
-    # Check whether tagname contains only valid characters
-    case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
-    "") ;;
-    *)  { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
-echo "$as_me: error: invalid tag name: $tagname" >&2;}
-   { (exit 1); exit 1; }; }
-       ;;
-    esac
-
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
-    then
-      { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
-echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-
-    # Update the list of available tags.
-    if test -n "$tagname"; then
-      echo appending configuration tag \"$tagname\" to $ofile
-
-      case $tagname in
-      CXX)
-       if test -n "$CXX" && test "X$CXX" != "Xno"; then
-         ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_flag_spec_ld_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_automatic_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-# Source file extension for C++ test sources.
-ac_ext=cc
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
-  unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
-  lt_cv_path_LD=$lt_cv_path_LDCXX
-else
-  unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-compiler_CXX=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
-  lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-else
-  lt_prog_compiler_no_builtin_flag_CXX=
-fi
-
-if test "$GXX" = yes; then
-  # Set up default GNU C++ configuration
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
-else
-  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break
-       ;;
-      *)
-       test "$with_gnu_ld" != yes && break
-       ;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-  # Check if GNU C++ uses GNU ld as the underlying linker, since the
-  # archiving commands below assume that GNU ld is being used.
-  if test "$with_gnu_ld" = yes; then
-    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
-    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-    #     investigate it a little bit more. (MM)
-    wlarc='${wl}'
-
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
-       grep 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      whole_archive_flag_spec_CXX=
-    fi
-  else
-    with_gnu_ld=no
-    wlarc=
-
-    # A generic and very simple default shared library creation
-    # command for GNU C++ for the case where it uses the native
-    # linker, instead of GNU ld.  If possible, this setting should
-    # overridden to take advantage of the native linker features on
-    # the platform it is being used on.
-    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-  fi
-
-  # Commands to make compiler produce verbose output that lists
-  # what "hidden" libraries, object files and flags are used when
-  # linking a shared library.
-  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
-  GXX=no
-  with_gnu_ld=no
-  wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-ld_shlibs_CXX=yes
-case $host_os in
-  aix3*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  aix4* | aix5*)
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      aix_use_runtimelinking=no
-
-      # Test if we are trying to use run time linking or normal
-      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-      # need to do runtime linking.
-      case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-       for ld_flag in $LDFLAGS; do
-         case $ld_flag in
-         *-brtl*)
-           aix_use_runtimelinking=yes
-           break
-           ;;
-         esac
-       done
-      esac
-
-      exp_sym_flag='-bexport'
-      no_entry_flag='-bnoentry'
-    fi
-
-    # When large executables or shared objects are built, AIX ld can
-    # have problems creating the table of contents.  If linking a library
-    # or program results in "error TOC overflow" add -mminimal-toc to
-    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-    archive_cmds_CXX=''
-    hardcode_direct_CXX=yes
-    hardcode_libdir_separator_CXX=':'
-    link_all_deplibs_CXX=yes
-
-    if test "$GXX" = yes; then
-      case $host_os in aix4.012|aix4.012.*)
-      # We only want to do this on AIX 4.2 and lower, the check
-      # below for broken collect2 doesn't work under 4.3+
-       collect2name=`${CC} -print-prog-name=collect2`
-       if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-       then
-         # We have reworked collect2
-         hardcode_direct_CXX=yes
-       else
-         # We have old collect2
-         hardcode_direct_CXX=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         hardcode_minus_L_CXX=yes
-         hardcode_libdir_flag_spec_CXX='-L$libdir'
-         hardcode_libdir_separator_CXX=
-       fi
-      esac
-      shared_flag='-shared'
-    else
-      # not using gcc
-      if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-       shared_flag='-G'
-      else
-       if test "$aix_use_runtimelinking" = yes; then
-         shared_flag='${wl}-G'
-       else
-         shared_flag='${wl}-bM:SRE'
-       fi
-      fi
-    fi
-
-    # It seems that -bexpall does not export symbols beginning with
-    # underscore (_), so it is better to generate a list of symbols to export.
-    always_export_symbols_CXX=yes
-    if test "$aix_use_runtimelinking" = yes; then
-      # Warning - without using the other runtime loading flags (-brtl),
-      # -berok will link without error, but may produce a broken library.
-      allow_undefined_flag_CXX='-berok'
-      # Determine the default libpath from the value encoded in an empty executable.
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-      hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-     else
-      if test "$host_cpu" = ia64; then
-       hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
-       allow_undefined_flag_CXX="-z nodefs"
-       archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-      else
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-       # Warning - without using the other run time loading flags,
-       # -berok will link without error, but may produce a broken library.
-       no_undefined_flag_CXX=' ${wl}-bernotok'
-       allow_undefined_flag_CXX=' ${wl}-berok'
-       # -bexpall does not export symbols beginning with underscore (_)
-       always_export_symbols_CXX=yes
-       # Exported symbols can be pulled into shared objects from archives
-       whole_archive_flag_spec_CXX=' '
-       archive_cmds_need_lc_CXX=yes
-       # This is similar to how AIX traditionally builds it's shared libraries.
-       archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-      fi
-    fi
-    ;;
-  chorus*)
-    case $cc_basename in
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-    # as there is no search path for DLLs.
-    hardcode_libdir_flag_spec_CXX='-L$libdir'
-    allow_undefined_flag_CXX=unsupported
-    always_export_symbols_CXX=no
-    enable_shared_with_static_runtimes_CXX=yes
-
-    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-      # If the export-symbols file already is a .def file (1st line
-      # is EXPORTS), use it as is; otherwise, prepend...
-      archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-       cp $export_symbols $output_objdir/$soname.def;
-      else
-       echo EXPORTS > $output_objdir/$soname.def;
-       cat $export_symbols >> $output_objdir/$soname.def;
-      fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-    else
-      ld_shlibs_CXX=no
-    fi
-  ;;
-
-  darwin* | rhapsody*)
-  if test "$GXX" = yes; then
-    archive_cmds_need_lc_CXX=no
-    case "$host_os" in
-    rhapsody* | darwin1.[012])
-      allow_undefined_flag_CXX='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-       allow_undefined_flag_CXX='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[012])
-            allow_undefined_flag_CXX='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            allow_undefined_flag_CXX='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-      ;;
-    esac
-    lt_int_apple_cc_single_mod=no
-    output_verbose_link_cmd='echo'
-    if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-      lt_int_apple_cc_single_mod=yes
-    fi
-    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-      archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    else
-      archive_cmds_CXX='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    fi
-    module_cmds_CXX='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-      archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    else
-      archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    hardcode_direct_CXX=no
-    hardcode_automatic_CXX=yes
-    hardcode_shlibpath_var_CXX=unsupported
-    whole_archive_flag_spec_CXX='-all_load $convenience'
-    link_all_deplibs_CXX=yes
-  else
-    ld_shlibs_CXX=no
-  fi
-    ;;
-
-  dgux*)
-    case $cc_basename in
-      ec++)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      ghcx)
-       # Green Hills C++ Compiler
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-  freebsd12*)
-    # C++ shared libraries reported to be fairly broken before switch to ELF
-    ld_shlibs_CXX=no
-    ;;
-  freebsd-elf*)
-    archive_cmds_need_lc_CXX=no
-    ;;
-  freebsd* | kfreebsd*-gnu)
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-    # conventions
-    ld_shlibs_CXX=yes
-    ;;
-  gnu*)
-    ;;
-  hpux9*)
-    hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-    hardcode_libdir_separator_CXX=:
-    export_dynamic_flag_spec_CXX='${wl}-E'
-    hardcode_direct_CXX=yes
-    hardcode_minus_L_CXX=yes # Not in the search PATH,
-                               # but as the default
-                               # location of the library.
-
-    case $cc_basename in
-    CC)
-      # FIXME: insert proper C++ library support
-      ld_shlibs_CXX=no
-      ;;
-    aCC)
-      archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      #
-      # There doesn't appear to be a way to prevent this compiler from
-      # explicitly linking system object files so we need to strip them
-      # from the output so that they don't get included in the library
-      # dependencies.
-      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-      ;;
-    *)
-      if test "$GXX" = yes; then
-        archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-      fi
-      ;;
-    esac
-    ;;
-  hpux10*|hpux11*)
-    if test $with_gnu_ld = no; then
-      case "$host_cpu" in
-      hppa*64*)
-       hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-       hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
-       hardcode_libdir_separator_CXX=:
-        ;;
-      ia64*)
-       hardcode_libdir_flag_spec_CXX='-L$libdir'
-        ;;
-      *)
-       hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-       hardcode_libdir_separator_CXX=:
-       export_dynamic_flag_spec_CXX='${wl}-E'
-        ;;
-      esac
-    fi
-    case "$host_cpu" in
-    hppa*64*)
-      hardcode_direct_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      ;;
-    ia64*)
-      hardcode_direct_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      hardcode_minus_L_CXX=yes # Not in the search PATH,
-                                             # but as the default
-                                             # location of the library.
-      ;;
-    *)
-      hardcode_direct_CXX=yes
-      hardcode_minus_L_CXX=yes # Not in the search PATH,
-                                             # but as the default
-                                             # location of the library.
-      ;;
-    esac
-
-    case $cc_basename in
-      CC)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      aCC)
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-         ;;
-       *)
-         archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-         ;;
-       esac
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes; then
-         if test $with_gnu_ld = no; then
-           case "$host_cpu" in
-           ia64*|hppa*64*)
-             archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-             ;;
-           *)
-             archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-             ;;
-           esac
-         fi
-       else
-         # FIXME: insert proper C++ library support
-         ld_shlibs_CXX=no
-       fi
-       ;;
-    esac
-    ;;
-  irix5* | irix6*)
-    case $cc_basename in
-      CC)
-       # SGI C++
-       archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-       # Archives containing C++ object files must be created using
-       # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-       # necessary to make sure instantiated templates are included
-       # in the archive.
-       old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
-       ;;
-      *)
-       if test "$GXX" = yes; then
-         if test "$with_gnu_ld" = no; then
-           archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-         else
-           archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
-         fi
-       fi
-       link_all_deplibs_CXX=yes
-       ;;
-    esac
-    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator_CXX=:
-    ;;
-  linux*)
-    case $cc_basename in
-      KCC)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-       archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-       hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
-       export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-       # Archives containing C++ object files must be created using
-       # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-       old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-       ;;
-      icpc)
-       # Intel C++
-       with_gnu_ld=yes
-       archive_cmds_need_lc_CXX=no
-       archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-       hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-       export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-       whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-       ;;
-      cxx)
-       # Compaq C++
-       archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-       runpath_var=LD_RUN_PATH
-       hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-       hardcode_libdir_separator_CXX=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-    esac
-    ;;
-  lynxos*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  m88k*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  mvs*)
-    case $cc_basename in
-      cxx)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-      wlarc=
-      hardcode_libdir_flag_spec_CXX='-R$libdir'
-      hardcode_direct_CXX=yes
-      hardcode_shlibpath_var_CXX=no
-    fi
-    # Workaround some broken pre-1.5 toolchains
-    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-    ;;
-  osf3*)
-    case $cc_basename in
-      KCC)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-       hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-       hardcode_libdir_separator_CXX=:
-
-       # Archives containing C++ object files must be created using
-       # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-       old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-
-       ;;
-      RCC)
-       # Rational C++ 2.4.1
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      cxx)
-       allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-       hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-       hardcode_libdir_separator_CXX=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-         archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-         hardcode_libdir_separator_CXX=:
-
-         # Commands to make compiler produce verbose output that lists
-         # what "hidden" libraries, object files and flags are used when
-         # linking a shared library.
-         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-       else
-         # FIXME: insert proper C++ library support
-         ld_shlibs_CXX=no
-       fi
-       ;;
-    esac
-    ;;
-  osf4* | osf5*)
-    case $cc_basename in
-      KCC)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-       hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-       hardcode_libdir_separator_CXX=:
-
-       # Archives containing C++ object files must be created using
-       # the KAI C++ compiler.
-       old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
-       ;;
-      RCC)
-       # Rational C++ 2.4.1
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      cxx)
-       allow_undefined_flag_CXX=' -expect_unresolved \*'
-       archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-       archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-         echo "-hidden">> $lib.exp~
-         $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~
-         $rm $lib.exp'
-
-       hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-       hardcode_libdir_separator_CXX=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-        archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-         hardcode_libdir_separator_CXX=:
-
-         # Commands to make compiler produce verbose output that lists
-         # what "hidden" libraries, object files and flags are used when
-         # linking a shared library.
-         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-       else
-         # FIXME: insert proper C++ library support
-         ld_shlibs_CXX=no
-       fi
-       ;;
-    esac
-    ;;
-  psos*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  sco*)
-    archive_cmds_need_lc_CXX=no
-    case $cc_basename in
-      CC)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-  sunos4*)
-    case $cc_basename in
-      CC)
-       # Sun C++ 4.x
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      lcc)
-       # Lucid
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-  solaris*)
-    case $cc_basename in
-      CC)
-       # Sun C++ 4.2, 5.x and Centerline C++
-       no_undefined_flag_CXX=' -zdefs'
-       archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-       archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-       hardcode_libdir_flag_spec_CXX='-R$libdir'
-       hardcode_shlibpath_var_CXX=no
-       case $host_os in
-         solaris2.0-5 | solaris2.0-5.*) ;;
-         *)
-           # The C++ compiler is used as linker so we must use $wl
-           # flag to pass the commands to the underlying system
-           # linker.
-           # Supported since Solaris 2.6 (maybe 2.5.1?)
-           whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-           ;;
-       esac
-       link_all_deplibs_CXX=yes
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-       # Archives containing C++ object files must be created using
-       # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-       # necessary to make sure instantiated templates are included
-       # in the archive.
-       old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-       ;;
-      gcx)
-       # Green Hills C++ Compiler
-       archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-       # The C++ compiler must be used to create the archive.
-       old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-       ;;
-      *)
-       # GNU C++ compiler with Solaris linker
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
-         if $CC --version | grep -v '^2\.7' > /dev/null; then
-           archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-           archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-           # Commands to make compiler produce verbose output that lists
-           # what "hidden" libraries, object files and flags are used when
-           # linking a shared library.
-           output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-         else
-           # g++ 2.7 appears to require `-G' NOT `-shared' on this
-           # platform.
-           archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-           archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-           # Commands to make compiler produce verbose output that lists
-           # what "hidden" libraries, object files and flags are used when
-           # linking a shared library.
-           output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-         fi
-
-         hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
-       fi
-       ;;
-    esac
-    ;;
-  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
-    archive_cmds_need_lc_CXX=no
-    ;;
-  tandem*)
-    case $cc_basename in
-      NCC)
-       # NonStop-UX NCC 3.20
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-  vxworks*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  *)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-esac
-{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-GCC_CXX="$GXX"
-LD_CXX="$LD"
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-EOF
-
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
-
-  for p in `eval $output_verbose_link_cmd`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" \
-         || test $p = "-R"; then
-        prev=$p
-        continue
-       else
-        prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-        case $p in
-        -L* | -R*)
-          # Internal compiler library paths should come after those
-          # provided the user.  The postdeps already come after the
-          # user supplied libs so there is no need to process them.
-          if test -z "$compiler_lib_search_path_CXX"; then
-            compiler_lib_search_path_CXX="${prev}${p}"
-          else
-            compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
-          fi
-          ;;
-        # The "-l" case would never come before the object being
-        # linked, so don't bother handling this case.
-        esac
-       else
-        if test -z "$postdeps_CXX"; then
-          postdeps_CXX="${prev}${p}"
-        else
-          postdeps_CXX="${postdeps_CXX} ${prev}${p}"
-        fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-        pre_test_object_deps_done=yes
-        continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-        if test -z "$predep_objects_CXX"; then
-          predep_objects_CXX="$p"
-        else
-          predep_objects_CXX="$predep_objects_CXX $p"
-        fi
-       else
-        if test -z "$postdep_objects_CXX"; then
-          postdep_objects_CXX="$p"
-        else
-          postdep_objects_CXX="$postdep_objects_CXX $p"
-        fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$rm -f confest.$objext
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
-
-lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    lt_prog_compiler_wl_CXX='-Wl,'
-    lt_prog_compiler_static_CXX='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static_CXX='-Bstatic'
-      fi
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | os2* | pw32*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_CXX='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      lt_prog_compiler_pic_CXX=
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       lt_prog_compiler_pic_CXX=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       ;;
-      *)
-       lt_prog_compiler_pic_CXX='-fPIC'
-       ;;
-      esac
-      ;;
-    *)
-      lt_prog_compiler_pic_CXX='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix4* | aix5*)
-       # All AIX code is PIC.
-       if test "$host_cpu" = ia64; then
-         # AIX 5 now supports IA64 processor
-         lt_prog_compiler_static_CXX='-Bstatic'
-       else
-         lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
-       fi
-       ;;
-      chorus*)
-       case $cc_basename in
-       cxch68)
-         # Green Hills C++ Compiler
-         # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-         ;;
-       esac
-       ;;
-      dgux*)
-       case $cc_basename in
-         ec++)
-           lt_prog_compiler_pic_CXX='-KPIC'
-           ;;
-         ghcx)
-           # Green Hills C++ Compiler
-           lt_prog_compiler_pic_CXX='-pic'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      freebsd* | kfreebsd*-gnu)
-       # FreeBSD uses GNU C++
-       ;;
-      hpux9* | hpux10* | hpux11*)
-       case $cc_basename in
-         CC)
-           lt_prog_compiler_wl_CXX='-Wl,'
-           lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-           if test "$host_cpu" != ia64; then
-             lt_prog_compiler_pic_CXX='+Z'
-           fi
-           ;;
-         aCC)
-           lt_prog_compiler_wl_CXX='-Wl,'
-           lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-           case "$host_cpu" in
-           hppa*64*|ia64*)
-             # +Z the default
-             ;;
-           *)
-             lt_prog_compiler_pic_CXX='+Z'
-             ;;
-           esac
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      irix5* | irix6* | nonstopux*)
-       case $cc_basename in
-         CC)
-           lt_prog_compiler_wl_CXX='-Wl,'
-           lt_prog_compiler_static_CXX='-non_shared'
-           # CC pic flag -KPIC is the default.
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      linux*)
-       case $cc_basename in
-         KCC)
-           # KAI C++ Compiler
-           lt_prog_compiler_wl_CXX='--backend -Wl,'
-           lt_prog_compiler_pic_CXX='-fPIC'
-           ;;
-         icpc)
-           # Intel C++
-           lt_prog_compiler_wl_CXX='-Wl,'
-           lt_prog_compiler_pic_CXX='-KPIC'
-           lt_prog_compiler_static_CXX='-static'
-           ;;
-         cxx)
-           # Compaq C++
-           # Make sure the PIC flag is empty.  It appears that all Alpha
-           # Linux and Compaq Tru64 Unix objects are PIC.
-           lt_prog_compiler_pic_CXX=
-           lt_prog_compiler_static_CXX='-non_shared'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      lynxos*)
-       ;;
-      m88k*)
-       ;;
-      mvs*)
-       case $cc_basename in
-         cxx)
-           lt_prog_compiler_pic_CXX='-W c,exportall'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      netbsd*)
-       ;;
-      osf3* | osf4* | osf5*)
-       case $cc_basename in
-         KCC)
-           lt_prog_compiler_wl_CXX='--backend -Wl,'
-           ;;
-         RCC)
-           # Rational C++ 2.4.1
-           lt_prog_compiler_pic_CXX='-pic'
-           ;;
-         cxx)
-           # Digital/Compaq C++
-           lt_prog_compiler_wl_CXX='-Wl,'
-           # Make sure the PIC flag is empty.  It appears that all Alpha
-           # Linux and Compaq Tru64 Unix objects are PIC.
-           lt_prog_compiler_pic_CXX=
-           lt_prog_compiler_static_CXX='-non_shared'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      psos*)
-       ;;
-      sco*)
-       case $cc_basename in
-         CC)
-           lt_prog_compiler_pic_CXX='-fPIC'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      solaris*)
-       case $cc_basename in
-         CC)
-           # Sun C++ 4.2, 5.x and Centerline C++
-           lt_prog_compiler_pic_CXX='-KPIC'
-           lt_prog_compiler_static_CXX='-Bstatic'
-           lt_prog_compiler_wl_CXX='-Qoption ld '
-           ;;
-         gcx)
-           # Green Hills C++ Compiler
-           lt_prog_compiler_pic_CXX='-PIC'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      sunos4*)
-       case $cc_basename in
-         CC)
-           # Sun C++ 4.x
-           lt_prog_compiler_pic_CXX='-pic'
-           lt_prog_compiler_static_CXX='-Bstatic'
-           ;;
-         lcc)
-           # Lucid
-           lt_prog_compiler_pic_CXX='-pic'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      tandem*)
-       case $cc_basename in
-         NCC)
-           # NonStop-UX NCC 3.20
-           lt_prog_compiler_pic_CXX='-KPIC'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      unixware*)
-       ;;
-      vxworks*)
-       ;;
-      *)
-       lt_prog_compiler_can_build_shared_CXX=no
-       ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_CXX=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11452: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:11456: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works_CXX=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; }
-
-if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
-    case $lt_prog_compiler_pic_CXX in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
-     esac
-else
-    lt_prog_compiler_pic_CXX=
-     lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_CXX=
-    ;;
-  *)
-    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11512: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:11516: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix4* | aix5*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    export_symbols_cmds_CXX="$ltdll_cmds"
-  ;;
-  cygwin* | mingw*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_CXX=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_CXX in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_CXX
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
-        allow_undefined_flag_CXX=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-         archive_cmds_need_lc_CXX=no
-        else
-         archive_cmds_need_lc_CXX=yes
-        fi
-        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-          echo ' yes '
-          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-       :
-      else
-       can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       else
-               version_type=irix
-       fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # find out which ABI we are using
-  libsuff=
-  case "$host_cpu" in
-  x86_64*|s390x*|powerpc64*)
-    echo '#line 12023 "configure"' > conftest.$ac_ext
-    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-      case `/usr/bin/file conftest.$ac_objext` in
-      *64-bit*)
-        libsuff=64
-        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
-        ;;
-      esac
-    fi
-    rm -rf conftest*
-    ;;
-  esac
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=yes
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" || \
-   test -n "$runpath_var CXX" || \
-   test "X$hardcode_automatic_CXX"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_CXX" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
-     test "$hardcode_minus_L_CXX" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_CXX=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_CXX=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_CXX=unsupported
-fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
-echo "${ECHO_T}$hardcode_action_CXX" >&6; }
-
-if test "$hardcode_action_CXX" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-       ;;
-   *)
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-    ;;
-  esac
-fi
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-   ;;
-
-  *)
-    { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  { echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 12861 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 12959 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_CXX \
-    CC_CXX \
-    LD_CXX \
-    lt_prog_compiler_wl_CXX \
-    lt_prog_compiler_pic_CXX \
-    lt_prog_compiler_static_CXX \
-    lt_prog_compiler_no_builtin_flag_CXX \
-    export_dynamic_flag_spec_CXX \
-    thread_safe_flag_spec_CXX \
-    whole_archive_flag_spec_CXX \
-    enable_shared_with_static_runtimes_CXX \
-    old_archive_cmds_CXX \
-    old_archive_from_new_cmds_CXX \
-    predep_objects_CXX \
-    postdep_objects_CXX \
-    predeps_CXX \
-    postdeps_CXX \
-    compiler_lib_search_path_CXX \
-    archive_cmds_CXX \
-    archive_expsym_cmds_CXX \
-    postinstall_cmds_CXX \
-    postuninstall_cmds_CXX \
-    old_archive_from_expsyms_cmds_CXX \
-    allow_undefined_flag_CXX \
-    no_undefined_flag_CXX \
-    export_symbols_cmds_CXX \
-    hardcode_libdir_flag_spec_CXX \
-    hardcode_libdir_flag_spec_ld_CXX \
-    hardcode_libdir_separator_CXX \
-    hardcode_automatic_CXX \
-    module_cmds_CXX \
-    module_expsym_cmds_CXX \
-    lt_cv_prog_compiler_c_o_CXX \
-    exclude_expsyms_CXX \
-    include_expsyms_CXX; do
-
-    case $var in
-    old_archive_cmds_CXX | \
-    old_archive_from_new_cmds_CXX | \
-    archive_cmds_CXX | \
-    archive_expsym_cmds_CXX | \
-    module_cmds_CXX | \
-    module_expsym_cmds_CXX | \
-    old_archive_from_expsyms_cmds_CXX | \
-    export_symbols_cmds_CXX | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_CXX
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_CXX
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_CXX
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_CXX"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-
-       else
-         tagname=""
-       fi
-       ;;
-
-      F77)
-       if test -n "$F77" && test "X$F77" != "Xno"; then
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-
-archive_cmds_need_lc_F77=no
-allow_undefined_flag_F77=
-always_export_symbols_F77=no
-archive_expsym_cmds_F77=
-export_dynamic_flag_spec_F77=
-hardcode_direct_F77=no
-hardcode_libdir_flag_spec_F77=
-hardcode_libdir_flag_spec_ld_F77=
-hardcode_libdir_separator_F77=
-hardcode_minus_L_F77=no
-hardcode_automatic_F77=no
-module_cmds_F77=
-module_expsym_cmds_F77=
-link_all_deplibs_F77=unknown
-old_archive_cmds_F77=$old_archive_cmds
-no_undefined_flag_F77=
-whole_archive_flag_spec_F77=
-enable_shared_with_static_runtimes_F77=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-objext_F77=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-compiler_F77=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-aix4* | aix5*)
-  test "$enable_shared" = yes && enable_static=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-{ echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6; }
-
-test "$ld_shlibs_F77" = no && can_build_shared=no
-
-GCC_F77="$G77"
-LD_F77="$LD"
-
-lt_prog_compiler_wl_F77=
-lt_prog_compiler_pic_F77=
-lt_prog_compiler_static_F77=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl_F77='-Wl,'
-    lt_prog_compiler_static_F77='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static_F77='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_F77='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared_F77=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       lt_prog_compiler_pic_F77=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic_F77='-fPIC'
-       ;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic_F77='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static_F77='-Bstatic'
-      else
-       lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic_F77='+Z'
-       ;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static_F77='-non_shared'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc* | ecc*)
-       lt_prog_compiler_wl_F77='-Wl,'
-       lt_prog_compiler_pic_F77='-KPIC'
-       lt_prog_compiler_static_F77='-static'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl_F77='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static_F77='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static_F77='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      lt_prog_compiler_pic_F77='-Kpic'
-      lt_prog_compiler_static_F77='-dn'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl_F77='-Qoption ld '
-      lt_prog_compiler_pic_F77='-PIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-       lt_prog_compiler_pic_F77='-Kconform_pic'
-       lt_prog_compiler_static_F77='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic_F77='-pic'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared_F77=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_F77"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_F77=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_F77"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13786: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:13790: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works_F77=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; }
-
-if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
-    case $lt_prog_compiler_pic_F77 in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
-     esac
-else
-    lt_prog_compiler_pic_F77=
-     lt_prog_compiler_can_build_shared_F77=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_F77=
-    ;;
-  *)
-    lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_F77=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13846: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:13850: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o_F77=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  runpath_var=
-  allow_undefined_flag_F77=
-  enable_shared_with_static_runtimes_F77=no
-  archive_cmds_F77=
-  archive_expsym_cmds_F77=
-  old_archive_From_new_cmds_F77=
-  old_archive_from_expsyms_cmds_F77=
-  export_dynamic_flag_spec_F77=
-  whole_archive_flag_spec_F77=
-  thread_safe_flag_spec_F77=
-  hardcode_libdir_flag_spec_F77=
-  hardcode_libdir_flag_spec_ld_F77=
-  hardcode_libdir_separator_F77=
-  hardcode_direct_F77=no
-  hardcode_minus_L_F77=no
-  hardcode_shlibpath_var_F77=unsupported
-  link_all_deplibs_F77=unknown
-  hardcode_automatic_F77=no
-  module_cmds_F77=
-  module_expsym_cmds_F77=
-  always_export_symbols_F77=no
-  export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms_F77=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs_F77=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-       ld_shlibs_F77=no
-       cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs_F77=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       allow_undefined_flag_F77=unsupported
-       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-       # support --undefined.  This deserves some investigation.  FIXME
-       archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-       ld_shlibs_F77=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      allow_undefined_flag_F77=unsupported
-      always_export_symbols_F77=no
-      enable_shared_with_static_runtimes_F77=yes
-      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-       wlarc=
-      else
-       archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-       ld_shlibs_F77=no
-       cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs_F77=no
-      fi
-      ;;
-
-    sunos4*)
-      archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-  linux*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_cmds_F77="$tmp_archive_cmds"
-      supports_anon_versioning=no
-      case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-        *\ 2.11.*) ;; # other 2.11 versions
-        *) supports_anon_versioning=yes ;;
-      esac
-      if test $supports_anon_versioning = yes; then
-        archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-      else
-        archive_expsym_cmds_F77="$tmp_archive_cmds"
-      fi
-    else
-      ld_shlibs_F77=no
-    fi
-    ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs_F77=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs_F77" = yes; then
-      runpath_var=LD_RUN_PATH
-      hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
-      export_dynamic_flag_spec_F77='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
-       whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-       whole_archive_flag_spec_F77=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag_F77=unsupported
-      always_export_symbols_F77=yes
-      archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L_F77=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-       # Neither direct hardcoding nor static linking is supported with a
-       # broken collect2.
-       hardcode_direct_F77=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-       # On IA64, the linker does run time linking by default, so we don't
-       # have to do anything special.
-       aix_use_runtimelinking=no
-       exp_sym_flag='-Bexport'
-       no_entry_flag=""
-      else
-       # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-         export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       else
-         export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       fi
-       aix_use_runtimelinking=no
-
-       # Test if we are trying to use run time linking or normal
-       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
-       case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-         for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-           aix_use_runtimelinking=yes
-           break
-         fi
-         done
-       esac
-
-       exp_sym_flag='-bexport'
-       no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds_F77=''
-      hardcode_direct_F77=yes
-      hardcode_libdir_separator_F77=':'
-      link_all_deplibs_F77=yes
-
-      if test "$GCC" = yes; then
-       case $host_os in aix4.012|aix4.012.*)
-       # We only want to do this on AIX 4.2 and lower, the check
-       # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
-         if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-         then
-         # We have reworked collect2
-         hardcode_direct_F77=yes
-         else
-         # We have old collect2
-         hardcode_direct_F77=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         hardcode_minus_L_F77=yes
-         hardcode_libdir_flag_spec_F77='-L$libdir'
-         hardcode_libdir_separator_F77=
-         fi
-       esac
-       shared_flag='-shared'
-      else
-       # not using gcc
-       if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-         shared_flag='-G'
-       else
-       if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
-       fi
-       fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols_F77=yes
-      if test "$aix_use_runtimelinking" = yes; then
-       # Warning - without using the other runtime loading flags (-brtl),
-       # -berok will link without error, but may produce a broken library.
-       allow_undefined_flag_F77='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_f77_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
-       archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-       if test "$host_cpu" = ia64; then
-         hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
-         allow_undefined_flag_F77="-z nodefs"
-         archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-       else
-        # Determine the default libpath from the value encoded in an empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_f77_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-        hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
-         # Warning - without using the other run time loading flags,
-         # -berok will link without error, but may produce a broken library.
-         no_undefined_flag_F77=' ${wl}-bernotok'
-         allow_undefined_flag_F77=' ${wl}-berok'
-         # -bexpall does not export symbols beginning with underscore (_)
-         always_export_symbols_F77=yes
-         # Exported symbols can be pulled into shared objects from archives
-         whole_archive_flag_spec_F77=' '
-         archive_cmds_need_lc_F77=yes
-         # This is similar to how AIX traditionally builds it's shared libraries.
-         archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-       fi
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs_F77=no
-      ;;
-
-    bsdi4*)
-      export_dynamic_flag_spec_F77=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec_F77=' '
-      allow_undefined_flag_F77=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds_F77='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes_F77=yes
-      ;;
-
-    darwin* | rhapsody*)
-    if test "$GXX" = yes ; then
-      archive_cmds_need_lc_F77=no
-      case "$host_os" in
-      rhapsody* | darwin1.[012])
-       allow_undefined_flag_F77='-undefined suppress'
-       ;;
-      *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-       allow_undefined_flag_F77='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[012])
-            allow_undefined_flag_F77='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            allow_undefined_flag_F77='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-       ;;
-      esac
-       lt_int_apple_cc_single_mod=no
-       output_verbose_link_cmd='echo'
-       if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-         lt_int_apple_cc_single_mod=yes
-       fi
-       if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-         archive_cmds_F77='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-       else
-        archive_cmds_F77='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      module_cmds_F77='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-          archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        else
-          archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        fi
-          module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      hardcode_direct_F77=no
-      hardcode_automatic_F77=yes
-      hardcode_shlibpath_var_F77=unsupported
-      whole_archive_flag_spec_F77='-all_load $convenience'
-      link_all_deplibs_F77=yes
-    else
-      ld_shlibs_F77=no
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs_F77=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
-      archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-       archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-       archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      hardcode_direct_F77=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L_F77=yes
-      export_dynamic_flag_spec_F77='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       *)
-         archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       esac
-      else
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       *)
-         archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       esac
-      fi
-      if test "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*)
-         hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
-         hardcode_libdir_flag_spec_ld_F77='+b $libdir'
-         hardcode_libdir_separator_F77=:
-         hardcode_direct_F77=no
-         hardcode_shlibpath_var_F77=no
-         ;;
-       ia64*)
-         hardcode_libdir_flag_spec_F77='-L$libdir'
-         hardcode_direct_F77=no
-         hardcode_shlibpath_var_F77=no
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L_F77=yes
-         ;;
-       *)
-         hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
-         hardcode_libdir_separator_F77=:
-         hardcode_direct_F77=yes
-         export_dynamic_flag_spec_F77='${wl}-E'
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L_F77=yes
-         ;;
-       esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      link_all_deplibs_F77=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-       archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    newsos6)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    openbsd*)
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-       archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-       hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
-       export_dynamic_flag_spec_F77='${wl}-E'
-      else
-       case $host_os in
-        openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-          archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-          hardcode_libdir_flag_spec_F77='-R$libdir'
-          ;;
-        *)
-          archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-          hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
-          ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-      allow_undefined_flag_F77=unsupported
-      archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-       allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       allow_undefined_flag_F77=' -expect_unresolved \*'
-       archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      ;;
-
-    osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      else
-       allow_undefined_flag_F77=' -expect_unresolved \*'
-       archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-       $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-       # Both c and cxx compiler support -rpath directly
-       hardcode_libdir_flag_spec_F77='-rpath $libdir'
-      fi
-      hardcode_libdir_separator_F77=:
-      ;;
-
-    sco3.2v5*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_F77=no
-      export_dynamic_flag_spec_F77='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      no_undefined_flag_F77=' -z text'
-      if test "$GCC" = yes; then
-       archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-       archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_shlibpath_var_F77=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-       whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
-      esac
-      link_all_deplibs_F77=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-       # Use $CC to link under sequent, because it throws in some extra .o
-       # files that make .init and .fini sections work.
-       archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-       sni)
-         archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct_F77=yes # is this really true???
-       ;;
-       siemens)
-         ## LD is ld it makes a PLAMLIB
-         ## CC just makes a GrossModule.
-         archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-         reload_cmds_F77='$CC -r -o $output$reload_objs'
-         hardcode_direct_F77=no
-        ;;
-       motorola)
-         archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
-       ;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_F77=no
-      export_dynamic_flag_spec_F77='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       hardcode_shlibpath_var_F77=no
-       runpath_var=LD_RUN_PATH
-       hardcode_runpath_var=yes
-       ld_shlibs_F77=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=no
-      hardcode_shlibpath_var_F77=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag_F77='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-       archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    sysv5*)
-      no_undefined_flag_F77=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec_F77=
-      hardcode_shlibpath_var_F77=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    *)
-      ld_shlibs_F77=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
-echo "${ECHO_T}$ld_shlibs_F77" >&6; }
-test "$ld_shlibs_F77" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_F77" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_F77=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_F77 in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_F77
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_F77
-        allow_undefined_flag_F77=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-         archive_cmds_need_lc_F77=no
-        else
-         archive_cmds_need_lc_F77=yes
-        fi
-        allow_undefined_flag_F77=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-          echo ' yes '
-          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-       :
-      else
-       can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       else
-               version_type=irix
-       fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # find out which ABI we are using
-  libsuff=
-  case "$host_cpu" in
-  x86_64*|s390x*|powerpc64*)
-    echo '#line 15156 "configure"' > conftest.$ac_ext
-    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-      case `/usr/bin/file conftest.$ac_objext` in
-      *64-bit*)
-        libsuff=64
-        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
-        ;;
-      esac
-    fi
-    rm -rf conftest*
-    ;;
-  esac
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=yes
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action_F77=
-if test -n "$hardcode_libdir_flag_spec_F77" || \
-   test -n "$runpath_var F77" || \
-   test "X$hardcode_automatic_F77"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_F77" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
-     test "$hardcode_minus_L_F77" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_F77=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_F77=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_F77=unsupported
-fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
-echo "${ECHO_T}$hardcode_action_F77" >&6; }
-
-if test "$hardcode_action_F77" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-       ;;
-   *)
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-    ;;
-  esac
-fi
-
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_F77 \
-    CC_F77 \
-    LD_F77 \
-    lt_prog_compiler_wl_F77 \
-    lt_prog_compiler_pic_F77 \
-    lt_prog_compiler_static_F77 \
-    lt_prog_compiler_no_builtin_flag_F77 \
-    export_dynamic_flag_spec_F77 \
-    thread_safe_flag_spec_F77 \
-    whole_archive_flag_spec_F77 \
-    enable_shared_with_static_runtimes_F77 \
-    old_archive_cmds_F77 \
-    old_archive_from_new_cmds_F77 \
-    predep_objects_F77 \
-    postdep_objects_F77 \
-    predeps_F77 \
-    postdeps_F77 \
-    compiler_lib_search_path_F77 \
-    archive_cmds_F77 \
-    archive_expsym_cmds_F77 \
-    postinstall_cmds_F77 \
-    postuninstall_cmds_F77 \
-    old_archive_from_expsyms_cmds_F77 \
-    allow_undefined_flag_F77 \
-    no_undefined_flag_F77 \
-    export_symbols_cmds_F77 \
-    hardcode_libdir_flag_spec_F77 \
-    hardcode_libdir_flag_spec_ld_F77 \
-    hardcode_libdir_separator_F77 \
-    hardcode_automatic_F77 \
-    module_cmds_F77 \
-    module_expsym_cmds_F77 \
-    lt_cv_prog_compiler_c_o_F77 \
-    exclude_expsyms_F77 \
-    include_expsyms_F77; do
-
-    case $var in
-    old_archive_cmds_F77 | \
-    old_archive_from_new_cmds_F77 | \
-    archive_cmds_F77 | \
-    archive_expsym_cmds_F77 | \
-    module_cmds_F77 | \
-    module_expsym_cmds_F77 | \
-    old_archive_from_expsyms_cmds_F77 | \
-    export_symbols_cmds_F77 | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_F77
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_F77
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_F77
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_F77
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_F77
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_F77
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_F77
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_F77
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_F77
-archive_expsym_cmds=$lt_archive_expsym_cmds_F77
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_F77
-module_expsym_cmds=$lt_module_expsym_cmds_F77
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_F77
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_F77
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_F77
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_F77
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_F77
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_F77
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_F77
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_F77
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_F77
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_F77
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_F77
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_F77
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_F77"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_F77
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_F77
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_F77
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_F77
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-       else
-         tagname=""
-       fi
-       ;;
-
-      GCJ)
-       if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-objext_GCJ=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-compiler_GCJ=$CC
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-archive_cmds_need_lc_GCJ=no
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-lt_prog_compiler_no_builtin_flag_GCJ=
-
-if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
-
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15900: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:15904: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-lt_prog_compiler_wl_GCJ=
-lt_prog_compiler_pic_GCJ=
-lt_prog_compiler_static_GCJ=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl_GCJ='-Wl,'
-    lt_prog_compiler_static_GCJ='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static_GCJ='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_GCJ='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared_GCJ=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       lt_prog_compiler_pic_GCJ=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic_GCJ='-fPIC'
-       ;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic_GCJ='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static_GCJ='-Bstatic'
-      else
-       lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic_GCJ='+Z'
-       ;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static_GCJ='-non_shared'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc* | ecc*)
-       lt_prog_compiler_wl_GCJ='-Wl,'
-       lt_prog_compiler_pic_GCJ='-KPIC'
-       lt_prog_compiler_static_GCJ='-static'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl_GCJ='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static_GCJ='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static_GCJ='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      lt_prog_compiler_pic_GCJ='-Kpic'
-      lt_prog_compiler_static_GCJ='-dn'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl_GCJ='-Qoption ld '
-      lt_prog_compiler_pic_GCJ='-PIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-       lt_prog_compiler_pic_GCJ='-Kconform_pic'
-       lt_prog_compiler_static_GCJ='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic_GCJ='-pic'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared_GCJ=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_GCJ"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_GCJ=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16133: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:16137: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works_GCJ=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; }
-
-if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
-    case $lt_prog_compiler_pic_GCJ in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
-     esac
-else
-    lt_prog_compiler_pic_GCJ=
-     lt_prog_compiler_can_build_shared_GCJ=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_GCJ=
-    ;;
-  *)
-    lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_GCJ=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16193: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:16197: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o_GCJ=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  runpath_var=
-  allow_undefined_flag_GCJ=
-  enable_shared_with_static_runtimes_GCJ=no
-  archive_cmds_GCJ=
-  archive_expsym_cmds_GCJ=
-  old_archive_From_new_cmds_GCJ=
-  old_archive_from_expsyms_cmds_GCJ=
-  export_dynamic_flag_spec_GCJ=
-  whole_archive_flag_spec_GCJ=
-  thread_safe_flag_spec_GCJ=
-  hardcode_libdir_flag_spec_GCJ=
-  hardcode_libdir_flag_spec_ld_GCJ=
-  hardcode_libdir_separator_GCJ=
-  hardcode_direct_GCJ=no
-  hardcode_minus_L_GCJ=no
-  hardcode_shlibpath_var_GCJ=unsupported
-  link_all_deplibs_GCJ=unknown
-  hardcode_automatic_GCJ=no
-  module_cmds_GCJ=
-  module_expsym_cmds_GCJ=
-  always_export_symbols_GCJ=no
-  export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms_GCJ=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs_GCJ=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-       ld_shlibs_GCJ=no
-       cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs_GCJ=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       allow_undefined_flag_GCJ=unsupported
-       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-       # support --undefined.  This deserves some investigation.  FIXME
-       archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-       ld_shlibs_GCJ=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      allow_undefined_flag_GCJ=unsupported
-      always_export_symbols_GCJ=no
-      enable_shared_with_static_runtimes_GCJ=yes
-      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-       wlarc=
-      else
-       archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-       ld_shlibs_GCJ=no
-       cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs_GCJ=no
-      fi
-      ;;
-
-    sunos4*)
-      archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-  linux*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_cmds_GCJ="$tmp_archive_cmds"
-      supports_anon_versioning=no
-      case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-        *\ 2.11.*) ;; # other 2.11 versions
-        *) supports_anon_versioning=yes ;;
-      esac
-      if test $supports_anon_versioning = yes; then
-        archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-      else
-        archive_expsym_cmds_GCJ="$tmp_archive_cmds"
-      fi
-    else
-      ld_shlibs_GCJ=no
-    fi
-    ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs_GCJ=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs_GCJ" = yes; then
-      runpath_var=LD_RUN_PATH
-      hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
-      export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
-       whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-       whole_archive_flag_spec_GCJ=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag_GCJ=unsupported
-      always_export_symbols_GCJ=yes
-      archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L_GCJ=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-       # Neither direct hardcoding nor static linking is supported with a
-       # broken collect2.
-       hardcode_direct_GCJ=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-       # On IA64, the linker does run time linking by default, so we don't
-       # have to do anything special.
-       aix_use_runtimelinking=no
-       exp_sym_flag='-Bexport'
-       no_entry_flag=""
-      else
-       # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-         export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       else
-         export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       fi
-       aix_use_runtimelinking=no
-
-       # Test if we are trying to use run time linking or normal
-       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
-       case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-         for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-           aix_use_runtimelinking=yes
-           break
-         fi
-         done
-       esac
-
-       exp_sym_flag='-bexport'
-       no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds_GCJ=''
-      hardcode_direct_GCJ=yes
-      hardcode_libdir_separator_GCJ=':'
-      link_all_deplibs_GCJ=yes
-
-      if test "$GCC" = yes; then
-       case $host_os in aix4.012|aix4.012.*)
-       # We only want to do this on AIX 4.2 and lower, the check
-       # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
-         if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-         then
-         # We have reworked collect2
-         hardcode_direct_GCJ=yes
-         else
-         # We have old collect2
-         hardcode_direct_GCJ=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         hardcode_minus_L_GCJ=yes
-         hardcode_libdir_flag_spec_GCJ='-L$libdir'
-         hardcode_libdir_separator_GCJ=
-         fi
-       esac
-       shared_flag='-shared'
-      else
-       # not using gcc
-       if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-         shared_flag='-G'
-       else
-       if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
-       fi
-       fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols_GCJ=yes
-      if test "$aix_use_runtimelinking" = yes; then
-       # Warning - without using the other runtime loading flags (-brtl),
-       # -berok will link without error, but may produce a broken library.
-       allow_undefined_flag_GCJ='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
-       archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-       if test "$host_cpu" = ia64; then
-         hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
-         allow_undefined_flag_GCJ="-z nodefs"
-         archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-       else
-        # Determine the default libpath from the value encoded in an empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-        hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
-         # Warning - without using the other run time loading flags,
-         # -berok will link without error, but may produce a broken library.
-         no_undefined_flag_GCJ=' ${wl}-bernotok'
-         allow_undefined_flag_GCJ=' ${wl}-berok'
-         # -bexpall does not export symbols beginning with underscore (_)
-         always_export_symbols_GCJ=yes
-         # Exported symbols can be pulled into shared objects from archives
-         whole_archive_flag_spec_GCJ=' '
-         archive_cmds_need_lc_GCJ=yes
-         # This is similar to how AIX traditionally builds it's shared libraries.
-         archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-       fi
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs_GCJ=no
-      ;;
-
-    bsdi4*)
-      export_dynamic_flag_spec_GCJ=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec_GCJ=' '
-      allow_undefined_flag_GCJ=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds_GCJ='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes_GCJ=yes
-      ;;
-
-    darwin* | rhapsody*)
-    if test "$GXX" = yes ; then
-      archive_cmds_need_lc_GCJ=no
-      case "$host_os" in
-      rhapsody* | darwin1.[012])
-       allow_undefined_flag_GCJ='-undefined suppress'
-       ;;
-      *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-       allow_undefined_flag_GCJ='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[012])
-            allow_undefined_flag_GCJ='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            allow_undefined_flag_GCJ='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-       ;;
-      esac
-       lt_int_apple_cc_single_mod=no
-       output_verbose_link_cmd='echo'
-       if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-         lt_int_apple_cc_single_mod=yes
-       fi
-       if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-         archive_cmds_GCJ='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-       else
-        archive_cmds_GCJ='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      module_cmds_GCJ='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-          archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        else
-          archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        fi
-          module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      hardcode_direct_GCJ=no
-      hardcode_automatic_GCJ=yes
-      hardcode_shlibpath_var_GCJ=unsupported
-      whole_archive_flag_spec_GCJ='-all_load $convenience'
-      link_all_deplibs_GCJ=yes
-    else
-      ld_shlibs_GCJ=no
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs_GCJ=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
-      archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-       archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-       archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      hardcode_direct_GCJ=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L_GCJ=yes
-      export_dynamic_flag_spec_GCJ='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       *)
-         archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       esac
-      else
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       *)
-         archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       esac
-      fi
-      if test "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*)
-         hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
-         hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
-         hardcode_libdir_separator_GCJ=:
-         hardcode_direct_GCJ=no
-         hardcode_shlibpath_var_GCJ=no
-         ;;
-       ia64*)
-         hardcode_libdir_flag_spec_GCJ='-L$libdir'
-         hardcode_direct_GCJ=no
-         hardcode_shlibpath_var_GCJ=no
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L_GCJ=yes
-         ;;
-       *)
-         hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
-         hardcode_libdir_separator_GCJ=:
-         hardcode_direct_GCJ=yes
-         export_dynamic_flag_spec_GCJ='${wl}-E'
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L_GCJ=yes
-         ;;
-       esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      link_all_deplibs_GCJ=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-       archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    newsos6)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    openbsd*)
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-       archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-       hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
-       export_dynamic_flag_spec_GCJ='${wl}-E'
-      else
-       case $host_os in
-        openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-          archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-          hardcode_libdir_flag_spec_GCJ='-R$libdir'
-          ;;
-        *)
-          archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-          hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
-          ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-      allow_undefined_flag_GCJ=unsupported
-      archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-       allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       allow_undefined_flag_GCJ=' -expect_unresolved \*'
-       archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      ;;
-
-    osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      else
-       allow_undefined_flag_GCJ=' -expect_unresolved \*'
-       archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-       $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-       # Both c and cxx compiler support -rpath directly
-       hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
-      fi
-      hardcode_libdir_separator_GCJ=:
-      ;;
-
-    sco3.2v5*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_GCJ=no
-      export_dynamic_flag_spec_GCJ='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      no_undefined_flag_GCJ=' -z text'
-      if test "$GCC" = yes; then
-       archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-       archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-       whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
-      esac
-      link_all_deplibs_GCJ=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-       # Use $CC to link under sequent, because it throws in some extra .o
-       # files that make .init and .fini sections work.
-       archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-       sni)
-         archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct_GCJ=yes # is this really true???
-       ;;
-       siemens)
-         ## LD is ld it makes a PLAMLIB
-         ## CC just makes a GrossModule.
-         archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-         reload_cmds_GCJ='$CC -r -o $output$reload_objs'
-         hardcode_direct_GCJ=no
-        ;;
-       motorola)
-         archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
-       ;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_GCJ=no
-      export_dynamic_flag_spec_GCJ='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       hardcode_shlibpath_var_GCJ=no
-       runpath_var=LD_RUN_PATH
-       hardcode_runpath_var=yes
-       ld_shlibs_GCJ=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=no
-      hardcode_shlibpath_var_GCJ=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag_GCJ='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-       archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    sysv5*)
-      no_undefined_flag_GCJ=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec_GCJ=
-      hardcode_shlibpath_var_GCJ=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    *)
-      ld_shlibs_GCJ=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
-echo "${ECHO_T}$ld_shlibs_GCJ" >&6; }
-test "$ld_shlibs_GCJ" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_GCJ" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_GCJ=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_GCJ in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_GCJ
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
-        allow_undefined_flag_GCJ=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-         archive_cmds_need_lc_GCJ=no
-        else
-         archive_cmds_need_lc_GCJ=yes
-        fi
-        allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-          echo ' yes '
-          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-       :
-      else
-       can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       else
-               version_type=irix
-       fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # find out which ABI we are using
-  libsuff=
-  case "$host_cpu" in
-  x86_64*|s390x*|powerpc64*)
-    echo '#line 17523 "configure"' > conftest.$ac_ext
-    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-      case `/usr/bin/file conftest.$ac_objext` in
-      *64-bit*)
-        libsuff=64
-        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
-        ;;
-      esac
-    fi
-    rm -rf conftest*
-    ;;
-  esac
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=yes
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action_GCJ=
-if test -n "$hardcode_libdir_flag_spec_GCJ" || \
-   test -n "$runpath_var GCJ" || \
-   test "X$hardcode_automatic_GCJ"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_GCJ" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
-     test "$hardcode_minus_L_GCJ" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_GCJ=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_GCJ=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_GCJ=unsupported
-fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
-echo "${ECHO_T}$hardcode_action_GCJ" >&6; }
-
-if test "$hardcode_action_GCJ" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-       ;;
-   *)
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-    ;;
-  esac
-fi
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-   ;;
-
-  *)
-    { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  { echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 18361 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 18459 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_GCJ \
-    CC_GCJ \
-    LD_GCJ \
-    lt_prog_compiler_wl_GCJ \
-    lt_prog_compiler_pic_GCJ \
-    lt_prog_compiler_static_GCJ \
-    lt_prog_compiler_no_builtin_flag_GCJ \
-    export_dynamic_flag_spec_GCJ \
-    thread_safe_flag_spec_GCJ \
-    whole_archive_flag_spec_GCJ \
-    enable_shared_with_static_runtimes_GCJ \
-    old_archive_cmds_GCJ \
-    old_archive_from_new_cmds_GCJ \
-    predep_objects_GCJ \
-    postdep_objects_GCJ \
-    predeps_GCJ \
-    postdeps_GCJ \
-    compiler_lib_search_path_GCJ \
-    archive_cmds_GCJ \
-    archive_expsym_cmds_GCJ \
-    postinstall_cmds_GCJ \
-    postuninstall_cmds_GCJ \
-    old_archive_from_expsyms_cmds_GCJ \
-    allow_undefined_flag_GCJ \
-    no_undefined_flag_GCJ \
-    export_symbols_cmds_GCJ \
-    hardcode_libdir_flag_spec_GCJ \
-    hardcode_libdir_flag_spec_ld_GCJ \
-    hardcode_libdir_separator_GCJ \
-    hardcode_automatic_GCJ \
-    module_cmds_GCJ \
-    module_expsym_cmds_GCJ \
-    lt_cv_prog_compiler_c_o_GCJ \
-    exclude_expsyms_GCJ \
-    include_expsyms_GCJ; do
-
-    case $var in
-    old_archive_cmds_GCJ | \
-    old_archive_from_new_cmds_GCJ | \
-    archive_cmds_GCJ | \
-    archive_expsym_cmds_GCJ | \
-    module_cmds_GCJ | \
-    module_expsym_cmds_GCJ | \
-    old_archive_from_expsyms_cmds_GCJ | \
-    export_symbols_cmds_GCJ | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_GCJ
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_GCJ
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_GCJ
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_GCJ
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_GCJ
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_GCJ
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_GCJ
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_GCJ
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_GCJ
-archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_GCJ
-module_expsym_cmds=$lt_module_expsym_cmds_GCJ
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_GCJ
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_GCJ
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_GCJ
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_GCJ
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_GCJ
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_GCJ
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_GCJ
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_GCJ
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_GCJ
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_GCJ
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_GCJ
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_GCJ"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_GCJ
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_GCJ
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_GCJ
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_GCJ
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-       else
-         tagname=""
-       fi
-       ;;
-
-      RC)
-
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-objext_RC=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-compiler_RC=$CC
-lt_cv_prog_compiler_c_o_RC=yes
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_RC \
-    CC_RC \
-    LD_RC \
-    lt_prog_compiler_wl_RC \
-    lt_prog_compiler_pic_RC \
-    lt_prog_compiler_static_RC \
-    lt_prog_compiler_no_builtin_flag_RC \
-    export_dynamic_flag_spec_RC \
-    thread_safe_flag_spec_RC \
-    whole_archive_flag_spec_RC \
-    enable_shared_with_static_runtimes_RC \
-    old_archive_cmds_RC \
-    old_archive_from_new_cmds_RC \
-    predep_objects_RC \
-    postdep_objects_RC \
-    predeps_RC \
-    postdeps_RC \
-    compiler_lib_search_path_RC \
-    archive_cmds_RC \
-    archive_expsym_cmds_RC \
-    postinstall_cmds_RC \
-    postuninstall_cmds_RC \
-    old_archive_from_expsyms_cmds_RC \
-    allow_undefined_flag_RC \
-    no_undefined_flag_RC \
-    export_symbols_cmds_RC \
-    hardcode_libdir_flag_spec_RC \
-    hardcode_libdir_flag_spec_ld_RC \
-    hardcode_libdir_separator_RC \
-    hardcode_automatic_RC \
-    module_cmds_RC \
-    module_expsym_cmds_RC \
-    lt_cv_prog_compiler_c_o_RC \
-    exclude_expsyms_RC \
-    include_expsyms_RC; do
-
-    case $var in
-    old_archive_cmds_RC | \
-    old_archive_from_new_cmds_RC | \
-    archive_cmds_RC | \
-    archive_expsym_cmds_RC | \
-    module_cmds_RC | \
-    module_expsym_cmds_RC | \
-    old_archive_from_expsyms_cmds_RC | \
-    export_symbols_cmds_RC | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_RC
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_RC
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_RC
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_RC
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_RC
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_RC
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_RC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_RC
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_RC
-archive_expsym_cmds=$lt_archive_expsym_cmds_RC
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_RC
-module_expsym_cmds=$lt_module_expsym_cmds_RC
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_RC
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_RC
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_RC
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_RC
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_RC
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_RC
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_RC
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_RC
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_RC
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_RC
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_RC
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_RC
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_RC"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_RC
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_RC
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_RC
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_RC
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-       ;;
-
-      *)
-       { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
-echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
-   { (exit 1); exit 1; }; }
-       ;;
-      esac
-
-      # Append the new tag name to the list of available tags.
-      if test -n "$tagname" ; then
-      available_tags="$available_tags $tagname"
-    fi
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  # Now substitute the updated list of available tags.
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
-    mv "${ofile}T" "$ofile"
-    chmod +x "$ofile"
-  else
-    rm -f "${ofile}T"
-    { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
-echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-fi
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Prevent multiple expansion
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking location of temporary directory" >&5
-echo $ECHO_N "checking location of temporary directory... $ECHO_C" >&6; }
-if test -d /var/tmp; then
-       found_tmp=/var/tmp/
-elif test -d /usr/tmp; then
-       found_tmp=/usr/tmp/
-else
-       found_tmp=/tmp/
-fi
-cat >>confdefs.h <<_ACEOF
-#define FOUND_TMP "${found_tmp}"
-_ACEOF
-
-{ echo "$as_me:$LINENO: result: ${found_tmp}" >&5
-echo "${ECHO_T}${found_tmp}" >&6; }
-
-{ echo "$as_me:$LINENO: checking for X" >&5
-echo $ECHO_N "checking for X... $ECHO_C" >&6; }
-
-
-# Check whether --with-x was given.
-if test "${with_x+set}" = set; then
-  withval=$with_x;
-fi
-
-# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
-if test "x$with_x" = xno; then
-  # The user explicitly disabled X.
-  have_x=disabled
-else
-  case $x_includes,$x_libraries in #(
-    *\'*) { { echo "$as_me:$LINENO: error: Cannot use X directory names containing '" >&5
-echo "$as_me: error: Cannot use X directory names containing '" >&2;}
-   { (exit 1); exit 1; }; };; #(
-    *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # One or both of the vars are not set, and there is no cached value.
-ac_x_includes=no ac_x_libraries=no
-rm -f -r conftest.dir
-if mkdir conftest.dir; then
-  cd conftest.dir
-  cat >Imakefile <<'_ACEOF'
-incroot:
-       @echo incroot='${INCROOT}'
-usrlibdir:
-       @echo usrlibdir='${USRLIBDIR}'
-libdir:
-       @echo libdir='${LIBDIR}'
-_ACEOF
-  if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
-    # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-    for ac_var in incroot usrlibdir libdir; do
-      eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
-    done
-    # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
-    for ac_extension in a so sl; do
-      if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
-        test -f "$ac_im_libdir/libX11.$ac_extension"; then
-       ac_im_usrlibdir=$ac_im_libdir; break
-      fi
-    done
-    # Screen out bogus values from the imake configuration.  They are
-    # bogus both because they are the default anyway, and because
-    # using them would break gcc on systems where it needs fixed includes.
-    case $ac_im_incroot in
-       /usr/include) ac_x_includes= ;;
-       *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
-    esac
-    case $ac_im_usrlibdir in
-       /usr/lib | /lib) ;;
-       *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
-    esac
-  fi
-  cd ..
-  rm -f -r conftest.dir
-fi
-
-# Standard set of common directories for X headers.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-ac_x_header_dirs='
-/usr/X11/include
-/usr/X11R6/include
-/usr/X11R5/include
-/usr/X11R4/include
-
-/usr/include/X11
-/usr/include/X11R6
-/usr/include/X11R5
-/usr/include/X11R4
-
-/usr/local/X11/include
-/usr/local/X11R6/include
-/usr/local/X11R5/include
-/usr/local/X11R4/include
-
-/usr/local/include/X11
-/usr/local/include/X11R6
-/usr/local/include/X11R5
-/usr/local/include/X11R4
-
-/usr/X386/include
-/usr/x386/include
-/usr/XFree86/include/X11
-
-/usr/include
-/usr/local/include
-/usr/unsupported/include
-/usr/athena/include
-/usr/local/x11r5/include
-/usr/lpp/Xamples/include
-
-/usr/openwin/include
-/usr/openwin/share/include'
-
-if test "$ac_x_includes" = no; then
-  # Guess where to find include files, by looking for Xlib.h.
-  # First, try using that file with no special directory specified.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <X11/Xlib.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # We can compile using X headers with no special include directory.
-ac_x_includes=
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  for ac_dir in $ac_x_header_dirs; do
-  if test -r "$ac_dir/X11/Xlib.h"; then
-    ac_x_includes=$ac_dir
-    break
-  fi
-done
-fi
-
-rm -f conftest.err conftest.$ac_ext
-fi # $ac_x_includes = no
-
-if test "$ac_x_libraries" = no; then
-  # Check for the libraries.
-  # See if we find them without any special options.
-  # Don't add to $LIBS permanently.
-  ac_save_LIBS=$LIBS
-  LIBS="-lX11 $LIBS"
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <X11/Xlib.h>
-int
-main ()
-{
-XrmInitialize ()
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  LIBS=$ac_save_LIBS
-# We can link X programs with no special library path.
-ac_x_libraries=
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       LIBS=$ac_save_LIBS
-for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
-do
-  # Don't even attempt the hair of trying to link an X program!
-  for ac_extension in a so sl; do
-    if test -r "$ac_dir/libX11.$ac_extension"; then
-      ac_x_libraries=$ac_dir
-      break 2
-    fi
-  done
-done
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi # $ac_x_libraries = no
-
-case $ac_x_includes,$ac_x_libraries in #(
-  no,* | *,no | *\'*)
-    # Didn't find X, or a directory has "'" in its name.
-    ac_cv_have_x="have_x=no";; #(
-  *)
-    # Record where we found X for the cache.
-    ac_cv_have_x="have_x=yes\
-       ac_x_includes='$ac_x_includes'\
-       ac_x_libraries='$ac_x_libraries'"
-esac
-fi
-;; #(
-    *) have_x=yes;;
-  esac
-  eval "$ac_cv_have_x"
-fi # $with_x != no
-
-if test "$have_x" != yes; then
-  { echo "$as_me:$LINENO: result: $have_x" >&5
-echo "${ECHO_T}$have_x" >&6; }
-  no_x=yes
-else
-  # If each of the values was on the command line, it overrides each guess.
-  test "x$x_includes" = xNONE && x_includes=$ac_x_includes
-  test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
-  # Update the cache value to reflect the command line values.
-  ac_cv_have_x="have_x=yes\
-       ac_x_includes='$x_includes'\
-       ac_x_libraries='$x_libraries'"
-  { echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
-echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6; }
-fi
-
-if test "$no_x" = yes; then
-  # Not all programs may use this symbol, but it does not hurt to define it.
-
-cat >>confdefs.h <<\_ACEOF
-#define X_DISPLAY_MISSING 1
-_ACEOF
-
-  X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
-else
-  if test -n "$x_includes"; then
-    X_CFLAGS="$X_CFLAGS -I$x_includes"
-  fi
-
-  # It would also be nice to do this for all -L options, not just this one.
-  if test -n "$x_libraries"; then
-    X_LIBS="$X_LIBS -L$x_libraries"
-    # For Solaris; some versions of Sun CC require a space after -R and
-    # others require no space.  Words are not sufficient . . . .
-    { echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5
-echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6; }
-    ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
-    ac_xsave_c_werror_flag=$ac_c_werror_flag
-    ac_c_werror_flag=yes
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-       X_LIBS="$X_LIBS -R$x_libraries"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       LIBS="$ac_xsave_LIBS -R $x_libraries"
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-         X_LIBS="$X_LIBS -R $x_libraries"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: neither works" >&5
-echo "${ECHO_T}neither works" >&6; }
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-    ac_c_werror_flag=$ac_xsave_c_werror_flag
-    LIBS=$ac_xsave_LIBS
-  fi
-
-  # Check for system-dependent libraries X programs must link with.
-  # Do this before checking for the system-independent R6 libraries
-  # (-lICE), since we may need -lsocket or whatever for X linking.
-
-  if test "$ISC" = yes; then
-    X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
-  else
-    # Martyn Johnson says this is needed for Ultrix, if the X
-    # libraries were built with DECnet support.  And Karl Berry says
-    # the Alpha needs dnet_stub (dnet does not exist).
-    ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XOpenDisplay ();
-int
-main ()
-{
-return XOpenDisplay ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5
-echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldnet  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dnet_ntoa ();
-int
-main ()
-{
-return dnet_ntoa ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dnet_dnet_ntoa=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dnet_dnet_ntoa=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
-echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6; }
-if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
-fi
-
-    if test $ac_cv_lib_dnet_dnet_ntoa = no; then
-      { echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5
-echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldnet_stub  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dnet_ntoa ();
-int
-main ()
-{
-return dnet_ntoa ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dnet_stub_dnet_ntoa=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dnet_stub_dnet_ntoa=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
-echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
-if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
-fi
-
-    fi
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-    LIBS="$ac_xsave_LIBS"
-
-    # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
-    # to get the SysV transport functions.
-    # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
-    # needs -lnsl.
-    # The nsl library prevents programs from opening the X display
-    # on Irix 5.2, according to T.E. Dickey.
-    # The functions gethostbyname, getservbyname, and inet_addr are
-    # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
-    { echo "$as_me:$LINENO: checking for gethostbyname" >&5
-echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6; }
-if test "${ac_cv_func_gethostbyname+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define gethostbyname innocuous_gethostbyname
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char gethostbyname (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef gethostbyname
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_gethostbyname || defined __stub___gethostbyname
-choke me
-#endif
-
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_gethostbyname=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_gethostbyname=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6; }
-
-    if test $ac_cv_func_gethostbyname = no; then
-      { echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
-echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_nsl_gethostbyname=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_nsl_gethostbyname=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6; }
-if test $ac_cv_lib_nsl_gethostbyname = yes; then
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
-fi
-
-      if test $ac_cv_lib_nsl_gethostbyname = no; then
-       { echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5
-echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6; }
-if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lbsd  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_bsd_gethostbyname=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_bsd_gethostbyname=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6; }
-if test $ac_cv_lib_bsd_gethostbyname = yes; then
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
-fi
-
-      fi
-    fi
-
-    # lieder@skyler.mavd.honeywell.com says without -lsocket,
-    # socket/setsockopt and other routines are undefined under SCO ODT
-    # 2.0.  But -lsocket is broken on IRIX 5.2 (and is not necessary
-    # on later versions), says Simon Leinen: it contains gethostby*
-    # variants that don't use the name server (or something).  -lsocket
-    # must be given before -lnsl if both are needed.  We assume that
-    # if connect needs -lnsl, so does gethostbyname.
-    { echo "$as_me:$LINENO: checking for connect" >&5
-echo $ECHO_N "checking for connect... $ECHO_C" >&6; }
-if test "${ac_cv_func_connect+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define connect to an innocuous variant, in case <limits.h> declares connect.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define connect innocuous_connect
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char connect (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef connect
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char connect ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_connect || defined __stub___connect
-choke me
-#endif
-
-int
-main ()
-{
-return connect ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_connect=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_connect=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5
-echo "${ECHO_T}$ac_cv_func_connect" >&6; }
-
-    if test $ac_cv_func_connect = no; then
-      { echo "$as_me:$LINENO: checking for connect in -lsocket" >&5
-echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6; }
-if test "${ac_cv_lib_socket_connect+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char connect ();
-int
-main ()
-{
-return connect ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_socket_connect=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_socket_connect=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6; }
-if test $ac_cv_lib_socket_connect = yes; then
-  X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
-fi
-
-    fi
-
-    # Guillermo Gomez says -lposix is necessary on A/UX.
-    { echo "$as_me:$LINENO: checking for remove" >&5
-echo $ECHO_N "checking for remove... $ECHO_C" >&6; }
-if test "${ac_cv_func_remove+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define remove to an innocuous variant, in case <limits.h> declares remove.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define remove innocuous_remove
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char remove (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef remove
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char remove ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_remove || defined __stub___remove
-choke me
-#endif
-
-int
-main ()
-{
-return remove ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_remove=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_remove=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5
-echo "${ECHO_T}$ac_cv_func_remove" >&6; }
-
-    if test $ac_cv_func_remove = no; then
-      { echo "$as_me:$LINENO: checking for remove in -lposix" >&5
-echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6; }
-if test "${ac_cv_lib_posix_remove+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lposix  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char remove ();
-int
-main ()
-{
-return remove ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_posix_remove=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_posix_remove=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5
-echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6; }
-if test $ac_cv_lib_posix_remove = yes; then
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
-fi
-
-    fi
-
-    # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
-    { echo "$as_me:$LINENO: checking for shmat" >&5
-echo $ECHO_N "checking for shmat... $ECHO_C" >&6; }
-if test "${ac_cv_func_shmat+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shmat to an innocuous variant, in case <limits.h> declares shmat.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shmat innocuous_shmat
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shmat (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shmat
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shmat ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_shmat || defined __stub___shmat
-choke me
-#endif
-
-int
-main ()
-{
-return shmat ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_shmat=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_shmat=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5
-echo "${ECHO_T}$ac_cv_func_shmat" >&6; }
-
-    if test $ac_cv_func_shmat = no; then
-      { echo "$as_me:$LINENO: checking for shmat in -lipc" >&5
-echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6; }
-if test "${ac_cv_lib_ipc_shmat+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lipc  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shmat ();
-int
-main ()
-{
-return shmat ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_ipc_shmat=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_ipc_shmat=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5
-echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6; }
-if test $ac_cv_lib_ipc_shmat = yes; then
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
-fi
-
-    fi
-  fi
-
-  # Check for libraries that X11R6 Xt/Xaw programs need.
-  ac_save_LDFLAGS=$LDFLAGS
-  test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
-  # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
-  # check for ICE first), but we must link in the order -lSM -lICE or
-  # we get undefined symbols.  So assume we have SM if we have ICE.
-  # These have to be linked with before -lX11, unlike the other
-  # libraries we check for below, so use a different variable.
-  # John Interrante, Karl Berry
-  { echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5
-echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6; }
-if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lICE $X_EXTRA_LIBS $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char IceConnectionNumber ();
-int
-main ()
-{
-return IceConnectionNumber ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_ICE_IceConnectionNumber=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_ICE_IceConnectionNumber=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
-echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
-if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
-  X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
-fi
-
-  LDFLAGS=$ac_save_LDFLAGS
-
-fi
-
-{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_stdc=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-                  (('a' <= (c) && (c) <= 'i') \
-                    || ('j' <= (c) && (c) <= 'r') \
-                    || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-       || toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
-echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; }
-if test "${ac_cv_header_sys_wait_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/wait.h>
-#ifndef WEXITSTATUS
-# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
-
-int
-main ()
-{
-  int s;
-  wait (&s);
-  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_sys_wait_h=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_sys_wait_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; }
-if test $ac_cv_header_sys_wait_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_WAIT_H 1
-_ACEOF
-
-fi
-
-
-
-
-
-
-
-
-for ac_header in fcntl.h paths.h termios.h sgtty.h unistd.h malloc.h term.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-for ac_header in sys/filio.h sys/ioctl.h sys/time.h sys/file.h sys/utsname.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-for ac_header in sys/select.h sys/msgbuf.h sys/cdefs.h krb5_err.h termcap.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-if test "$no_x" != "yes"; then
-       ZWGC_LIBX11=-lX11
-fi
-
-
-
-{ echo "$as_me:$LINENO: checking return type of signal handlers" >&5
-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; }
-if test "${ac_cv_type_signal+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <signal.h>
-
-int
-main ()
-{
-return *(signal (0, 0)) (0) == 1;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_signal=int
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_signal=void
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
-echo "${ECHO_T}$ac_cv_type_signal" >&6; }
-
-cat >>confdefs.h <<_ACEOF
-#define RETSIGTYPE $ac_cv_type_signal
-_ACEOF
-
-
-{ echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5
-echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6; }
-if test "${ac_cv_type_uid_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "uid_t" >/dev/null 2>&1; then
-  ac_cv_type_uid_t=yes
-else
-  ac_cv_type_uid_t=no
-fi
-rm -f conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5
-echo "${ECHO_T}$ac_cv_type_uid_t" >&6; }
-if test $ac_cv_type_uid_t = no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define uid_t int
-_ACEOF
-
-
-cat >>confdefs.h <<\_ACEOF
-#define gid_t int
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for short" >&5
-echo $ECHO_N "checking for short... $ECHO_C" >&6; }
-if test "${ac_cv_type_short+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-typedef short ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_short=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_short=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5
-echo "${ECHO_T}$ac_cv_type_short" >&6; }
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ echo "$as_me:$LINENO: checking size of short" >&5
-echo $ECHO_N "checking size of short... $ECHO_C" >&6; }
-if test "${ac_cv_sizeof_short+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef short ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef short ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef short ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef short ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef short ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_short=$ac_lo;;
-'') if test "$ac_cv_type_short" = yes; then
-     { { echo "$as_me:$LINENO: error: cannot compute sizeof (short)
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (short)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-   else
-     ac_cv_sizeof_short=0
-   fi ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef short ac__type_sizeof_;
-static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); }
-static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (((long int) (sizeof (ac__type_sizeof_))) < 0)
-    {
-      long int i = longval ();
-      if (i != ((long int) (sizeof (ac__type_sizeof_))))
-       return 1;
-      fprintf (f, "%ld\n", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ((long int) (sizeof (ac__type_sizeof_))))
-       return 1;
-      fprintf (f, "%lu\n", i);
-    }
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_short=`cat conftest.val`
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-if test "$ac_cv_type_short" = yes; then
-     { { echo "$as_me:$LINENO: error: cannot compute sizeof (short)
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (short)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-   else
-     ac_cv_sizeof_short=0
-   fi
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5
-echo "${ECHO_T}$ac_cv_sizeof_short" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SHORT $ac_cv_sizeof_short
-_ACEOF
-
-
-{ echo "$as_me:$LINENO: checking for int" >&5
-echo $ECHO_N "checking for int... $ECHO_C" >&6; }
-if test "${ac_cv_type_int+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-typedef int ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_int=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_int=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5
-echo "${ECHO_T}$ac_cv_type_int" >&6; }
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ echo "$as_me:$LINENO: checking size of int" >&5
-echo $ECHO_N "checking size of int... $ECHO_C" >&6; }
-if test "${ac_cv_sizeof_int+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef int ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef int ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef int ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef int ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef int ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_int=$ac_lo;;
-'') if test "$ac_cv_type_int" = yes; then
-     { { echo "$as_me:$LINENO: error: cannot compute sizeof (int)
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (int)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-   else
-     ac_cv_sizeof_int=0
-   fi ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef int ac__type_sizeof_;
-static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); }
-static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (((long int) (sizeof (ac__type_sizeof_))) < 0)
-    {
-      long int i = longval ();
-      if (i != ((long int) (sizeof (ac__type_sizeof_))))
-       return 1;
-      fprintf (f, "%ld\n", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ((long int) (sizeof (ac__type_sizeof_))))
-       return 1;
-      fprintf (f, "%lu\n", i);
-    }
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_int=`cat conftest.val`
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-if test "$ac_cv_type_int" = yes; then
-     { { echo "$as_me:$LINENO: error: cannot compute sizeof (int)
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (int)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-   else
-     ac_cv_sizeof_int=0
-   fi
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
-echo "${ECHO_T}$ac_cv_sizeof_int" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-_ACEOF
-
-
-{ echo "$as_me:$LINENO: checking for long" >&5
-echo $ECHO_N "checking for long... $ECHO_C" >&6; }
-if test "${ac_cv_type_long+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-typedef long ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_long=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_long=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5
-echo "${ECHO_T}$ac_cv_type_long" >&6; }
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ echo "$as_me:$LINENO: checking size of long" >&5
-echo $ECHO_N "checking size of long... $ECHO_C" >&6; }
-if test "${ac_cv_sizeof_long+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef long ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef long ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef long ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef long ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef long ac__type_sizeof_;
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_long=$ac_lo;;
-'') if test "$ac_cv_type_long" = yes; then
-     { { echo "$as_me:$LINENO: error: cannot compute sizeof (long)
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (long)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-   else
-     ac_cv_sizeof_long=0
-   fi ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-   typedef long ac__type_sizeof_;
-static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); }
-static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (((long int) (sizeof (ac__type_sizeof_))) < 0)
-    {
-      long int i = longval ();
-      if (i != ((long int) (sizeof (ac__type_sizeof_))))
-       return 1;
-      fprintf (f, "%ld\n", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ((long int) (sizeof (ac__type_sizeof_))))
-       return 1;
-      fprintf (f, "%lu\n", i);
-    }
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_long=`cat conftest.val`
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-if test "$ac_cv_type_long" = yes; then
-     { { echo "$as_me:$LINENO: error: cannot compute sizeof (long)
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (long)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-   else
-     ac_cv_sizeof_long=0
-   fi
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
-echo "${ECHO_T}$ac_cv_sizeof_long" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-_ACEOF
-
-
-{ echo "$as_me:$LINENO: checking for 32-bit integer type" >&5
-echo $ECHO_N "checking for 32-bit integer type... $ECHO_C" >&6; }
-if test "$ac_cv_sizeof_long" = 4; then
-       int32=long
-elif test "$ac_cv_sizeof_int" = 4; then
-       int32=int
-elif test "$ac_cv_sizeof_short" = 4; then
-       int32=short
-else
-       { echo "$as_me:$LINENO: WARNING: Can't find 32-bit type, using long" >&5
-echo "$as_me: WARNING: Can't find 32-bit type, using long" >&2;}
-       int32=long
-fi
-cat >>confdefs.h <<_ACEOF
-#define ZEPHYR_INT32 ${int32}
-_ACEOF
-
-{ echo "$as_me:$LINENO: result: ${int32}" >&5
-echo "${ECHO_T}${int32}" >&6; }
-
-
-{ echo "$as_me:$LINENO: checking for wslen in -lw" >&5
-echo $ECHO_N "checking for wslen in -lw... $ECHO_C" >&6; }
-if test "${ac_cv_lib_w_wslen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lw  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char wslen ();
-int
-main ()
-{
-return wslen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_w_wslen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_w_wslen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_w_wslen" >&5
-echo "${ECHO_T}$ac_cv_lib_w_wslen" >&6; }
-if test $ac_cv_lib_w_wslen = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBW 1
-_ACEOF
-
-  LIBS="-lw $LIBS"
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBDL 1
-_ACEOF
-
-  LIBS="-ldl $LIBS"
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5
-echo $ECHO_N "checking for library containing gethostbyname... $ECHO_C" >&6; }
-if test "${ac_cv_search_gethostbyname+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' nsl; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_gethostbyname=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_gethostbyname+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_gethostbyname+set}" = set; then
-  :
-else
-  ac_cv_search_gethostbyname=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_search_gethostbyname" >&6; }
-ac_res=$ac_cv_search_gethostbyname
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-{ echo "$as_me:$LINENO: checking for library containing socket" >&5
-echo $ECHO_N "checking for library containing socket... $ECHO_C" >&6; }
-if test "${ac_cv_search_socket+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-int
-main ()
-{
-return socket ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' socket; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_socket=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_socket+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_socket+set}" = set; then
-  :
-else
-  ac_cv_search_socket=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_socket" >&5
-echo "${ECHO_T}$ac_cv_search_socket" >&6; }
-ac_res=$ac_cv_search_socket
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-
-# Hesiod needs -lresolv on Sun systems for res_send.
-if test "$hesiod" != "no"; then
-
-{ echo "$as_me:$LINENO: checking for strerror in -l44bsd" >&5
-echo $ECHO_N "checking for strerror in -l44bsd... $ECHO_C" >&6; }
-if test "${ac_cv_lib_44bsd_strerror+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l44bsd  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char strerror ();
-int
-main ()
-{
-return strerror ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_44bsd_strerror=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_44bsd_strerror=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_44bsd_strerror" >&5
-echo "${ECHO_T}$ac_cv_lib_44bsd_strerror" >&6; }
-if test $ac_cv_lib_44bsd_strerror = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIB44BSD 1
-_ACEOF
-
-  LIBS="-l44bsd $LIBS"
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for res_send in -lresolv" >&5
-echo $ECHO_N "checking for res_send in -lresolv... $ECHO_C" >&6; }
-if test "${ac_cv_lib_resolv_res_send+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lresolv  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char res_send ();
-int
-main ()
-{
-return res_send ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_resolv_res_send=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_resolv_res_send=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_res_send" >&5
-echo "${ECHO_T}$ac_cv_lib_resolv_res_send" >&6; }
-if test $ac_cv_lib_resolv_res_send = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRESOLV 1
-_ACEOF
-
-  LIBS="-lresolv $LIBS"
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for __res_send in -lresolv" >&5
-echo $ECHO_N "checking for __res_send in -lresolv... $ECHO_C" >&6; }
-if test "${ac_cv_lib_resolv___res_send+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lresolv  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char __res_send ();
-int
-main ()
-{
-return __res_send ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_resolv___res_send=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_resolv___res_send=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_resolv___res_send" >&5
-echo "${ECHO_T}$ac_cv_lib_resolv___res_send" >&6; }
-if test $ac_cv_lib_resolv___res_send = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRESOLV 1
-_ACEOF
-
-  LIBS="-lresolv $LIBS"
-
-fi
-
-fi
-
-{ echo "$as_me:$LINENO: checking for tgetstr in -lcurses" >&5
-echo $ECHO_N "checking for tgetstr in -lcurses... $ECHO_C" >&6; }
-if test "${ac_cv_lib_curses_tgetstr+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcurses  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char tgetstr ();
-int
-main ()
-{
-return tgetstr ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_curses_tgetstr=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_curses_tgetstr=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetstr" >&5
-echo "${ECHO_T}$ac_cv_lib_curses_tgetstr" >&6; }
-if test $ac_cv_lib_curses_tgetstr = yes; then
-  TLIB=-lcurses
-else
-  TLIB=-ltermcap
-fi
-
-{ echo "$as_me:$LINENO: checking for srcsrpy in -lsrc" >&5
-echo $ECHO_N "checking for srcsrpy in -lsrc... $ECHO_C" >&6; }
-if test "${ac_cv_lib_src_srcsrpy+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsrc  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char srcsrpy ();
-int
-main ()
-{
-return srcsrpy ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_src_srcsrpy=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_src_srcsrpy=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_src_srcsrpy" >&5
-echo "${ECHO_T}$ac_cv_lib_src_srcsrpy" >&6; }
-if test $ac_cv_lib_src_srcsrpy = yes; then
-  SLIB=-lsrc; cat >>confdefs.h <<\_ACEOF
-#define HAVE_SRC 1
-_ACEOF
-
-fi
-
-
-
-
-
-
-# Check whether --with-krb4 was given.
-if test "${with_krb4+set}" = set; then
-  withval=$with_krb4; krb4="$withval"
-else
-  krb4=no
-fi
-
-if test "$krb4" != no; then
-       { echo "$as_me:$LINENO: checking for gethostbyname" >&5
-echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6; }
-if test "${ac_cv_func_gethostbyname+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define gethostbyname innocuous_gethostbyname
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char gethostbyname (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef gethostbyname
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_gethostbyname || defined __stub___gethostbyname
-choke me
-#endif
-
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_gethostbyname=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_gethostbyname=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6; }
-if test $ac_cv_func_gethostbyname = yes; then
-  :
-else
-
-{ echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
-echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_nsl_gethostbyname=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_nsl_gethostbyname=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6; }
-if test $ac_cv_lib_nsl_gethostbyname = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
-_ACEOF
-
-  LIBS="-lnsl $LIBS"
-
-fi
-
-fi
-
-{ echo "$as_me:$LINENO: checking for socket" >&5
-echo $ECHO_N "checking for socket... $ECHO_C" >&6; }
-if test "${ac_cv_func_socket+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define socket to an innocuous variant, in case <limits.h> declares socket.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define socket innocuous_socket
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char socket (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef socket
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_socket || defined __stub___socket
-choke me
-#endif
-
-int
-main ()
-{
-return socket ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_socket=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_socket=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_socket" >&5
-echo "${ECHO_T}$ac_cv_func_socket" >&6; }
-if test $ac_cv_func_socket = yes; then
-  :
-else
-
-{ echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
-echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6; }
-if test "${ac_cv_lib_socket_socket+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-int
-main ()
-{
-return socket ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_socket_socket=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_socket_socket=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6; }
-if test $ac_cv_lib_socket_socket = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
-  LIBS="-lsocket $LIBS"
-
-fi
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for compile in -lgen" >&5
-echo $ECHO_N "checking for compile in -lgen... $ECHO_C" >&6; }
-if test "${ac_cv_lib_gen_compile+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgen  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char compile ();
-int
-main ()
-{
-return compile ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_gen_compile=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_gen_compile=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_gen_compile" >&5
-echo "${ECHO_T}$ac_cv_lib_gen_compile" >&6; }
-if test $ac_cv_lib_gen_compile = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBGEN 1
-_ACEOF
-
-  LIBS="-lgen $LIBS"
-
-fi
-
-if test "$krb4" != yes; then
-       CPPFLAGS="$CPPFLAGS -I$krb4/include"
-       if test -d "$krb4/include/kerberosIV"; then
-               CPPFLAGS="$CPPFLAGS -I$krb4/include/kerberosIV"
-       fi
-       LDFLAGS="$LDFLAGS -L$krb4/lib"
-fi
-{ echo "$as_me:$LINENO: checking for krb_rd_req in -lkrb4" >&5
-echo $ECHO_N "checking for krb_rd_req in -lkrb4... $ECHO_C" >&6; }
-if test "${ac_cv_lib_krb4_krb_rd_req+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char krb_rd_req ();
-int
-main ()
-{
-return krb_rd_req ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_krb4_krb_rd_req=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_krb4_krb_rd_req=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_krb4_krb_rd_req" >&5
-echo "${ECHO_T}$ac_cv_lib_krb4_krb_rd_req" >&6; }
-if test $ac_cv_lib_krb4_krb_rd_req = yes; then
-  KRB4_LIBS="-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"
-else
-  { echo "$as_me:$LINENO: checking for krb_rd_req in -lkrb" >&5
-echo $ECHO_N "checking for krb_rd_req in -lkrb... $ECHO_C" >&6; }
-if test "${ac_cv_lib_krb_krb_rd_req+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lkrb -ldes $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char krb_rd_req ();
-int
-main ()
-{
-return krb_rd_req ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_krb_krb_rd_req=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_krb_krb_rd_req=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_krb_krb_rd_req" >&5
-echo "${ECHO_T}$ac_cv_lib_krb_krb_rd_req" >&6; }
-if test $ac_cv_lib_krb_krb_rd_req = yes; then
-  KRB4_LIBS="-lkrb -ldes"
-else
-  { { echo "$as_me:$LINENO: error: Kerberos 4 libraries not found" >&5
-echo "$as_me: error: Kerberos 4 libraries not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-
-       cat >>confdefs.h <<\_ACEOF
-#define HAVE_KRB4 1
-_ACEOF
-
-fi
-
-
-
-# Check whether --with-krb5 was given.
-if test "${with_krb5+set}" = set; then
-  withval=$with_krb5; krb5="$withval"
-else
-  krb5=no
-fi
-
-if test "$krb5" != no; then
-   { echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5
-echo $ECHO_N "checking for library containing gethostbyname... $ECHO_C" >&6; }
-if test "${ac_cv_search_gethostbyname+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' nsl; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_gethostbyname=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_gethostbyname+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_gethostbyname+set}" = set; then
-  :
-else
-  ac_cv_search_gethostbyname=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_search_gethostbyname" >&6; }
-ac_res=$ac_cv_search_gethostbyname
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-   { echo "$as_me:$LINENO: checking for library containing socket" >&5
-echo $ECHO_N "checking for library containing socket... $ECHO_C" >&6; }
-if test "${ac_cv_search_socket+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-int
-main ()
-{
-return socket ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' socket; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_socket=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_socket+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_socket+set}" = set; then
-  :
-else
-  ac_cv_search_socket=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_socket" >&5
-echo "${ECHO_T}$ac_cv_search_socket" >&6; }
-ac_res=$ac_cv_search_socket
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for compile in -lgen" >&5
-echo $ECHO_N "checking for compile in -lgen... $ECHO_C" >&6; }
-if test "${ac_cv_lib_gen_compile+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgen  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char compile ();
-int
-main ()
-{
-return compile ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_gen_compile=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_gen_compile=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_gen_compile" >&5
-echo "${ECHO_T}$ac_cv_lib_gen_compile" >&6; }
-if test $ac_cv_lib_gen_compile = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBGEN 1
-_ACEOF
-
-  LIBS="-lgen $LIBS"
-
-fi
-
-   if test "$krb5" != yes; then
-      PATH="$PATH:$krb5/bin"
-   fi
-   # Extract the first word of "krb5-config", so it can be a program name with args.
-set dummy krb5-config; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_krb5config+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$krb5config"; then
-  ac_cv_prog_krb5config="$krb5config" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_krb5config="yes"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-krb5config=$ac_cv_prog_krb5config
-if test -n "$krb5config"; then
-  { echo "$as_me:$LINENO: result: $krb5config" >&5
-echo "${ECHO_T}$krb5config" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-   if test "$krb5config" == yes; then
-      CPPFLAGS="$CPPFLAGS $(krb5-config --cflags krb5)"
-      KRB5_LIBS="$(krb5-config --libs krb5)"
-   else
-      if test "$krb5" != yes; then
-        CPPFLAGS="$CPPFLAGS -I$krb5/include"
-        LDFLAGS="$LDFLAGS -L$krb5/lib"
-      fi
-      { echo "$as_me:$LINENO: checking for krb5_init_context in -lkrb5" >&5
-echo $ECHO_N "checking for krb5_init_context in -lkrb5... $ECHO_C" >&6; }
-if test "${ac_cv_lib_krb5_krb5_init_context+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lkrb5 -lk5crypto -lcom_err $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char krb5_init_context ();
-int
-main ()
-{
-return krb5_init_context ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_krb5_krb5_init_context=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_krb5_krb5_init_context=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_krb5_krb5_init_context" >&5
-echo "${ECHO_T}$ac_cv_lib_krb5_krb5_init_context" >&6; }
-if test $ac_cv_lib_krb5_krb5_init_context = yes; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: Kerberos 5 libraries not found" >&5
-echo "$as_me: error: Kerberos 5 libraries not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-      KRB5_LIBS="-lkrb5 -l5crypto -lcom_err"
-   fi
-   cat >>confdefs.h <<\_ACEOF
-#define HAVE_KRB5 1
-_ACEOF
-
-fi
-
-
-
-# Check whether --with-hesiod was given.
-if test "${with_hesiod+set}" = set; then
-  withval=$with_hesiod; hesiod="$withval"
-else
-  hesiod=no
-fi
-
-if test "$hesiod" != no; then
-       { echo "$as_me:$LINENO: checking for res_send" >&5
-echo $ECHO_N "checking for res_send... $ECHO_C" >&6; }
-if test "${ac_cv_func_res_send+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define res_send to an innocuous variant, in case <limits.h> declares res_send.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define res_send innocuous_res_send
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char res_send (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef res_send
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char res_send ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_res_send || defined __stub___res_send
-choke me
-#endif
-
-int
-main ()
-{
-return res_send ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_res_send=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_res_send=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_res_send" >&5
-echo "${ECHO_T}$ac_cv_func_res_send" >&6; }
-if test $ac_cv_func_res_send = yes; then
-  :
-else
-
-{ echo "$as_me:$LINENO: checking for res_send in -lresolv" >&5
-echo $ECHO_N "checking for res_send in -lresolv... $ECHO_C" >&6; }
-if test "${ac_cv_lib_resolv_res_send+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lresolv  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char res_send ();
-int
-main ()
-{
-return res_send ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_resolv_res_send=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_resolv_res_send=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_res_send" >&5
-echo "${ECHO_T}$ac_cv_lib_resolv_res_send" >&6; }
-if test $ac_cv_lib_resolv_res_send = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRESOLV 1
-_ACEOF
-
-  LIBS="-lresolv $LIBS"
-
-fi
-
-fi
-
-if test "$hesiod" != yes; then
-       CPPFLAGS="$CPPFLAGS -I$hesiod/include"
-       LDFLAGS="$LDFLAGS -L$hesiod/lib"
-fi
-{ echo "$as_me:$LINENO: checking for hes_resolve in -lhesiod" >&5
-echo $ECHO_N "checking for hes_resolve in -lhesiod... $ECHO_C" >&6; }
-if test "${ac_cv_lib_hesiod_hes_resolve+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lhesiod $LIBS $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char hes_resolve ();
-int
-main ()
-{
-return hes_resolve ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_hesiod_hes_resolve=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_hesiod_hes_resolve=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_hesiod_hes_resolve" >&5
-echo "${ECHO_T}$ac_cv_lib_hesiod_hes_resolve" >&6; }
-if test $ac_cv_lib_hesiod_hes_resolve = yes; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: Hesiod library not found" >&5
-echo "$as_me: error: Hesiod library not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-       HESIOD_LIBS="-lhesiod"
-       cat >>confdefs.h <<\_ACEOF
-#define HAVE_HESIOD 1
-_ACEOF
-
-fi
-
-
-# Check whether --with-regex was given.
-if test "${with_regex+set}" = set; then
-  withval=$with_regex; regex="$withval"
-else
-  regex=no
-fi
-
-if test "$regex" != no; then
-       if test "$regex" != yes; then
-               CPPFLAGS="$CPPFLAGS -I$regex/include"
-               LDFLAGS="$LDFLAGS -L$regex/lib"
-       fi
-       { echo "$as_me:$LINENO: checking for regcomp in -lregex" >&5
-echo $ECHO_N "checking for regcomp in -lregex... $ECHO_C" >&6; }
-if test "${ac_cv_lib_regex_regcomp+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lregex  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char regcomp ();
-int
-main ()
-{
-return regcomp ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_regex_regcomp=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_regex_regcomp=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_regex_regcomp" >&5
-echo "${ECHO_T}$ac_cv_lib_regex_regcomp" >&6; }
-if test $ac_cv_lib_regex_regcomp = yes; then
-  REGEX_LIBS=-lregex
-else
-  { { echo "$as_me:$LINENO: error: regex library not found" >&5
-echo "$as_me: error: regex library not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-else
-       { echo "$as_me:$LINENO: checking for regcomp" >&5
-echo $ECHO_N "checking for regcomp... $ECHO_C" >&6; }
-if test "${ac_cv_func_regcomp+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define regcomp to an innocuous variant, in case <limits.h> declares regcomp.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define regcomp innocuous_regcomp
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char regcomp (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef regcomp
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char regcomp ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_regcomp || defined __stub___regcomp
-choke me
-#endif
-
-int
-main ()
-{
-return regcomp ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_regcomp=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_regcomp=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_regcomp" >&5
-echo "${ECHO_T}$ac_cv_func_regcomp" >&6; }
-if test $ac_cv_func_regcomp = yes; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: can't find POSIX regexp support" >&5
-echo "$as_me: error: can't find POSIX regexp support" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-
-
-# Check whether --with-com_err was given.
-if test "${with_com_err+set}" = set; then
-  withval=$with_com_err; com_err="$withval"
-else
-  com_err=yes
-fi
-
-if test "$com_err" != no; then
-       if test "$com_err" != yes; then
-               CPPFLAGS="$CPPFLAGS -I$com_err/include"
-               LDFLAGS="$LDFLAGS -L$com_err/lib"
-       fi
-       { echo "$as_me:$LINENO: checking for com_err in -lcom_err" >&5
-echo $ECHO_N "checking for com_err in -lcom_err... $ECHO_C" >&6; }
-if test "${ac_cv_lib_com_err_com_err+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcom_err  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char com_err ();
-int
-main ()
-{
-return com_err ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_com_err_com_err=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_com_err_com_err=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_com_err_com_err" >&5
-echo "${ECHO_T}$ac_cv_lib_com_err_com_err" >&6; }
-if test $ac_cv_lib_com_err_com_err = yes; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: com_err library not found" >&5
-echo "$as_me: error: com_err library not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-else
-       { { echo "$as_me:$LINENO: error: This package requires com_err." >&5
-echo "$as_me: error: This package requires com_err." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-# Check whether --with-ss was given.
-if test "${with_ss+set}" = set; then
-  withval=$with_ss; ss="$withval"
-else
-  ss=yes
-fi
-
-if test "$ss" != no; then
-       if test "$ss" != yes; then
-               CPPFLAGS="$CPPFLAGS -I$ss/include"
-               LDFLAGS="$LDFLAGS -L$ss/lib"
-       fi
-
-{ echo "$as_me:$LINENO: checking for initscr in -lcurses" >&5
-echo $ECHO_N "checking for initscr in -lcurses... $ECHO_C" >&6; }
-if test "${ac_cv_lib_curses_initscr+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcurses  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char initscr ();
-int
-main ()
-{
-return initscr ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_curses_initscr=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_curses_initscr=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_curses_initscr" >&5
-echo "${ECHO_T}$ac_cv_lib_curses_initscr" >&6; }
-if test $ac_cv_lib_curses_initscr = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBCURSES 1
-_ACEOF
-
-  LIBS="-lcurses $LIBS"
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for readline in -lreadline" >&5
-echo $ECHO_N "checking for readline in -lreadline... $ECHO_C" >&6; }
-if test "${ac_cv_lib_readline_readline+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lreadline  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char readline ();
-int
-main ()
-{
-return readline ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_readline_readline=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_readline_readline=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_readline_readline" >&5
-echo "${ECHO_T}$ac_cv_lib_readline_readline" >&6; }
-if test $ac_cv_lib_readline_readline = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBREADLINE 1
-_ACEOF
-
-  LIBS="-lreadline $LIBS"
-
-fi
-
-       { echo "$as_me:$LINENO: checking for ss_perror in -lss" >&5
-echo $ECHO_N "checking for ss_perror in -lss... $ECHO_C" >&6; }
-if test "${ac_cv_lib_ss_ss_perror+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lss -lcom_err $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char ss_perror ();
-int
-main ()
-{
-return ss_perror ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_ss_ss_perror=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_ss_ss_perror=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_ss_ss_perror" >&5
-echo "${ECHO_T}$ac_cv_lib_ss_ss_perror" >&6; }
-if test $ac_cv_lib_ss_ss_perror = yes; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: ss library not found" >&5
-echo "$as_me: error: ss library not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-else
-       { { echo "$as_me:$LINENO: error: This package requires ss." >&5
-echo "$as_me: error: This package requires ss." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-LIBS="$KRB5_LIBS $KRB4_LIBS $HESIOD_LIBS $LIBS"
-
-{ echo "$as_me:$LINENO: checking for res_send" >&5
-echo $ECHO_N "checking for res_send... $ECHO_C" >&6; }
-if test "${ac_cv_func_res_send+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define res_send to an innocuous variant, in case <limits.h> declares res_send.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define res_send innocuous_res_send
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char res_send (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef res_send
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char res_send ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_res_send || defined __stub___res_send
-choke me
-#endif
-
-int
-main ()
-{
-return res_send ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_res_send=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_res_send=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_res_send" >&5
-echo "${ECHO_T}$ac_cv_func_res_send" >&6; }
-if test $ac_cv_func_res_send = yes; then
-  :
-else
-
-{ echo "$as_me:$LINENO: checking for res_send in -lresolv" >&5
-echo $ECHO_N "checking for res_send in -lresolv... $ECHO_C" >&6; }
-if test "${ac_cv_lib_resolv_res_send+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lresolv  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char res_send ();
-int
-main ()
-{
-return res_send ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_resolv_res_send=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_resolv_res_send=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_res_send" >&5
-echo "${ECHO_T}$ac_cv_lib_resolv_res_send" >&6; }
-if test $ac_cv_lib_resolv_res_send = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRESOLV 1
-_ACEOF
-
-  LIBS="-lresolv $LIBS"
-
-fi
-
-fi
-
-{ echo "$as_me:$LINENO: checking for ares_getaddrinfo in -lcares" >&5
-echo $ECHO_N "checking for ares_getaddrinfo in -lcares... $ECHO_C" >&6; }
-if test "${ac_cv_lib_cares_ares_getaddrinfo+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcares  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char ares_getaddrinfo ();
-int
-main ()
-{
-return ares_getaddrinfo ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_cares_ares_getaddrinfo=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_cares_ares_getaddrinfo=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_cares_ares_getaddrinfo" >&5
-echo "${ECHO_T}$ac_cv_lib_cares_ares_getaddrinfo" >&6; }
-if test $ac_cv_lib_cares_ares_getaddrinfo = yes; then
-  ARES_LIBS="-lcares"
-                   cat >>confdefs.h <<\_ACEOF
-#define HAVE_ARES 1
-_ACEOF
-
-else
-  :
-fi
-
-
-
-if test $ac_cv_c_compiler_gnu = yes; then
-    { echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
-echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6; }
-if test "${ac_cv_prog_gcc_traditional+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-    ac_pattern="Autoconf.*'x'"
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sgtty.h>
-Autoconf TIOCGETP
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "$ac_pattern" >/dev/null 2>&1; then
-  ac_cv_prog_gcc_traditional=yes
-else
-  ac_cv_prog_gcc_traditional=no
-fi
-rm -f conftest*
-
-
-  if test $ac_cv_prog_gcc_traditional = no; then
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <termio.h>
-Autoconf TCGETA
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "$ac_pattern" >/dev/null 2>&1; then
-  ac_cv_prog_gcc_traditional=yes
-fi
-rm -f conftest*
-
-  fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
-echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6; }
-  if test $ac_cv_prog_gcc_traditional = yes; then
-    CC="$CC -traditional"
-  fi
-fi
-
-
-for ac_func in vprintf
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-{ echo "$as_me:$LINENO: checking for _doprnt" >&5
-echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6; }
-if test "${ac_cv_func__doprnt+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define _doprnt to an innocuous variant, in case <limits.h> declares _doprnt.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define _doprnt innocuous__doprnt
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char _doprnt (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef _doprnt
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char _doprnt ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub__doprnt || defined __stub____doprnt
-choke me
-#endif
-
-int
-main ()
-{
-return _doprnt ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func__doprnt=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func__doprnt=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5
-echo "${ECHO_T}$ac_cv_func__doprnt" >&6; }
-if test $ac_cv_func__doprnt = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DOPRNT 1
-_ACEOF
-
-fi
-
-fi
-done
-
-
-{ echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5
-echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6; }
-if test "${ac_cv_func_getpgrp_void+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Use it with a single arg.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-getpgrp (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_func_getpgrp_void=no
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getpgrp_void=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getpgrp_void" >&5
-echo "${ECHO_T}$ac_cv_func_getpgrp_void" >&6; }
-if test $ac_cv_func_getpgrp_void = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define GETPGRP_VOID 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking whether setpgrp takes no argument" >&5
-echo $ECHO_N "checking whether setpgrp takes no argument... $ECHO_C" >&6; }
-if test "${ac_cv_func_setpgrp_void+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  { { echo "$as_me:$LINENO: error: cannot check setpgrp when cross compiling" >&5
-echo "$as_me: error: cannot check setpgrp when cross compiling" >&2;}
-   { (exit 1); exit 1; }; }
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-/* If this system has a BSD-style setpgrp which takes arguments,
-  setpgrp(1, 1) will fail with ESRCH and return -1, in that case
-  exit successfully. */
-  return setpgrp (1,1) != -1;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_setpgrp_void=no
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_setpgrp_void=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_setpgrp_void" >&5
-echo "${ECHO_T}$ac_cv_func_setpgrp_void" >&6; }
-if test $ac_cv_func_setpgrp_void = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define SETPGRP_VOID 1
-_ACEOF
-
-fi
-
-
-
-
-
-
-
-
-
-for ac_func in putenv strchr memcpy memmove waitpid getlogin strerror random
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-
-
-
-for ac_func in lrand48 gethostid getsid getpgid krb_get_err_text krb_log
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-for ac_func in krb5_free_data krb5_c_make_checksum krb5_cc_set_default_name
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-for ac_func in krb5_crypto_init krb5_c_decrypt
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-{ echo "$as_me:$LINENO: checking for krb5_auth_con_getauthenticator taking double pointer" >&5
-echo $ECHO_N "checking for krb5_auth_con_getauthenticator taking double pointer... $ECHO_C" >&6; }
-if test "${ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-local_save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#define socklen_t int
-#define ssize_t int
-#include <krb5.h>
-krb5_error_code
-krb5_auth_con_getauthenticator(krb5_context context,
-                           krb5_auth_context auth_context,
-                           krb5_authenticator *authenticator);
-int
-main ()
-{
-krb5_error_code foo = krb5_auth_con_getauthenticator(0, 0, 0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer=no
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-CPPFLAGS="${local_save_CPPFLAGS}"
-if test "$ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer" = yes; then
-        cat >>confdefs.h <<\_ACEOF
-#define KRB5_AUTH_CON_GETAUTHENTICATOR_TAKES_DOUBLE_POINTER 1
-_ACEOF
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer" >&5
-echo "${ECHO_T}$ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer" >&6; }
-
-{ echo "$as_me:$LINENO: checking for enc_part2 in struct krb5_ticket" >&5
-echo $ECHO_N "checking for enc_part2 in struct krb5_ticket... $ECHO_C" >&6; }
-if test "${ac_cv_have_krb5_ticket_enc_part2+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-local_save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <krb5.h>
-int
-main ()
-{
-krb5_ticket _tkt; _tkt.enc_part2;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_krb5_ticket_enc_part2=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_krb5_ticket_enc_part2=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-CPPFLAGS="${local_save_CPPFLAGS}"
-if test "$ac_cv_have_krb5_ticket_enc_part2" = yes; then
-       cat >>confdefs.h <<\_ACEOF
-#define HAVE_KRB5_TICKET_ENC_PART2 1
-_ACEOF
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_have_krb5_ticket_enc_part2" >&5
-echo "${ECHO_T}$ac_cv_have_krb5_ticket_enc_part2" >&6; }
-
-{ echo "$as_me:$LINENO: checking for enctype in struct krb5_keyblock" >&5
-echo $ECHO_N "checking for enctype in struct krb5_keyblock... $ECHO_C" >&6; }
-if test "${ac_cv_have_krb5_creds_keyblock_enctype+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-local_save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <krb5.h>
-int
-main ()
-{
-krb5_creds _creds; _creds.keyblock.enctype;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_krb5_creds_keyblock_enctype=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_krb5_creds_keyblock_enctype=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-CPPFLAGS="${local_save_CPPFLAGS}"
-if test "$ac_cv_have_krb5_creds_keyblock_enctype" = yes; then
-       cat >>confdefs.h <<\_ACEOF
-#define HAVE_KRB5_CREDS_KEYBLOCK_ENCTYPE 1
-_ACEOF
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_have_krb5_creds_keyblock_enctype" >&5
-echo "${ECHO_T}$ac_cv_have_krb5_creds_keyblock_enctype" >&6; }
-
-# Check whether --enable-cmu-zwgcplus was given.
-if test "${enable_cmu_zwgcplus+set}" = set; then
-  enableval=$enable_cmu_zwgcplus;
-if test "$enableval" = "yes"; then
-        cat >>confdefs.h <<\_ACEOF
-#define CMU_ZWGCPLUS 1
-_ACEOF
-
-fi
-
-fi
-
-
-# Check whether --enable-cmu-zctl-punt was given.
-if test "${enable_cmu_zctl_punt+set}" = set; then
-  enableval=$enable_cmu_zctl_punt;
-if test "$enableval" = "yes"; then
-        cat >>confdefs.h <<\_ACEOF
-#define CMU_ZCTL_PUNT 1
-_ACEOF
-
-fi
-
-fi
-
-
-# Check whether --enable-cmu-hm-flush-restrict was given.
-if test "${enable_cmu_hm_flush_restrict+set}" = set; then
-  enableval=$enable_cmu_hm_flush_restrict;
-if test "$enableval" = "yes"; then
-        cat >>confdefs.h <<\_ACEOF
-#define HM_FLUSH_RESTRICT 1
-_ACEOF
-
-fi
-
-fi
-
-
-# Check whether --enable-cmu-opstaff-locate-self was given.
-if test "${enable_cmu_opstaff_locate_self+set}" = set; then
-  enableval=$enable_cmu_opstaff_locate_self;
-if test "$enableval" = "yes"; then
-        cat >>confdefs.h <<\_ACEOF
-#define OPSTAFF_LOCATE_SELF 1
-_ACEOF
-
-fi
-
-fi
-
-
-ac_config_headers="$ac_config_headers h/config.h"
-
-ac_config_files="$ac_config_files Makefile clients/Makefile clients/zaway/Makefile clients/zctl/Makefile clients/zleave/Makefile clients/zlocate/Makefile clients/znol/Makefile clients/zshutdown_notify/Makefile clients/zstat/Makefile clients/zwrite/Makefile lib/Makefile libdyn/Makefile server/Makefile zhm/Makefile zwgc/Makefile"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      *) $as_unset $ac_var ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-       "s/'/'\\\\''/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
-      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
-echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
-  else
-    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-as_nl='
-'
-IFS=" ""       $as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-    as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-        test -d "$1/.";
-      else
-       case $1 in
-        -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-
-# Save the log message, to keep $[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-                  instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-                  instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Report bugs to <bug-autoconf@gnu.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.61,
-  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2006 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    echo "$ac_cs_version"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  --he | --h)
-    # Conflict between --help and --header
-    { echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1"
-     ac_need_defaults=false ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  CONFIG_SHELL=$SHELL
-  export CONFIG_SHELL
-  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "h/config.h") CONFIG_HEADERS="$CONFIG_HEADERS h/config.h" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "clients/Makefile") CONFIG_FILES="$CONFIG_FILES clients/Makefile" ;;
-    "clients/zaway/Makefile") CONFIG_FILES="$CONFIG_FILES clients/zaway/Makefile" ;;
-    "clients/zctl/Makefile") CONFIG_FILES="$CONFIG_FILES clients/zctl/Makefile" ;;
-    "clients/zleave/Makefile") CONFIG_FILES="$CONFIG_FILES clients/zleave/Makefile" ;;
-    "clients/zlocate/Makefile") CONFIG_FILES="$CONFIG_FILES clients/zlocate/Makefile" ;;
-    "clients/znol/Makefile") CONFIG_FILES="$CONFIG_FILES clients/znol/Makefile" ;;
-    "clients/zshutdown_notify/Makefile") CONFIG_FILES="$CONFIG_FILES clients/zshutdown_notify/Makefile" ;;
-    "clients/zstat/Makefile") CONFIG_FILES="$CONFIG_FILES clients/zstat/Makefile" ;;
-    "clients/zwrite/Makefile") CONFIG_FILES="$CONFIG_FILES clients/zwrite/Makefile" ;;
-    "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
-    "libdyn/Makefile") CONFIG_FILES="$CONFIG_FILES libdyn/Makefile" ;;
-    "server/Makefile") CONFIG_FILES="$CONFIG_FILES server/Makefile" ;;
-    "zhm/Makefile") CONFIG_FILES="$CONFIG_FILES zhm/Makefile" ;;
-    "zwgc/Makefile") CONFIG_FILES="$CONFIG_FILES zwgc/Makefile" ;;
-
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp=
-  trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-#
-# Set up the sed scripts for CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "$CONFIG_FILES"; then
-
-_ACEOF
-
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-SHELL!$SHELL$ac_delim
-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
-PACKAGE_NAME!$PACKAGE_NAME$ac_delim
-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
-PACKAGE_STRING!$PACKAGE_STRING$ac_delim
-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
-exec_prefix!$exec_prefix$ac_delim
-prefix!$prefix$ac_delim
-program_transform_name!$program_transform_name$ac_delim
-bindir!$bindir$ac_delim
-sbindir!$sbindir$ac_delim
-libexecdir!$libexecdir$ac_delim
-datarootdir!$datarootdir$ac_delim
-datadir!$datadir$ac_delim
-sysconfdir!$sysconfdir$ac_delim
-sharedstatedir!$sharedstatedir$ac_delim
-localstatedir!$localstatedir$ac_delim
-includedir!$includedir$ac_delim
-oldincludedir!$oldincludedir$ac_delim
-docdir!$docdir$ac_delim
-infodir!$infodir$ac_delim
-htmldir!$htmldir$ac_delim
-dvidir!$dvidir$ac_delim
-pdfdir!$pdfdir$ac_delim
-psdir!$psdir$ac_delim
-libdir!$libdir$ac_delim
-localedir!$localedir$ac_delim
-mandir!$mandir$ac_delim
-DEFS!$DEFS$ac_delim
-ECHO_C!$ECHO_C$ac_delim
-ECHO_N!$ECHO_N$ac_delim
-ECHO_T!$ECHO_T$ac_delim
-LIBS!$LIBS$ac_delim
-build_alias!$build_alias$ac_delim
-host_alias!$host_alias$ac_delim
-target_alias!$target_alias$ac_delim
-lbindir!$lbindir$ac_delim
-lsbindir!$lsbindir$ac_delim
-build!$build$ac_delim
-build_cpu!$build_cpu$ac_delim
-build_vendor!$build_vendor$ac_delim
-build_os!$build_os$ac_delim
-host!$host$ac_delim
-host_cpu!$host_cpu$ac_delim
-host_vendor!$host_vendor$ac_delim
-host_os!$host_os$ac_delim
-target!$target$ac_delim
-target_cpu!$target_cpu$ac_delim
-target_vendor!$target_vendor$ac_delim
-target_os!$target_os$ac_delim
-CC!$CC$ac_delim
-CFLAGS!$CFLAGS$ac_delim
-LDFLAGS!$LDFLAGS$ac_delim
-CPPFLAGS!$CPPFLAGS$ac_delim
-ac_ct_CC!$ac_ct_CC$ac_delim
-EXEEXT!$EXEEXT$ac_delim
-OBJEXT!$OBJEXT$ac_delim
-YACC!$YACC$ac_delim
-YFLAGS!$YFLAGS$ac_delim
-LEX!$LEX$ac_delim
-LEX_OUTPUT_ROOT!$LEX_OUTPUT_ROOT$ac_delim
-LEXLIB!$LEXLIB$ac_delim
-INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
-INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
-INSTALL_DATA!$INSTALL_DATA$ac_delim
-RANLIB!$RANLIB$ac_delim
-GREP!$GREP$ac_delim
-EGREP!$EGREP$ac_delim
-LN_S!$LN_S$ac_delim
-ECHO!$ECHO$ac_delim
-AR!$AR$ac_delim
-STRIP!$STRIP$ac_delim
-CPP!$CPP$ac_delim
-CXX!$CXX$ac_delim
-CXXFLAGS!$CXXFLAGS$ac_delim
-ac_ct_CXX!$ac_ct_CXX$ac_delim
-CXXCPP!$CXXCPP$ac_delim
-F77!$F77$ac_delim
-FFLAGS!$FFLAGS$ac_delim
-ac_ct_F77!$ac_ct_F77$ac_delim
-LIBTOOL!$LIBTOOL$ac_delim
-XMKMF!$XMKMF$ac_delim
-X_CFLAGS!$X_CFLAGS$ac_delim
-X_PRE_LIBS!$X_PRE_LIBS$ac_delim
-X_LIBS!$X_LIBS$ac_delim
-X_EXTRA_LIBS!$X_EXTRA_LIBS$ac_delim
-XCLIENTS!$XCLIENTS$ac_delim
-ZWGC_LIBX11!$ZWGC_LIBX11$ac_delim
-TLIB!$TLIB$ac_delim
-RLIB!$RLIB$ac_delim
-SLIB!$SLIB$ac_delim
-KRB4_LIBS!$KRB4_LIBS$ac_delim
-krb5config!$krb5config$ac_delim
-KRB5_LIBS!$KRB5_LIBS$ac_delim
-HESIOD_LIBS!$HESIOD_LIBS$ac_delim
-REGEX_LIBS!$REGEX_LIBS$ac_delim
-_ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-CEOF$ac_eof
-_ACEOF
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-ARES_LIBS!$ARES_LIBS$ac_delim
-LIBOBJS!$LIBOBJS$ac_delim
-LTLIBOBJS!$LTLIBOBJS$ac_delim
-_ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 3; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-:end
-s/|#_!!_#|//g
-CEOF$ac_eof
-_ACEOF
-
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[         ]*VPATH[        ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[    ]*\):*/\1/
-s/:*$//
-s/^[^=]*=[      ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-fi # test -n "$CONFIG_FILES"
-
-
-for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-echo "$as_me: error: Invalid tag $ac_tag." >&2;}
-   { (exit 1); exit 1; }; };;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-        # (if the path is not absolute).  The absolute path cannot be DOS-style,
-        # because $ac_f cannot contain `:'.
-        test -f "$ac_f" ||
-          case $ac_f in
-          [\\/$]*) false;;
-          *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-          esac ||
-          { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-   { (exit 1); exit 1; }; };;
-      esac
-      ac_file_inputs="$ac_file_inputs $ac_f"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input="Generated from "`IFS=:
-         echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    fi
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin";;
-    esac
-    ;;
-  esac
-
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$ac_file" : 'X\(//\)[^/]' \| \
-        X"$ac_file" : 'X\(//\)$' \| \
-        X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-  { as_dir="$ac_dir"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-
-case `sed -n '/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p
-' $ac_file_inputs` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-    s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s&@configure_input@&$configure_input&;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-$ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&5
-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&2;}
-
-  rm -f "$tmp/stdin"
-  case $ac_file in
-  -) cat "$tmp/out"; rm -f "$tmp/out";;
-  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
-  esac
- ;;
-  :H)
-  #
-  # CONFIG_HEADER
-  #
-_ACEOF
-
-# Transform confdefs.h into a sed script `conftest.defines', that
-# substitutes the proper values into config.h.in to produce config.h.
-rm -f conftest.defines conftest.tail
-# First, append a space to every undef/define line, to ease matching.
-echo 's/$/ /' >conftest.defines
-# Then, protect against being on the right side of a sed subst, or in
-# an unquoted here document, in config.status.  If some macros were
-# called several times there might be several #defines for the same
-# symbol, which is useless.  But do not sort them, since the last
-# AC_DEFINE must be honored.
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
-# NAME is the cpp macro being defined, VALUE is the value it is being given.
-# PARAMS is the parameter list in the macro definition--in most cases, it's
-# just an empty string.
-ac_dA='s,^\\([  #]*\\)[^        ]*\\([  ]*'
-ac_dB='\\)[     (].*,\\1define\\2'
-ac_dC=' '
-ac_dD=' ,'
-
-uniq confdefs.h |
-  sed -n '
-       t rset
-       :rset
-       s/^[     ]*#[    ]*define[       ][      ]*//
-       t ok
-       d
-       :ok
-       s/[\\&,]/\\&/g
-       s/^\('"$ac_word_re"'\)\(([^()]*)\)[      ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
-       s/^\('"$ac_word_re"'\)[  ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
-  ' >>conftest.defines
-
-# Remove the space that was appended to ease matching.
-# Then replace #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-# (The regexp can be short, since the line contains either #define or #undef.)
-echo 's/ $//
-s,^[    #]*u.*,/* & */,' >>conftest.defines
-
-# Break up conftest.defines:
-ac_max_sed_lines=50
-
-# First sed command is:         sed -f defines.sed $ac_file_inputs >"$tmp/out1"
-# Second one is:        sed -f defines.sed "$tmp/out1" >"$tmp/out2"
-# Third one will be:    sed -f defines.sed "$tmp/out2" >"$tmp/out1"
-# et cetera.
-ac_in='$ac_file_inputs'
-ac_out='"$tmp/out1"'
-ac_nxt='"$tmp/out2"'
-
-while :
-do
-  # Write a here document:
-    cat >>$CONFIG_STATUS <<_ACEOF
-    # First, check the format of the line:
-    cat >"\$tmp/defines.sed" <<\\CEOF
-/^[     ]*#[    ]*undef[        ][      ]*$ac_word_re[  ]*\$/b def
-/^[     ]*#[    ]*define[       ][      ]*$ac_word_re[(         ]/b def
-b
-:def
-_ACEOF
-  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
-  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
-  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
-  grep . conftest.tail >/dev/null || break
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines conftest.tail
-
-echo "ac_result=$ac_in" >>$CONFIG_STATUS
-cat >>$CONFIG_STATUS <<\_ACEOF
-  if test x"$ac_file" != x-; then
-    echo "/* $configure_input  */" >"$tmp/config.h"
-    cat "$ac_result" >>"$tmp/config.h"
-    if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      rm -f $ac_file
-      mv "$tmp/config.h" $ac_file
-    fi
-  else
-    echo "/* $configure_input  */"
-    cat "$ac_result"
-  fi
-  rm -f "$tmp/out12"
- ;;
-
-
-  esac
-
-done # for ac_tag
-
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
diff --git a/zephyr/configure.in b/zephyr/configure.in
deleted file mode 100644 (file)
index 377ed26..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-AC_INIT(server/server.c)
-
-test -d h || mkdir h
-test -d h/zephyr || mkdir h/zephyr
-
-test -z "$lbindir" && lbindir='${bindir}'
-test -z "$lsbindir" && lsbindir='${sbindir}'
-AC_SUBST(lbindir)
-AC_SUBST(lsbindir)
-
-AC_CANONICAL_SYSTEM
-AC_DEFINE_UNQUOTED(MACHINE_TYPE, "$host")
-
-dnl Checks for programs.
-AC_PROG_CC
-AC_PROG_YACC
-AC_PROG_LEX
-AC_PROG_INSTALL
-AC_PROG_RANLIB
-AC_PROG_LIBTOOL
-
-AC_MSG_CHECKING(location of temporary directory)
-if test -d /var/tmp; then
-       found_tmp=/var/tmp/
-elif test -d /usr/tmp; then
-       found_tmp=/usr/tmp/
-else
-       found_tmp=/tmp/
-fi
-AC_DEFINE_UNQUOTED(FOUND_TMP, "${found_tmp}")
-AC_MSG_RESULT(${found_tmp})
-
-dnl Checks for header files.
-AC_PATH_XTRA
-AC_HEADER_STDC
-AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(fcntl.h paths.h termios.h sgtty.h unistd.h malloc.h term.h)
-AC_CHECK_HEADERS(sys/filio.h sys/ioctl.h sys/time.h sys/file.h sys/utsname.h)
-AC_CHECK_HEADERS(sys/select.h sys/msgbuf.h sys/cdefs.h krb5_err.h termcap.h)
-
-if test "$no_x" != "yes"; then
-       ZWGC_LIBX11=-lX11
-fi
-AC_SUBST(XCLIENTS)
-AC_SUBST(ZWGC_LIBX11)
-
-dnl Checks for typedefs, structures, and compiler characteristics.
-AC_TYPE_SIGNAL
-AC_TYPE_UID_T
-AC_CHECK_SIZEOF(short)
-AC_CHECK_SIZEOF(int)
-AC_CHECK_SIZEOF(long)
-AC_MSG_CHECKING(for 32-bit integer type)
-if test "$ac_cv_sizeof_long" = 4; then
-       int32=long
-elif test "$ac_cv_sizeof_int" = 4; then
-       int32=int
-elif test "$ac_cv_sizeof_short" = 4; then
-       int32=short
-else
-       AC_WARN([Can't find 32-bit type, using long])
-       int32=long
-fi
-AC_DEFINE_UNQUOTED(ZEPHYR_INT32, ${int32})
-AC_MSG_RESULT(${int32})
-
-AC_CHECK_LIB(w, wslen)
-AC_CHECK_LIB(dl, dlopen)
-
-AC_SEARCH_LIBS(gethostbyname, nsl)
-AC_SEARCH_LIBS(socket, socket)
-
-# Hesiod needs -lresolv on Sun systems for res_send.
-if test "$hesiod" != "no"; then
-       AC_CHECK_LIB(44bsd, strerror)
-       AC_CHECK_LIB(resolv, res_send)
-       AC_CHECK_LIB(resolv, __res_send)
-fi
-
-AC_CHECK_LIB(curses, tgetstr, [TLIB=-lcurses], [TLIB=-ltermcap])
-AC_CHECK_LIB(src, srcsrpy, [SLIB=-lsrc; AC_DEFINE(HAVE_SRC)])
-AC_SUBST(TLIB)
-AC_SUBST(RLIB)
-AC_SUBST(SLIB)
-
-ATHENA_KRB4
-
-AC_ARG_WITH(krb5,
-           [  --with-krb5=PREFIX      Use Kerberos 5],
-           [krb5="$withval"], [krb5=no])
-if test "$krb5" != no; then
-   AC_SEARCH_LIBS(gethostbyname, nsl)
-   AC_SEARCH_LIBS(socket, socket)
-   AC_CHECK_LIB(gen, compile)
-   if test "$krb5" != yes; then
-      PATH="$PATH:$krb5/bin"
-   fi
-   AC_CHECK_PROG(krb5config, krb5-config,yes)
-   if test "$krb5config" == yes; then
-      CPPFLAGS="$CPPFLAGS $(krb5-config --cflags krb5)"
-      KRB5_LIBS="$(krb5-config --libs krb5)"
-   else
-      if test "$krb5" != yes; then
-        CPPFLAGS="$CPPFLAGS -I$krb5/include"
-        LDFLAGS="$LDFLAGS -L$krb5/lib"
-      fi
-      AC_CHECK_LIB(krb5, krb5_init_context, :,
-                  [AC_MSG_ERROR(Kerberos 5 libraries not found)],
-                  -lk5crypto -lcom_err)
-      KRB5_LIBS="-lkrb5 -l5crypto -lcom_err"
-   fi
-   AC_DEFINE(HAVE_KRB5)
-fi
-AC_SUBST(KRB5_LIBS)
-
-ATHENA_HESIOD
-ATHENA_REGEXP
-ATHENA_UTIL_COM_ERR
-ATHENA_UTIL_SS
-LIBS="$KRB5_LIBS $KRB4_LIBS $HESIOD_LIBS $LIBS"
-
-dnl Checks for library functions.
-AC_CHECK_FUNC(res_send, :, AC_CHECK_LIB(resolv, res_send))
-AC_CHECK_LIB(cares, ares_getaddrinfo,
-                   [ARES_LIBS="-lcares"
-                   AC_DEFINE(HAVE_ARES)],
-                   :)
-AC_SUBST(ARES_LIBS)
-                   
-AC_PROG_GCC_TRADITIONAL
-AC_FUNC_VPRINTF
-AC_FUNC_GETPGRP
-AC_FUNC_SETPGRP
-AC_CHECK_FUNCS(putenv strchr memcpy memmove waitpid getlogin strerror random)
-AC_CHECK_FUNCS(lrand48 gethostid getsid getpgid krb_get_err_text krb_log)
-AC_CHECK_FUNCS(krb5_free_data krb5_c_make_checksum krb5_cc_set_default_name)
-AC_CHECK_FUNCS(krb5_crypto_init krb5_c_decrypt)
-
-AC_MSG_CHECKING(for krb5_auth_con_getauthenticator taking double pointer)
-AC_CACHE_VAL(ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer, [
-local_save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
-AC_TRY_COMPILE(
-[#define socklen_t int
-#define ssize_t int
-#include <krb5.h>
-krb5_error_code
-krb5_auth_con_getauthenticator(krb5_context context,
-                           krb5_auth_context auth_context,
-                           krb5_authenticator *authenticator);],
-[krb5_error_code foo = krb5_auth_con_getauthenticator(0, 0, 0);],
-ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer=no,
-ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer=yes)
-])
-CPPFLAGS="${local_save_CPPFLAGS}"
-if test "$ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer" = yes; then
-        AC_DEFINE(KRB5_AUTH_CON_GETAUTHENTICATOR_TAKES_DOUBLE_POINTER)dnl
-fi
-AC_MSG_RESULT($ac_cv_krb5_auth_con_getauthenticator_takes_double_pointer)
-
-AC_MSG_CHECKING(for enc_part2 in struct krb5_ticket)
-AC_CACHE_VAL(ac_cv_have_krb5_ticket_enc_part2, [
-local_save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
-AC_TRY_COMPILE(
-[#include <krb5.h>], [krb5_ticket _tkt; _tkt.enc_part2;],
-ac_cv_have_krb5_ticket_enc_part2=yes,
-ac_cv_have_krb5_ticket_enc_part2=no)
-])
-CPPFLAGS="${local_save_CPPFLAGS}"
-if test "$ac_cv_have_krb5_ticket_enc_part2" = yes; then
-       AC_DEFINE(HAVE_KRB5_TICKET_ENC_PART2)dnl
-fi
-AC_MSG_RESULT($ac_cv_have_krb5_ticket_enc_part2)
-
-AC_MSG_CHECKING(for enctype in struct krb5_keyblock)
-AC_CACHE_VAL(ac_cv_have_krb5_creds_keyblock_enctype, [
-local_save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="${CPPFLAGS} ${KRB5_INC_FLAGS}"
-AC_TRY_COMPILE(
-[#include <krb5.h>], [krb5_creds _creds; _creds.keyblock.enctype;],
-ac_cv_have_krb5_creds_keyblock_enctype=yes,
-ac_cv_have_krb5_creds_keyblock_enctype=no)
-])
-CPPFLAGS="${local_save_CPPFLAGS}"
-if test "$ac_cv_have_krb5_creds_keyblock_enctype" = yes; then
-       AC_DEFINE(HAVE_KRB5_CREDS_KEYBLOCK_ENCTYPE)dnl
-fi
-AC_MSG_RESULT($ac_cv_have_krb5_creds_keyblock_enctype)
-
-AC_ARG_ENABLE(cmu-zwgcplus,
-[  --enable-cmu-zwgcplus   enable CMU zwgcplus extensions],[
-if test "$enableval" = "yes"; then
-        AC_DEFINE(CMU_ZWGCPLUS,1)
-fi
-])
-
-AC_ARG_ENABLE(cmu-zctl-punt,
-[  --enable-cmu-zctl-punt  enable CMU zctl punt extensions],[
-if test "$enableval" = "yes"; then
-        AC_DEFINE(CMU_ZCTL_PUNT,1)
-fi
-])
-
-AC_ARG_ENABLE(cmu-hm-flush-restrict,
-[  --enable-cmu-hm-flush-restrict   enable CMU zctl hm flush restriction],[
-if test "$enableval" = "yes"; then
-        AC_DEFINE(HM_FLUSH_RESTRICT,1)
-fi
-])
-
-AC_ARG_ENABLE(cmu-opstaff-locate-self,
-[  --enable-cmu-opstaff-locate-self enable CMU opstaff locate-self ability],[
-if test "$enableval" = "yes"; then
-        AC_DEFINE(OPSTAFF_LOCATE_SELF,1)
-fi
-])
-
-AC_CONFIG_HEADER(h/config.h)
-AC_OUTPUT(Makefile clients/Makefile clients/zaway/Makefile
-          clients/zctl/Makefile clients/zleave/Makefile
-          clients/zlocate/Makefile clients/znol/Makefile
-          clients/zshutdown_notify/Makefile clients/zstat/Makefile
-          clients/zwrite/Makefile lib/Makefile libdyn/Makefile
-          server/Makefile zhm/Makefile zwgc/Makefile)
diff --git a/zephyr/debian/README.krb4-5 b/zephyr/debian/README.krb4-5
deleted file mode 100644 (file)
index 3278453..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Placehold that will explain how to build an agile server goes here.
diff --git a/zephyr/debian/acl/class-registry.acl b/zephyr/debian/acl/class-registry.acl
deleted file mode 100644 (file)
index 272e138..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-wg_ctl:
-hm_ctl:
-hm_stat:
-locate:
-login:
-zephyr_admin:
-zephyr_ctl:
-zmatch_all:
-operations:
diff --git a/zephyr/debian/acl/iui-hm_ctl.acl b/zephyr/debian/acl/iui-hm_ctl.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iui-hm_stat.acl b/zephyr/debian/acl/iui-hm_stat.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iui-login.acl b/zephyr/debian/acl/iui-login.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iui-operations.acl b/zephyr/debian/acl/iui-operations.acl
deleted file mode 100644 (file)
index 74c91fb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.*@*
diff --git a/zephyr/debian/acl/iui-user_locate.acl b/zephyr/debian/acl/iui-user_locate.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iui-wg_ctl.acl b/zephyr/debian/acl/iui-wg_ctl.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iui-zephyr_admin.acl b/zephyr/debian/acl/iui-zephyr_admin.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iui-zephyr_ctl.acl b/zephyr/debian/acl/iui-zephyr_ctl.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iws-hm_ctl.acl b/zephyr/debian/acl/iws-hm_ctl.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iws-hm_stat.acl b/zephyr/debian/acl/iws-hm_stat.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iws-login.acl b/zephyr/debian/acl/iws-login.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iws-operations.acl b/zephyr/debian/acl/iws-operations.acl
deleted file mode 100644 (file)
index 74c91fb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.*@*
diff --git a/zephyr/debian/acl/iws-user_locate.acl b/zephyr/debian/acl/iws-user_locate.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iws-wg_ctl.acl b/zephyr/debian/acl/iws-wg_ctl.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iws-zephyr_admin.acl b/zephyr/debian/acl/iws-zephyr_admin.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/iws-zephyr_ctl.acl b/zephyr/debian/acl/iws-zephyr_ctl.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/sub-hm_ctl.acl b/zephyr/debian/acl/sub-hm_ctl.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/sub-hm_stat.acl b/zephyr/debian/acl/sub-hm_stat.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/sub-login.acl b/zephyr/debian/acl/sub-login.acl
deleted file mode 100644 (file)
index 74c91fb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.*@*
diff --git a/zephyr/debian/acl/sub-operations.acl b/zephyr/debian/acl/sub-operations.acl
deleted file mode 100644 (file)
index 74c91fb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.*@*
diff --git a/zephyr/debian/acl/sub-user_locate.acl b/zephyr/debian/acl/sub-user_locate.acl
deleted file mode 100644 (file)
index 74c91fb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.*@*
diff --git a/zephyr/debian/acl/sub-wg_ctl.acl b/zephyr/debian/acl/sub-wg_ctl.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/sub-zephyr_admin.acl b/zephyr/debian/acl/sub-zephyr_admin.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/sub-zephyr_ctl.acl b/zephyr/debian/acl/sub-zephyr_ctl.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/xmt-hm_ctl.acl b/zephyr/debian/acl/xmt-hm_ctl.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/xmt-hm_stat.acl b/zephyr/debian/acl/xmt-hm_stat.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/xmt-login.acl b/zephyr/debian/acl/xmt-login.acl
deleted file mode 100644 (file)
index 74c91fb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.*@*
diff --git a/zephyr/debian/acl/xmt-operations.acl b/zephyr/debian/acl/xmt-operations.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/xmt-user_locate.acl b/zephyr/debian/acl/xmt-user_locate.acl
deleted file mode 100644 (file)
index 74c91fb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.*@*
diff --git a/zephyr/debian/acl/xmt-wg_ctl.acl b/zephyr/debian/acl/xmt-wg_ctl.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/xmt-zephyr_admin.acl b/zephyr/debian/acl/xmt-zephyr_admin.acl
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/zephyr/debian/acl/xmt-zephyr_ctl.acl b/zephyr/debian/acl/xmt-zephyr_ctl.acl
deleted file mode 100644 (file)
index 74c91fb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.*@*
diff --git a/zephyr/debian/changelog b/zephyr/debian/changelog
deleted file mode 100644 (file)
index 9294167..0000000
+++ /dev/null
@@ -1,409 +0,0 @@
-zephyr (3.0~alpha.20090316-1) unstable; urgency=low
-
-  * Kerberos 5 client support; new upstream
-  * GNU config automated update: config.sub     (20070118 to 20080116),
-    config.guess     (20070306 to 20080123)
-  * Upstream merged CMU zwgcplus;  Closes: #207362
-  * Upstream now uses c-ares: Closes: #477047
-  * Fix braino in init script.  Closes: #448459
-  
- -- Karl Ramm <kcr@debian.org>  Mon, 16 Mar 2009 19:57:49 -0400
-
-zephyr (2.1.20070719.SNAPSHOT-2) unstable; urgency=low
-
-  * Z_SendLocation could be fooled by the USER_LOGIN message (which has
-    the same UID as the SERVACK we're really waiting for) arriving first.
-    Wait for the SERVACK explicitly, so the USER_LOGIN gets left on the
-    queue even if it arrives early. (thanks, Mark!)
-  * Acknowledge NMUs
-  * Build-depend on x11proto-core-dev.  Closes: #515456
-  * Japanese debconf translation, thanks to Hideki Yamane.  Closes: #510734
-
- -- Karl Ramm <kcr@debian.org>  Sun, 01 Mar 2009 02:52:20 -0500
-
-zephyr (2.1.20070719.SNAPSHOT-1.2) unstable; urgency=low
-
-  * Non-maintainer upload.
-  * Fix pending l10n issues. Debconf translations:
-    - Swedish. Closes: #491531
-  * Brazilian Portuguese. Closes: #501262
-
- -- Christian Perrier <bubulle@debian.org>  Mon, 06 Oct 2008 07:16:54 +0200
-
-zephyr (2.1.20070719.SNAPSHOT-1.1) unstable; urgency=low
-
-  * Non-maintainer upload to fix pending l10n issues
-  * Debconf templates and debian/control reviewed by the debian-l10n-
-    english team as part of the Smith review project. Closes: #453291
-  * [Debconf translation updates]
-    - Galician. Closes: #454511, #447936
-    - Finnish. Closes: #454608
-    - Czech. Closes: #455240
-    - Spanish. Closes: #455576
-    - Italian. Closes: #456225
-    - Basque. Closes: #456823
-    - German. Closes: #456981
-    - Dutch. Closes: #457034, #447724
-    - Russian. Closes: #457087, #451807
-    - Portuguese. Closes: #457111
-    - Vietnamese. Closes: #457301
-    - French. Closes: #457560, #435494, #435495
-
- -- Christian Perrier <bubulle@debian.org>  Wed, 20 Feb 2008 20:11:27 +0100
-
-zephyr (2.1.20070719.SNAPSHOT-1) unstable; urgency=low
-
-  * new upstream, Closes: #433603
-  * byteswap port number for display in zwgc, Closes: #243101
-  * stick newline after errant error message, Closes: #242839
-  * wait for zhm to die when restarting. Closes: #41419
-
- -- Karl Ramm <kcr@debian.org>  Fri, 20 Jul 2007 13:23:48 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-18) unstable; urgency=low
-
-  * fix braino in postinst.  Closes: #433953
-  * Don't mark internal use messages as translatable.  Closes: #413237
-  * Galician translation.  Closes: #412802
-  * Dutch translation.  Closes: #413876  
-  * Portugese translation.  Closes: #414817
-  * Updates Spanish translatoin.  Closes: #420839
-  
-  * Package supports using hesiod to find zephyr servers.  Closes: #174535
-  * Package does not fail to configure if the daemon won't start.  Closes: #120421
-  * zhm shouldn't hang for ever if it can't find a server on startup.  Closes: #433602
-
-  * remove DH_COMPAT setting and update substvars to placate lintian.
-
- -- Karl Ramm <kcr@debian.org>  Thu, 19 Jul 2007 04:31:53 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-17.1) unstable; urgency=low
-
-  * Non-maintainer upload to fix l10n issues
-  * Debconf translation updates:
-    - German. Closes: #396775
-    - French. Closes: #395978
-    - Russian. Closes: #404414
-
- -- Christian Perrier <bubulle@debian.org>  Sat, 20 Jan 2007 19:47:23 +0100
-
-zephyr (2.1.20010518.SNAPSHOT-17) unstable; urgency=low
-
-  * Fix build-depends for seemlingly oddly picky autobuilders.
-  Closes: #393579
-
- -- Karl Ramm <kcr@debian.org>  Tue, 17 Oct 2006 21:09:06 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-16) unstable; urgency=low
-
-  * Tweak zhm and postinst scripts to not flush subs on restart.
-  (it will happen one last time on upgrade, sorry)
-  Closes: #148870
-  * Avoid possible doubling of zephyr-server name in configuration.
-  Closes: #177477
-  * Add Swedish debconf template.  Closes: #343756
-  * Update Spanish debconf template.  Closes: #385052
-  * Fixup build-depends for new X world.
-  * Make debconf templates lintian compliant (short titles instead of
-    questions, "for internal use" instead of "You should never see this")
-  * LSB init info
-  * invoke init.d scripts properly
-  * Assert Standards-Version: 3.7.2
-
- -- Karl Ramm <kcr@debian.org>  Mon, 16 Oct 2006 02:41:22 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-15) unstable; urgency=low
-
-  * fix X build-deps for upcoming xorg transition. Closes: #346863
-  * (also add back a | libreadline4-dev for my own convenience)
-
- -- Karl Ramm <kcr@debian.org>  Tue, 10 Jan 2006 00:44:13 -0500
-
-zephyr (2.1.20010518.SNAPSHOT-14) unstable; urgency=low
-
-  * Fix libzephyr-dev override disparity.
-  * DH_COMPAT=4
-  * build against libreadline5-dev. Closes: #326280
-  * Cleanup /etc/zephyr/server.list on purge. Closes: #333280
-  * Add Vietnamese debconf translation.  Closes: #324283
-
- -- Karl Ramm <kcr@debian.org>  Mon, 28 Nov 2005 19:52:00 -0500
-
-zephyr (2.1.20010518.SNAPSHOT-13) unstable; urgency=low
-
-  * Add alternate dependency on zephyr-2.0
-  * Fix brain-damage in package description.  Closes: #218079
-  (libzephyr3 was misidentified as having kerberos support, and
-    libzephyr3-krb was not identified as such.)
-
- -- Karl Ramm <kcr@debian.org>  Thu, 11 Aug 2005 09:36:28 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-12) unstable; urgency=low
-
-  * Acknowledge NMU.
-  * Now using svn repository at svn://svn.1ts.org/debian. (For obscure
-    reasons, the debian packages come from the branch at
-    <svn://svn.1ts.org/debian/branches/pre_sourceforge_packages/zephyr>.)
-  * Don't use SO_BSDCOMPAT anymore; it logs annoying messages.
-  * Update config.guess and config.sub from autotools-dev 20050324.2.
-    Closes: #294147
-
- -- Karl Ramm <kcr@debian.org>  Sat, 23 Apr 2005 14:35:38 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-11.2) unstable; urgency=low
-
-  * Non-maintainer upload to incorporate the forgotten
-    Brazilian Portuguese translation
-  * Debconf translations
-    - Added Brazilian Portuguese. Closes: #300822   
-
- -- Christian Perrier <bubulle@debian.org>  Tue, 29 Mar 2005 06:52:28 +0200
-
-zephyr (2.1.20010518.SNAPSHOT-11.1) unstable; urgency=low
-
-  * Non-maintainer upload to fix the longstanding switch to
-    po-debconf suggestion. Closes: #199684
-  * Debconf translations:
-    - French added. Closes: #200444
-    - German added.
-    - Czech added.
-
- -- Christian Perrier <bubulle@debian.org>  Fri, 11 Mar 2005 18:42:28 +0100
-
-zephyr (2.1.20010518.SNAPSHOT-11) unstable; urgency=low
-
-  * Fix to build with latest krb5:
-    - kopt defines swap_u_long
-    - Remove far from pointers in kopt
-  * Add Sam Hartman to uploaders, with permission of maintainer
-
- -- Sam Hartman <hartmans@debian.org>  Sat,  5 Jul 2003 21:18:10 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-10) unstable; urgency=low
-
-  * Attack of the Standards-Version continues.
-  * versioned debhelper depend.
-  * add debhelper toked to zephyr-clients.preinst
-  * update config.{guess,sub} from autotools-dev 20030110.1
-
- -- Karl Ramm <kcr@debian.org>  Sun, 27 Apr 2003 16:22:27 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-9) unstable; urgency=low
-
-  * depend on libxaw7-dev, closes: #169990
-  * Fix miraculously appearing syntax problem in decade-old yacc code.
-    closes: #167056
-  * do not depend on libzephyr-dev, which is an utterly crackheaded
-    thing to do.
-
- -- Karl Ramm <kcr@debian.org>  Sun, 24 Nov 2002 21:17:33 -0500
-
-zephyr (2.1.20010518.SNAPSHOT-8) unstable; urgency=low
-
-  * Missing build-depends on libhesiod-dev.  I cannot begin to describe
-    how stupid I feel.  closes: #148250
-
- -- Karl Ramm <kcr@DEBIAN.ORG>  Mon, 27 May 2002 21:31:32 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-7) unstable; urgency=low
-
-  * Stop using some egregious ?roff hacks in the zwgc man page that seem
-    to be not quite compatible with either groff or groff's -man
-    implementation.  closes: #134480
-  * Fix shlibs file for libzephyr3-krb so that depending packages end up
-    pointing at libzephyr3 instead.  closes: #148175
-  * Add dependency on the shared library to the -dev package.
-    <slaps self on forehead>  closes: #110486
-  * Add Russian translation for zephyr-server.  closes: #136936
-  * Add Russian translation for zephyr-clients.  closes: #138326
-  * Hack the server so that it still checks the server.list file even when
-    built with Hesiod.
-  * Build with hesiod.  closes: #99011
-
- -- Karl Ramm <kcr@debian.org>  Sun, 26 May 2002 17:05:03 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-6) unstable; urgency=low
-
-  * Second try at placating the ia64 autobuilders.  Why they weren't
-    building non-US, I don't know...  closes: #142951
-
- -- Karl Ramm <kcr@debian.org>  Tue, 16 Apr 2002 04:11:33 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-5) unstable; urgency=low
-
-  * (hopefully) fix build problem on ia64, closes: #142650
-
- -- Karl Ramm <kcr@debian.org>  Sun, 14 Apr 2002 02:27:50 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-4) unstable; urgency=low
-
-  * moved into main
-  * flesh out extended descriptions in control file, closes: #135513
-
- -- Karl Ramm <kcr@debian.org>  Tue,  2 Apr 2002 01:05:32 -0500
-
-zephyr (2.1.20010518.SNAPSHOT-3) unstable; urgency=low
-
-  * hopefully build non-Kerberos packages successfully, closes: #106610
-  * clean up zephyr-server.init slightly, closes: #106751
-  * Spanish translation for zephyr-server debconf, closes #106573, #106572
-  * Spanish translation for zephyr-clients debconf, closes #106571
-  * include hints for people trying to use zephyr-server-krb, closes: #106852
-  * attempt to get some small bits of documentation into
-    /usr/share/doc/...
-  * fix formatting bug.  closes: #116389
-
- -- Karl Ramm <kcr@debian.org>  Sun, 21 Oct 2001 15:27:08 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-2) unstable; urgency=low
-
-  * On linux/alpha, longs are 8 octets, not 4.  Thus, timeval is sixteen
-    octets, not eight.  Unfortunately, part of the protocol is coded in
-    terms of sizeof (struct timeval), and another part in terms of a
-    sizeof(long).  Work around with ints. closes: #99158
-  * streamline server config script
-  * have client config script check for existence of /etc/zephyr/servers.list
-
- -- Karl Ramm <kcr@debian.org>  Wed, 25 Jul 2001 06:00:47 -0400
-
-zephyr (2.1.20010518.SNAPSHOT-1) unstable; urgency=low
-
-  * fix typo in zephyr-server config script
-  * make the zephyr-server init script check for a srvtab
-  * make sure zwgc doesn't define PC or ospeed to keep curses happy
-  * new upstream version
-  * update config.{guess,sub}
-
- -- Karl Ramm <kcr@debian.org>  Tue,  3 Jul 2001 16:44:41 -0400
-
-zephyr (2.1.20000421.SNAPSHOT-16) unstable; urgency=low
-
-  * fix bugs in zephyr-server config script
-  * be more explicit about conflicts between kerberized and non-kerberized
-    versions 
-
- -- Karl Ramm <kcr@debian.org>  Tue, 19 Jun 2001 09:54:32 -0400
-
-zephyr (2.1.20000421.SNAPSHOT-15) unstable; urgency=low
-
-  * remove the /etc/defaults/zephyr-clients.dpkg-new temporary file
-
- -- Karl Ramm <kcr@debian.org>  Tue, 19 Jun 2001 07:53:14 -0400
-
-zephyr (2.1.20000421.SNAPSHOT-14) unstable; urgency=low
-
-  * Fix typo,  closes: #100465 [hartmans]
-
- -- Sam Hartman <hartmans@debian.org>  Sun, 10 Jun 2001 23:21:32 -0400
-
-zephyr (2.1.20000421.SNAPSHOT-13) unstable; urgency=low
-
-  * The lucky version.  No warranty express or implied.  YMMV.
-  * zephyr-server should have a default.subscriptions file now, closes: #94125
-  * libzephyr3-krb and zephyr-server-krb now depend on krb4-config, should
-    improve out-of-box functionality
-  * alter init script to print a message and exit 0 if no zephyr servers
-    were specified. closes: #96723
-  * rework debconf stuff to be more clever about where the data is coming from.
-
- -- Karl Ramm <kcr@debian.org>  Sun, 10 Jun 2001 07:29:56 -0400
-
-zephyr (2.1.20000421.SNAPSHOT-12) unstable; urgency=low
-
-  * libzephyr-dev failed to have any files in it... and no one noticed.
-  * pull down a new config.guess and config.sub while we're at it.
-
- -- Karl Ramm <kcr@debian.org>  Wed, 16 May 2001 10:33:07 -0400
-
-zephyr (2.1.20000421.SNAPSHOT-11) unstable; urgency=low
-
-  * tweak to kopt.c to maybe allow alpha build to work. closes: #94600
-  * build shlibs using gcc, and against the latest krb5. closes: #93779
-
- -- Karl Ramm <kcr@1TS.ORG>  Tue, 24 Apr 2001 16:32:52 -0400
-
-zephyr (2.1.20000421.SNAPSHOT-10) unstable; urgency=low
-
-  * [hartmans] libzephyr3 should not depend on krb5, closes: #93187
-  * maybe run "/etc/init.d/zhm stop" in the preinst script, closes: #93349
-
- -- Karl Ramm <kcr@1TS.ORG>  Sat, 14 Apr 2001 21:37:09 -0400
-
-zephyr (2.1.20000421.SNAPSHOT-9) unstable; urgency=low
-
-  * New maintainer, closes: #92061
-  * This builds with glibc2.2, closes: #86183
-  * This builds with Sam's MIT krb5 packages, closes: #40001, #40215
-  * There are now kerberized shared libraries, thanks to Sam, closes: #56691
-  * zaway works for me, closes: #76302
-  * build-depends fixed in packaging new version,
-    closes: #72006, #74371, #84558
-  * drop dummy zephyr-client package
-  * rename /etc/init.d/zephyr-clients to /etc/init.d/zhm
-  * rename /etc/init.d/zephyr-server to /etc/init.d/zephyrd
-  * rename /etc/init.d/zephyr-server-krb to /etc/init.d/zephyr.d
-  * fix build dependencies
-  * make config files in /etc/zephyr not installed executable
-  * cleanup debhelper examples
-  * actually build position-independent shared libraries
-
- -- Karl Ramm <kcr@1TS.ORG>  Tue,  3 Apr 2001 01:16:56 -0400
-
-zephyr (2.1.20000421.SNAPSHOT-8) unstable; urgency=low
-
-  * zephyr-client -> zephyr-clients
-  * Produce libzephyr3 package and used shared libs
-  * Clean up debian/rules to only call movefiles once
-  * Depend on libxaw-dev for sid/woody
-  * Support both Kerberos and non-Kerberos
-  * Add dummy zephyr-client package to phase upgrades.
-
- -- Sam Hartman <hartmans@mit.edu>  Wed, 28 Mar 2001 18:19:32 -0500
-
-zephyr (2.1.20000421.SNAPSHOT-7) unstable; urgency=low
-
-  * Fix incorrect potato build-depends (xlib6g-dev instead of xlib6g)
-
- -- Karl Ramm <kcr@1TS.ORG>  Sat, 24 Feb 2001 11:40:12 -0500
-
-zephyr (2.1.20000421.SNAPSHOT-6) unstable; urgency=low
-
-  * get the acl stuff right, so it goes into the source package
-  * remove the zmatch_all acl
-
- -- Karl Ramm <kcr@1ts.org>  Tue, 20 Feb 2001 01:24:03 -0500
-
-zephyr (2.1.20000421.SNAPSHOT-5) unstable; urgency=low
-
-  * fix braino in my debconf stuff.
-
- -- Karl C. Ramm <kcr@permabit.com>  Wed,  7 Feb 2001 17:18:45 -0500
-
-zephyr (2.1.20000421.SNAPSHOT-4) unstable; urgency=low
-
-  * rename /etc/zephyr/zephyr.conf to /etc/default/zephyr-client
-  * fix bug in zephyr-client postinst
-
- -- Karl C. Ramm <kcr@permabit.com>  Wed,  7 Feb 2001 17:00:51 -0500
-
-zephyr (2.1.20000421.SNAPSHOT-3) unstable; urgency=low
-
-  * make the acl files on the server actually work
-  * make zwgc look in the light place for zephyr.vars
-  * in short, fix everything from -2.
-
- -- Karl C. Ramm <kcr@permabit.com>  Wed,  7 Feb 2001 15:06:10 -0500
-
-zephyr (2.1.20000421.SNAPSHOT-2) unstable; urgency=low
-
-  * add acl files to the server
-  * add zephyr.vars file to the client
-
- -- Karl C. Ramm <kcr@permabit.com>  Tue,  2 Jan 2001 13:13:01 -0500
-
-zephyr (2.1.20000421.SNAPSHOT-1) unstable; urgency=low
-
-  * Initial Release.
-
- -- Karl Ramm <kcr@1ts.org>  Mon,  4 Dec 2000 05:28:22 -0500
-
diff --git a/zephyr/debian/compat b/zephyr/debian/compat
deleted file mode 100644 (file)
index 7ed6ff8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/zephyr/debian/control b/zephyr/debian/control
deleted file mode 100644 (file)
index ff97f24..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-Source: zephyr
-Section: net
-Priority: optional
-Maintainer: Karl Ramm <kcr@debian.org>
-Uploaders: Sam Hartman <hartmans@debian.org>
-Build-Depends: debhelper (>= 5), libc-ares-dev, libkrb5-dev (>= 1.2.2-4), comerr-dev, ss-dev,
-               libreadline5-dev, libx11-dev, libxt-dev, x11proto-core-dev, libncurses5-dev,
-              bison, libhesiod-dev, autotools-dev
-Standards-Version: 3.8.1.0
-Vcs-Svn: svn://svn.1ts.org/debian/branches/zephyr-reloaded/zephyr
-
-Package: libzephyr4
-Section: libs
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Conflicts: libzephyr4-krb, libzephyr4-krb5, libzephyr4-krb45
-Description: Project Athena's notification service - non-Kerberos libraries
- Zephyr is derived from the original Project Athena 'Instant Message' system
- and allows users to send messages to other users or to groups of users.
- Users can view incoming Zephyr messages as windowgrams (transient X
- windows) or as text on a terminal.
- .
- This package provides the libraries without Kerberos support.
-
-Package: libzephyr4-krb
-Section: libs
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, krb4-config
-Conflicts: libzephyr4, libzephyr4-krb5, libzephyr4-krb45
-Replaces: libzephyr4, libzephyr4-krb5, libzephyr4-krb45
-Provides: libzephyr4
-Description: Project Athena's notification service - libraries with Kerberos
- Zephyr is derived from the original Project Athena 'Instant Message' system
- and allows users to send messages to other users or to groups of users.
- Users can view incoming Zephyr messages as windowgrams (transient X
- windows) or as text on a terminal.
- .
- This package provides libraries that use Kerberos.
-
-Package: libzephyr4-krb5
-Section: libs
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, krb5-config
-Conflicts: libzephyr4, libzephyr4-krb, libzephyr4-krb45
-Replaces: libzephyr4, libzephyr4-krb, libzephyr4-krb45
-Provides: libzephyr4
-Description: The original "Instant Message" system libraries with Kerberos 5
- This version of the library uses Kerberos for message authentication.
- .
- This is the Project Athena Zephyr notification system.
- Zephyr allows users to send messages to other users or to groups of
- users.  Users can view incoming Zephyr messages as windowgrams
- (transient X windows) or as text on a terminal.
-
-Package: libzephyr4-krb45
-Section: libs
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, krb5-config
-Conflicts: libzephyr4, libzephyr4-krb, libzephyr4-krb5
-Replaces: libzephyr4, libzephyr4-krb, libzephyr4-krb5
-Provides: libzephyr4
-Description: The original "Instant Message" system libraries with Kerberos 4+5
- This version of the library uses Kerberos for message authentication.
- .
- This is the Project Athena Zephyr notification system.
- Zephyr allows users to send messages to other users or to groups of
- users.  Users can view incoming Zephyr messages as windowgrams
- (transient X windows) or as text on a terminal.
-
-Package: zephyr-clients
-Section: net
-Replaces: zephyr-client
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, debianutils (>= 1.6), debconf | debconf-2.0
-Description: Project Athena's notification service - client programs
- Zephyr is derived from the original Project Athena 'Instant Message' system
- and allows users to send messages to other users or to groups of users.
- Users can view incoming Zephyr messages as windowgrams (transient X
- windows) or as text on a terminal.
- .
- This package provides client programs for the messaging service.
-
-Package: zephyr-server
-Section: net
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, debconf | debconf-2.0
-Conflicts: zephyr-server-krb, zephyr-server-krb5, zephyr-server-krb45
-Description: Project Athena's notification service - non-Kerberos server
- Zephyr is derived from the original Project Athena 'Instant Message' system
- and allows users to send messages to other users or to groups of users.
- Users can view incoming Zephyr messages as windowgrams (transient X
- windows) or as text on a terminal.
- .
- This package provides the server for the messaging service, which
- maintains a location and subscription database for all the receiving
- clients. All zephyrgrams are sent to the server to be routed to the
- intended recipient. Only one server is required for a group of clients.
-
-Package: zephyr-server-krb
-Section: net
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, debconf | debconf-2.0, libzephyr4-krb
-Conflicts: zephyr-server, zephyr-server-krb5, zephyr-server-krb45
-Replaces: zephyr-server, zephyr-server-krb5, zephyr-server-krb45
-Provides: zephyr-server
-Description: Project Athena's notification service - server with Kerberos
- Zephyr is derived from the original Project Athena 'Instant Message' system
- and allows users to send messages to other users or to groups of users.
- Users can view incoming Zephyr messages as windowgrams (transient X
- windows) or as text on a terminal.
- .
- This package provides the server for the messaging service. Only one
- server is needed for a group of client. The program consumes much memory,
- especially for very large sites.
- .
- The server maintains a location and subscription database for all the
- receiving clients. All zephyrgrams are sent to the server to be routed
- to the intended recipient.
- .
- This version of the server uses Kerberos.
-
-Package: zephyr-server-krb5
-Section: net
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, debconf | debconf-2.0, libzephyr4-krb5
-Conflicts: zephyr-server, zephyr-server-krb, zephyr-server-krb45
-Replaces: zephyr-server, zephyr-server-krb, zephyr-server-krb45
-Provides: zephyr-server
-Description: The original "Instant Message" system-server with Kerberos 5
- You probably only need one server for a group of clients.
- This can be a memory-intensive server, especially for very large sites.
- .
- The server maintains a location and subscription database for all the
- receiving clients. All zephyrgrams are sent to the server to be routed
- to the intended recipient.
- .
- This version of the server uses Kerberos for message authentication.
- .
- This is the Project Athena Zephyr notification system.
- Zephyr allows users to send messages to other users or to groups of
- users.  Users can view incoming Zephyr messages as windowgrams
- (transient X windows) or as text on a terminal.
-
-Package: zephyr-server-krb45
-Section: net
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, debconf | debconf-2.0, libzephyr4-krb45
-Conflicts: zephyr-server, zephyr-server-krb, zephyr-server-krb5
-Replaces: zephyr-server, zephyr-server-krb, zephyr-server-krb5
-Provides: zephyr-server
-Description: The original "Instant Message" system-server with Kerberos 4+5
- You probably only need one server for a group of clients.
- This can be a memory-intensive server, especially for very large sites.
- .
- The server maintains a location and subscription database for all the
- receiving clients. All zephyrgrams are sent to the server to be routed
- to the intended recipient.
- .
- This version of the server uses Kerberos for message authentication.
- .
- This is the Project Athena Zephyr notification system.
- Zephyr allows users to send messages to other users or to groups of
- users.  Users can view incoming Zephyr messages as windowgrams
- (transient X windows) or as text on a terminal.
-
-Package: libzephyr-dev
-Section: libdevel
-Architecture: any
-Depends: libzephyr4 (= ${binary:Version}) | libzephyr4-krb (= ${binary:Version}), ${misc:Depends}, libc6-dev
-Description: Project Athena's notification service - development files
- Zephyr is derived from the original Project Athena 'Instant Message' system
- and allows users to send messages to other users or to groups of users.
- Users can view incoming Zephyr messages as windowgrams (transient X
- windows) or as text on a terminal.
- .
- This package provides development libraries and files, which are
- needed to compile alternative Zephyr clients.
diff --git a/zephyr/debian/copyright b/zephyr/debian/copyright
deleted file mode 100644 (file)
index 245b261..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-This package was debianized by Karl Ramm <kcr@1ts.org> on
-Mon,  4 Dec 2000 05:28:22 -0500.
-
-It was downloaded from ftp://athena-dist.mit.edu/pub/ATHENA/zephyr
-
-Copyright:
-
-/*
-
-Copyright 1987,1988,1995 by the Massachusetts Institute of Technology
-
-All rights reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of the Massachusetts
-Institute of Technology (M.I.T.) not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.
-
-M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-*/
-/*
- * lib/quad_cksum.c
- *
- * Copyright 1985, 1986, 1987, 1988,1990 by the Massachusetts Institute
- * of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- *   require a specific license from the United States Government.
- *   It is the responsibility of any person or organization contemplating
- *   export to obtain such a license before exporting.
- * 
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission.  Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose.  It is provided "as is" without express
- * or implied warranty.
- */
-
-server/utf8proc.[ch]:
-/*
- *  Copyright (c) 2006-2007 Jan Behrens, FlexiGuided GmbH, Berlin
- *
- *  Permission is hereby granted, free of charge, to any person obtaining a
- *  copy of this software and associated documentation files (the "Software"),
- *  to deal in the Software without restriction, including without limitation
- *  the rights to use, copy, modify, merge, publish, distribute, sublicense,
- *  and/or sell copies of the Software, and to permit persons to whom the
- *  Software is furnished to do so, subject to the following conditions:
- *
- *  The above copyright notice and this permission notice shall be included in
- *  all copies or substantial portions of the Software.
- *
- *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- *  DEALINGS IN THE SOFTWARE.
- */
-
-server/utf8proc_data.c:
-/*
- *  This file contains derived data from a modified version of the
- *  Unicode data files.
- *
- *  The original data files are available at
- *  http://www.unicode.org/Public/UNIDATA/
- *
- *
- *  COPYRIGHT AND PERMISSION NOTICE
- *
- *  Copyright (c) 1991-2007 Unicode, Inc. All rights reserved. Distributed
- *  under the Terms of Use in http://www.unicode.org/copyright.html.
- *
- *  Permission is hereby granted, free of charge, to any person obtaining a
- *  copy of the Unicode data files and any associated documentation (the "Data
- *  Files") or Unicode software and any associated documentation (the
- *  "Software") to deal in the Data Files or Software without restriction,
- *  including without limitation the rights to use, copy, modify, merge,
- *  publish, distribute, and/or sell copies of the Data Files or Software, and
- *  to permit persons to whom the Data Files or Software are furnished to do
- *  so, provided that (a) the above copyright notice(s) and this permission
- *  notice appear with all copies of the Data Files or Software, (b) both the
- *  above copyright notice(s) and this permission notice appear in associated
- *  documentation, and (c) there is clear notice in each modified Data File or
- *  in the Software as well as in the documentation associated with the Data
- *  File(s) or Software that the data or software has been modified.
- *
- *  THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
- *  KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
- *  THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
- *  INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR
- *  CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
- *  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- *  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- *  PERFORMANCE OF THE DATA FILES OR SOFTWARE.
- *
- *  Except as contained in this notice, the name of a copyright holder shall
- *  not be used in advertising or otherwise to promote the sale, use or other
- *  dealings in these Data Files or Software without prior written
- *  authorization of the copyright holder.
- */
-
diff --git a/zephyr/debian/default.subscriptions b/zephyr/debian/default.subscriptions
deleted file mode 100644 (file)
index 2ef3863..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-operations,message,*
-message,personal,%me%
-message,urgent,%me%
diff --git a/zephyr/debian/dirs b/zephyr/debian/dirs
deleted file mode 100644 (file)
index ca882bb..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin
-usr/sbin
diff --git a/zephyr/debian/libzephyr-dev.files b/zephyr/debian/libzephyr-dev.files
deleted file mode 100644 (file)
index 539326d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-usr/lib/libzephyr.a
-usr/lib/libzephyr.so
-usr/include/zephyr/mit-copyright.h
-usr/include/zephyr/zephyr.h
-usr/include/zephyr/zephyr_err.h
diff --git a/zephyr/debian/libzephyr4-krb5.templates b/zephyr/debian/libzephyr4-krb5.templates
deleted file mode 100644 (file)
index cf97f10..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Template: libzephyr4-krb5/no-more-krb4
-Type: boolean
-Default: true
-Description: Potentially incompatible upgrade
- You appear to be upgrading from a version of zephyr that uses
- Kerberos version 4 to authenticate.  Kerberos version 4 support has
- been removed from Debian, and accordingly from zephyr.  This version
- of zephyr uses Kerberos 5 to authenticate, and thus your servers must
- have been upgraded for it to be useful.
- .
- A server that authenticates both ways can be built for lenny from the
- zephyr source package, see:
-   /usr/share/doc/libzephyr4-krb5/README.krb4-5
- .
- Continue with the upgrade?
diff --git a/zephyr/debian/libzephyr4.files b/zephyr/debian/libzephyr4.files
deleted file mode 100644 (file)
index a837249..0000000
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libzephyr.so.*
diff --git a/zephyr/debian/po/POTFILES.in b/zephyr/debian/po/POTFILES.in
deleted file mode 100644 (file)
index 8713a70..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-[type: gettext/rfc822deb] zephyr-clients.templates
-[type: gettext/rfc822deb] zephyr-server.templates
diff --git a/zephyr/debian/po/cs.po b/zephyr/debian/po/cs.po
deleted file mode 100644 (file)
index 56ad2b1..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-#
-#    Translators, if you are not familiar with the PO format, gettext
-#    documentation is worth reading, especially sections dedicated to
-#    this format, e.g. by running:
-#         info -n '(gettext)PO Files'
-#         info -n '(gettext)Header Entry'
-#
-#    Some information specific to po-debconf are available at
-#            /usr/share/doc/po-debconf/README-trans
-#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
-#
-#    Developers do not need to manually edit POT or PO files.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: zephyr\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2007-12-08 17:00+0100\n"
-"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
-"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Zephyr servery:"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr ""
-"Zadejte prosím plná jména Zephyr serverů; jednotlivá jména oddělte mezerami."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"Seznam definovaný na klientech může být podmnožinou seznamu definovaného na "
-"serverech."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
-"Pokud pro oznamování Zephyr serverů používáte Hesiod, můžete ponechat "
-"prázdné."
-
-#~ msgid ""
-#~ "We want to try and capture user changes when they edit a config file "
-#~ "manually.  To do this we look at the file in the config script. However, "
-#~ "in the case of preconfigure, the config script is run twice before the "
-#~ "postinst is run.  Thus we may read the wrong value before the edited "
-#~ "value is written out in postinst. If this is false we skip reading config "
-#~ "files until postinst runs."
-#~ msgstr ""
-#~ "Snažíme se rozpoznat a zachytit uživatelovy ruční změny v konfiguračním "
-#~ "souboru, což se děje v konfiguračním skriptu. Ovšem v případě "
-#~ "předkonfigurace je konfigurační skript spuštěn dvakrát před spuštěním "
-#~ "poinstalačního skriptu a tudíž můžeme přečíst chybnou hodnotu před tím, "
-#~ "než je upravená hodnota zapsána v poinstalačním kroku. Pokud je to "
-#~ "chybně, přeskočíme čtení kofiguračních souborů až do poinstalační fáze."
-
-#~ msgid "You have no zephyr servers specified for the client"
-#~ msgstr "Pro klienta jste nezadali žádné zephyr servery"
-
-#~ msgid ""
-#~ "The zephyr-clients package for whatever reason does not have any zephyr "
-#~ "servers configured.  Please edit the file /etc/default/zephyr-clients and "
-#~ "add the names of your zephyr servers, separated by spaces to the zhm_args "
-#~ "variable."
-#~ msgstr ""
-#~ "Balíček zephyr-clients nemá z nějakého důvodu nakonfigurován žádný zephyr "
-#~ "server. Upravte prosím soubor /etc/default/zephyr-clients a přidejte do "
-#~ "něj do proměnné zhm_args mezerami oddělená jména zephyr serverů."
-
-#~ msgid "What are your zephyr servers?"
-#~ msgstr "Jaké jsou vaše zephyr servery?"
-
-#~ msgid "You should never see this"
-#~ msgstr "Toto jste nikdy neměli vidět"
diff --git a/zephyr/debian/po/de.po b/zephyr/debian/po/de.po
deleted file mode 100644 (file)
index 27a0f97..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-# Translation of proftpd-dfsg debconf templates to German
-# Copyright (C) Tobias Toedter <t.toedter@gmx.net>, 2005, 2006.
-# Copyright (C) Helge Kreutzmann <debian@helgefjell.de>, 2007.
-# This file is distributed under the same license as the proftpd-dfsg package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: zephyr 2.1.20070719.SNAPSHOT-3\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2007-12-18 21:27+0100\n"
-"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
-"Language-Team: de <debian-l10n-german@lists.debian.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.2\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Zephyr-Server:"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr ""
-"Bitte geben Sie eine durch Leerzeichen getrennte Liste der Namen der Zephyr-"
-"Server an."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"Die Listen auf den konfigurierten Clients können eine Untermenge der Listen "
-"auf den konfigurierten Servern sein."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
-"Diese Liste kann leer bleiben, falls Hesiod zum Bekanntgeben von Zephyr-"
-"Servern verwendet wird."
-
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(note that this can be a subset of what you're telling the servers) If "
-#~ "you are using hesiod to advertise your zephyr servers, leave this blank."
-#~ msgstr ""
-#~ "Bitte geben Sie die vollständigen Namen Ihrer Zephyr-Server durch "
-#~ "Leerzeichen getrennt ein. (Beachten Sie, dass dies eine Untermenge von "
-#~ "dem sein kann, was Sie den Servern angeben.) Falls Sie Hesiod zum "
-#~ "Bekanntgeben Ihrer Server verwenden, lassen Sie dies leer."
-
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(Note that this can be a superset of that you're telling the clients.)"
-#~ msgstr ""
-#~ "Bitte geben Sie die vollständigen Namen Ihrer zephyr-Server durch "
-#~ "Leerzeichen getrennt ein. (Beachten Sie, dass dies eine Obermenge von dem "
-#~ "sein kann, was Sie den Clients angeben.)"
-
-#~ msgid "for internal use"
-#~ msgstr "Für interne Verwendung"
-
-#~ msgid ""
-#~ "We want to try and capture user changes when they edit a config file "
-#~ "manually.  To do this we look at the file in the config script. However, "
-#~ "in the case of preconfigure, the config script is run twice before the "
-#~ "postinst is run.  Thus we may read the wrong value before the edited "
-#~ "value is written out in postinst. If this is false we skip reading config "
-#~ "files until postinst runs."
-#~ msgstr ""
-#~ "Es wird versucht, manuelle Änderungen des Benutzers an den "
-#~ "Konfigurationsdateien zu erkennen. Aus diesem Grund werden die Dateien "
-#~ "mit Hilfe des Konfigurationsskripts angesehen. Allerdings wird dieses "
-#~ "Konfigurationsskript im Falle von »preconfigure« zweimal ausgeführt, bevor "
-#~ "»postinst« an der Reihe ist. Daher kann es sein, dass ein falscher Wert "
-#~ "eingelesen wird, bevor der korrekte Wert während »postinst« geschrieben "
-#~ "wird. Falls dies nicht richtig ist, wird das Einlesen von "
-#~ "Konfigurationsdateien übersprungen, bis »postinst« ausgeführt wird."
-
-#~ msgid "You have no zephyr servers specified for the client"
-#~ msgstr "Sie haben keine zephyr-Server für den Client angegeben"
-
-#~ msgid ""
-#~ "The zephyr-clients package for whatever reason does not have any zephyr "
-#~ "servers configured.  Please edit the file /etc/default/zephyr-clients and "
-#~ "add the names of your zephyr servers, separated by spaces to the zhm_args "
-#~ "variable."
-#~ msgstr ""
-#~ "Aus irgendwelchen Gründen wurden im Paket zephyr-clients keine zephyr-"
-#~ "Server eingerichtet. Bitte ändern Sie die Datei /etc/default/zephyr-"
-#~ "clients und fügen Sie die Namen Ihrer zephyr-Server zur Variablen "
-#~ "zhm_args durch Leerzeichen getrennt hinzu."
diff --git a/zephyr/debian/po/es.po b/zephyr/debian/po/es.po
deleted file mode 100644 (file)
index 2a22e1e..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-# zephyr debconf translation to spanish
-# Copyright (C) 2001, 2006, 2007 Software in the Public Interest
-# This file is distributed under the same license as the zephyr package.
-#
-# Changes:
-# - Initial translation
-#        Carlos Valdivia Yagüe <valyag@dat.etsit.upm.es>, 2001, 2006, 2007
-#
-#    Translators, if you are not familiar with the PO format, gettext
-#    documentation is worth reading, especially sections dedicated to
-#    this format, e.g. by running:
-#         info -n '(gettext)PO Files'
-#         info -n '(gettext)Header Entry'
-#
-#    Some information specific to po-debconf are available at
-#            /usr/share/doc/po-debconf/README-trans
-#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
-#
-#    Developers do not need to manually edit POT or PO files.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: zephyr 2.1.20070719.SNAPSHOT-4\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2007-12-05 15:50+0100\n"
-"Last-Translator: Carlos Valdivia Yagüe <valyag@dat.etsit.upm.es>\n"
-"Language-Team: Debian L10n Spanish <debian-l10n-spanish@lists.debian.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Servidores Zephyr:"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr ""
-"Por favor, introduzca el nombre completo de los servidores Zephyr como una "
-"lista separada por espacios."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"La lista configurada en los clientes puede ser un subconjunto de la lista "
-"configurada en los servidores."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
-"Puede dejarlo en blanco si se utiliza Hesiod para anunciar los servidores "
-"Zephyr."
diff --git a/zephyr/debian/po/fr.po b/zephyr/debian/po/fr.po
deleted file mode 100644 (file)
index e54aa6d..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-# translation of fr.po to French
-#
-#    Translators, if you are not familiar with the PO format, gettext
-#    documentation is worth reading, especially sections dedicated to
-#    this format, e.g. by running:
-#         info -n '(gettext)PO Files'
-#         info -n '(gettext)Header Entry'
-#    Some information specific to po-debconf are available at
-#            /usr/share/doc/po-debconf/README-trans
-#         or http://www.debian.org/intl/l10n/po-debconf/README-trans#
-#    Developers do not need to manually edit POT or PO files.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: zephyr_2.1.20070913.SNAPSHOT-3\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2007-12-23 15:01+0100\n"
-"Last-Translator: Michel Grentzinger <mic.grentz@online.fr>\n"
-"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-15\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Serveurs Zephyr :"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr ""
-"Veuillez indiquer le nom complet des serveurs Zephyr, séparés par un espace."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"La liste configurée sur les clients peut être un sous-ensemble de la liste "
-"configurée sur les serveurs."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
-"Ce champ peut être laissé vide si Hesiod est employé pour annoncer les "
-"serveurs Zephyr."
diff --git a/zephyr/debian/po/gl.po b/zephyr/debian/po/gl.po
deleted file mode 100644 (file)
index 92d393f..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-# Galician translation of zephyr's debconf templates
-# This file is distributed under the same license as the zephyr package.
-# Jacobo Tarrio <jtarrio@debian.org>, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: zephyr\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2007-12-05 20:45+0000\n"
-"Last-Translator: Jacobo Tarrio <jtarrio@debian.org>\n"
-"Language-Team: Galician <proxecto@trasno.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Servidores zephyr:"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr ""
-"Indique os nomes completos dos servidores Zephyr, nunha lista de nomes "
-"separados por comas."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"A lista configurada nos clientes pode ser un subconxunto da lista "
-"configurada nos servidores."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
-"Pódese deixar baleiro se se emprega Hesiod para anunciar os servidores "
-"Zephyr."
-
-#, fuzzy
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(note that this can be a subset of what you're telling the servers) If "
-#~ "you are using hesiod to advertise your zephyr servers, leave this blank."
-#~ msgstr ""
-#~ "Escriba os nomes completos dos seus servidores zephyr, separados por "
-#~ "espazos. (Teña en conta que isto pode ser un subconxunto do que lles "
-#~ "conta aos servidores)"
-
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(Note that this can be a superset of that you're telling the clients.)"
-#~ msgstr ""
-#~ "Escriba os nomes completos dos seus servidores zephyr, separados por "
-#~ "espazos. (Teña en conta que pode ser un superconxunto do que lles di aos "
-#~ "clientes)."
-
-#~ msgid "for internal use"
-#~ msgstr "para uso interno"
-
-#~ msgid ""
-#~ "We want to try and capture user changes when they edit a config file "
-#~ "manually.  To do this we look at the file in the config script. However, "
-#~ "in the case of preconfigure, the config script is run twice before the "
-#~ "postinst is run.  Thus we may read the wrong value before the edited "
-#~ "value is written out in postinst. If this is false we skip reading config "
-#~ "files until postinst runs."
-#~ msgstr ""
-#~ "Preténdes capturar os cambios que fan os usuarios cando modifican "
-#~ "manualmente un ficheiro de configuración. Para facelo consúltase o "
-#~ "ficheiro no script de configuración. Nembargantes, no caso da "
-#~ "preconfiguración, o script de configuración execútase dúas veces antes de "
-#~ "executar o script de post-instalación. Polo tanto, pódese ler o valor "
-#~ "incorrecto antes de que se grave o valor editado na post-instalación. Se "
-#~ "isto é falso omítese a lectura de ficheiros de configuración ata que se "
-#~ "execute o script de post-instalación."
-
-#~ msgid "You have no zephyr servers specified for the client"
-#~ msgstr "Non especificou servidores zephyr para o cliente"
-
-#~ msgid ""
-#~ "The zephyr-clients package for whatever reason does not have any zephyr "
-#~ "servers configured.  Please edit the file /etc/default/zephyr-clients and "
-#~ "add the names of your zephyr servers, separated by spaces to the zhm_args "
-#~ "variable."
-#~ msgstr ""
-#~ "Por algún motivo, o paquete zephyr-clients non ten configurado ningún "
-#~ "servidor zephyr. Edite o ficheiro /etc/default/zephyr-clients e engada os "
-#~ "nomes dos servidores zephyr, separados por espazos, á variable zhm_args."
diff --git a/zephyr/debian/po/ja.po b/zephyr/debian/po/ja.po
deleted file mode 100644 (file)
index 3ddbf45..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (C) 2008 Karl Ramm <kcr@debian.org>
-# This file is distributed under the same license as the zephyr package.
-# Hideki Yamane (Debian-JP) <henrich@debian.or.jp>, 2008.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: zephyr 2.1.20070719.SNAPSHOT-1.2\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2008-12-28 22:26+0900\n"
-"Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n"
-"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Zephyr サーバ:"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr ""
-"Zephyr サーバの名前を全て、スペースで区切ったリストで指定してください。"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"クライアント上で設定されたリストは、サーバ上で設定されたリストのサブセットになります。"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr "Hesiod を Zephyr サーバの広報に利用している場合は、ここは空のままで構いません。"
diff --git a/zephyr/debian/po/nl.po b/zephyr/debian/po/nl.po
deleted file mode 100644 (file)
index cadb04c..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-#
-#    Translators, if you are not familiar with the PO format, gettext
-#    documentation is worth reading, especially sections dedicated to
-#    this format, e.g. by running:
-#         info -n '(gettext)PO Files'
-#         info -n '(gettext)Header Entry'
-#
-#    Some information specific to po-debconf are available at
-#            /usr/share/doc/po-debconf/README-trans
-#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
-#
-#    Developers do not need to manually edit POT or PO files.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: zephyr\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2007-12-09 14:00+0100\n"
-"Last-Translator: Bart Cornelis <cobaco@skolelinux.no>\n"
-"Language-Team: debian-l10n-dutch <debian-l10n-dutch@lists.debian.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Dutch\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Zephyr-servers:"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr ""
-"Gelieve hier een (met spaties gescheiden) lijst van de de volledige namen "
-"van de Zephyr-servers op te geven."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"De op de clients ingestelde lijst mag een subset zijn van de op de servers "
-"ingestelde lijst."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
-"Als u Hesiod gebruikt om Zephyr-servers te adverteren kunt u dit veld "
-"leeglaten."
-
-#, fuzzy
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(note that this can be a subset of what you're telling the servers) If "
-#~ "you are using hesiod to advertise your zephyr servers, leave this blank."
-#~ msgstr ""
-#~ "Gelieve de volledige naam van uw zephyr-servers op te geven gescheiden "
-#~ "door spaties (merk op dat dit een subset kan zijn van wat u aan de "
-#~ "servers vertelt)."
-
-#, fuzzy
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(Note that this can be a superset of that you're telling the clients.)"
-#~ msgstr ""
-#~ "Gelieve de volledige namen van uw zephyr-servers op te geven, gescheiden "
-#~ "door spaties (merk op dat dit een superset kan zijn van wat u de clients "
-#~ "verteld)."
-
-#~ msgid "for internal use"
-#~ msgstr "voor intern gebruik"
-
-#~ msgid ""
-#~ "We want to try and capture user changes when they edit a config file "
-#~ "manually.  To do this we look at the file in the config script. However, "
-#~ "in the case of preconfigure, the config script is run twice before the "
-#~ "postinst is run.  Thus we may read the wrong value before the edited "
-#~ "value is written out in postinst. If this is false we skip reading config "
-#~ "files until postinst runs."
-#~ msgstr ""
-#~ "Er wordt geprobeerd om gebruikersaanpassingen op te vangen wanneer een "
-#~ "configuratiebestand handmatig aangepast wordt.  Hiertoe kijkt het "
-#~ "'config'-script in het configuratiebestand, maar in het geval van "
-#~ "preconfigure wordt dit script tweemaal uitgevoerd voordat het 'postinst'-"
-#~ "script gedraaid wordt. Dit kan er toe leiden dat de verkeerde waarde "
-#~ "wordt uitgeschreven voordat de aangepaste waarde uitgeschreven wordt in "
-#~ "het 'postinst'-script. Als dit onwaar is slaan we het lezen van "
-#~ "configuratiebestanden over totdat het 'postinst'-script uitgevoerd is."
-
-#~ msgid "You have no zephyr servers specified for the client"
-#~ msgstr "U heeft geen zephyr-servers opgegeven voor de client."
-
-#~ msgid ""
-#~ "The zephyr-clients package for whatever reason does not have any zephyr "
-#~ "servers configured.  Please edit the file /etc/default/zephyr-clients and "
-#~ "add the names of your zephyr servers, separated by spaces to the zhm_args "
-#~ "variable."
-#~ msgstr ""
-#~ "Het 'zephyr-clients'-pakket heeft om wat voor reden dan ook geen zephyr-"
-#~ "servers ingesteld. Gelieve het bestand /etc/default/zephyr-clients aan te "
-#~ "passen en de namen van uw zephyr-servers gescheiden door spaties toe te "
-#~ "voegen aan de 'zhm_args'-variabele."
diff --git a/zephyr/debian/po/pt.po b/zephyr/debian/po/pt.po
deleted file mode 100644 (file)
index 70aba7e..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-# Portuguese translation for zephyr's debconf messages
-# Ricardo Silva <ardoric@gmail.com>, 2007
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: zephyr 2.1.20070719.SNAPSHOT-3\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2007-12-19 22:05+0000\n"
-"Last-Translator: Ricardo Silva <ardoric@gmail.com>\n"
-"Language-Team: Portuguese <traduz@debianpt.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Servidores Zephyr:"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr ""
-"Por favor especifique o nome completo dos servidores Zephyr, numa lista "
-"separada por espaços."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"A lista configurada nos clientes pode ser um sub-conjunto da lista "
-"configurada nos servidores."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
-"Esta opção pode ser deixada vazia se o Hesiod for utilizado para anunciar os "
-"servidores Zephyr."
-
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(note that this can be a subset of what you're telling the servers) If "
-#~ "you are using hesiod to advertise your zephyr servers, leave this blank."
-#~ msgstr ""
-#~ "Por favor escreva os nomes completos dos seus servidores zephyr, "
-#~ "separados por espaços. (note que esta lista pode ser um subconjunto do "
-#~ "que diz aos servidores)"
-
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(Note that this can be a superset of that you're telling the clients.)"
-#~ msgstr ""
-#~ "Por favor escreva os nomes completos dos seus servidores zephyr, "
-#~ "separados por espaços. (Note que esta lista pode ser um super-conjunto "
-#~ "do que diz aos clientes.)"
-
-#~ msgid "for internal use"
-#~ msgstr "para uso interno"
-
-#~ msgid ""
-#~ "We want to try and capture user changes when they edit a config file "
-#~ "manually.  To do this we look at the file in the config script. However, "
-#~ "in the case of preconfigure, the config script is run twice before the "
-#~ "postinst is run.  Thus we may read the wrong value before the edited "
-#~ "value is written out in postinst. If this is false we skip reading config "
-#~ "files until postinst runs."
-#~ msgstr ""
-#~ "Tentamos determinar que alterações os utilizadores fazem quando editam "
-#~ "um ficheiro de configuração manualmente. Para tal analisamos o ficheiro "
-#~ "no script de configuração. No entanto quando há pré-configuração, o "
-#~ "script de configuração Ã© corrido duas vezes antes do pós-instalaçÃ"
-#~ "£o. Assim podemos ler os valores errados antes que o valor editado seja "
-#~ "escrito no pós-instalação. Se esta opção for falsa não analisamos "
-#~ "os ficheiros de configuração até que o pós-instalação corra."
-
-#~ msgid "You have no zephyr servers specified for the client"
-#~ msgstr "Não tem nenhum servidor zephyr especificado para o cliente"
-
-#~ msgid ""
-#~ "The zephyr-clients package for whatever reason does not have any zephyr "
-#~ "servers configured.  Please edit the file /etc/default/zephyr-clients and "
-#~ "add the names of your zephyr servers, separated by spaces to the zhm_args "
-#~ "variable."
-#~ msgstr ""
-#~ "O pacote zephyr-clients por alguma razão não tem nenhum servidor zephyr "
-#~ "configurado. Por favor edite o ficheiro /etc/default/zephyr-clients e "
-#~ "adicione os nomes dos seus servidores zephyr, separados por espaços Ã  "
-#~ "variável zhm_args."
diff --git a/zephyr/debian/po/pt_BR.po b/zephyr/debian/po/pt_BR.po
deleted file mode 100644 (file)
index 915ba1d..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-# Translators, if you are not familiar with the PO format, gettext
-# documentation is worth reading, especially sections dedicated to
-# this format, e.g. by running:
-# info -n '(gettext)PO Files'
-# info -n '(gettext)Header Entry'
-# Some information specific to po-debconf are available at
-# /usr/share/doc/po-debconf/README-trans
-# or http://www.debian.org/intl/l10n/po-debconf/README-trans
-# Developers do not need to manually edit POT or PO files.
-#
-#      
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: zephyr 2.1\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2008-10-06 02:33-0300\n"
-"Last-Translator: Felipe Augusto van de Wiel (faw) <faw@debian.org>\n"
-"Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."
-"org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"pt_BR\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Servidores Zephyr:"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr ""
-"Por favor, especifique os nomes completos dos servidores Zephyr, use uma "
-"lista separada por espaços."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"A lista configurada nos clientes pode ser um subconjunto da lista "
-"configurada nos servidores."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
-"É possível deixar este campo vazio se o Hesiod for usado para anunciar os "
-"servidores Zephyr."
-
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(note that this can be a subset of what you're telling the servers) If "
-#~ "you are using hesiod to advertise your zephyr servers, leave this blank."
-#~ msgstr ""
-#~ "Por favor digite o nome completo dos seus servidores zephyr, separado por "
-#~ "espaços. (note que isso pode ser um subconjunto daquilo que você está "
-#~ "dizendo aos servidores)"
-
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(Note that this can be a superset of that you're telling the clients.)"
-#~ msgstr ""
-#~ "Por favor digite os nomes completos de seus servidores zephyr, separado "
-#~ "por espaços. (Note que isso pode ser um subconjunto daquilo que você está "
-#~ "dizendo aos clientes.)"
-
-#~ msgid ""
-#~ "We want to try and capture user changes when they edit a config file "
-#~ "manually.  To do this we look at the file in the config script. However, "
-#~ "in the case of preconfigure, the config script is run twice before the "
-#~ "postinst is run.  Thus we may read the wrong value before the edited "
-#~ "value is written out in postinst. If this is false we skip reading config "
-#~ "files until postinst runs."
-#~ msgstr ""
-#~ "Nós queremos tentar e capturar mudanças de usuários quando eles editam um "
-#~ "arquivo de configuração manualmente. Para fazer isso nós olhamos no "
-#~ "arquivo do script de configuração. De qualquer forma, no caso de pré-"
-#~ "configuração, o script de configuração é executado duas vezes antes do "
-#~ "\"postinst\" ser executado. Se isso for falso nós continuamos lendo os "
-#~ "arquivos de configuração até que o \"postinst\" seja executado."
-
-#~ msgid "You have no zephyr servers specified for the client"
-#~ msgstr "Você não tem servidores zephyr especificados para o cliente"
-
-#~ msgid ""
-#~ "The zephyr-clients package for whatever reason does not have any zephyr "
-#~ "servers configured.  Please edit the file /etc/default/zephyr-clients and "
-#~ "add the names of your zephyr servers, separated by spaces to the zhm_args "
-#~ "variable."
-#~ msgstr ""
-#~ "Por uma razão qualquer o pacote zephyr-clients não possui qualquer "
-#~ "servidor zephyr configurado. Por favor edite o arquivo /etc/default/"
-#~ "zephyr-clients e adicione os nomes dos seus servidores zephyr, separado "
-#~ "por espaços na variável zhm_args."
-
-#~ msgid "What are your zephyr servers?"
-#~ msgstr "Quais são os seus servidores zephyr?"
-
-#~ msgid "You should never see this"
-#~ msgstr "Você nunca deveria ter visto isso"
diff --git a/zephyr/debian/po/ru.po b/zephyr/debian/po/ru.po
deleted file mode 100644 (file)
index 03a1bf7..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-# translation of ru.po to Russian
-#
-#    Translators, if you are not familiar with the PO format, gettext
-#    documentation is worth reading, especially sections dedicated to
-#    this format, e.g. by running:
-#         info -n '(gettext)PO Files'
-#         info -n '(gettext)Header Entry'
-#
-#    Some information specific to po-debconf are available at
-#            /usr/share/doc/po-debconf/README-trans
-#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
-#
-#    Developers do not need to manually edit POT or PO files.
-#
-# Unknown, 2003,.
-# Yuri Kozlov <kozlov.y@gmail.com>, 2006, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: 2.1.20070719.SNAPSHOT-3\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2007-12-19 20:35+0300\n"
-"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
-"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Серверы Zephyr:"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr "Введите список полных имён серверов Zephyr через пробел."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"На клиентах можно указывать подмножество списка, настроенного на серверах."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
-"Можно ничего не вводить, если для объявления серверов Zephyr используется "
-"Hesiod."
diff --git a/zephyr/debian/po/sv.po b/zephyr/debian/po/sv.po
deleted file mode 100644 (file)
index 4631f5c..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-# translation of zephyr_2.1.20070719.SNAPSHOT-1.1_sv.po to Swedish
-# Translators, if you are not familiar with the PO format, gettext
-# documentation is worth reading, especially sections dedicated to
-# this format, e.g. by running:
-# info -n '(gettext)PO Files'
-# info -n '(gettext)Header Entry'
-# Some information specific to po-debconf are available at
-# /usr/share/doc/po-debconf/README-trans
-# or http://www.debian.org/intl/l10n/po-debconf/README-trans
-# Developers do not need to manually edit POT or PO files.
-#
-# Martin Ågren <martin.agren@gmail.com>, 2008.
-msgid ""
-msgstr ""
-"Project-Id-Version: zephyr_2.1.20070719.SNAPSHOT-1.1_sv\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2008-07-20 10:41+0200\n"
-"Last-Translator: Martin Ågren <martin.agren@gmail.com>\n"
-"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Zephyr-servrar:"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr "Ange hela namnen på Zephyr-servrarna som en blankstegsseparerad lista."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"Den lista som konfigureras på klienter kan vara en delmängd av listan som "
-"konfigureras på servrar."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
-"Detta fält kan lämnas tomt om Hesiod används för att tillkännage Zephyr-"
-"servrar."
diff --git a/zephyr/debian/po/templates.pot b/zephyr/debian/po/templates.pot
deleted file mode 100644 (file)
index 90619b2..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr ""
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr ""
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
diff --git a/zephyr/debian/po/vi.po b/zephyr/debian/po/vi.po
deleted file mode 100644 (file)
index 15d45ba..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-# Vietnamese translation for Zephyr.
-# Copyright © 2007 Free Software Foundation, Inc.
-# Clytie Siddall <clytie@riverland.net.au>, 2005-2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: zephyr 2.1.20070719.SNAPSHOT-3\n"
-"Report-Msgid-Bugs-To: Source: zephyr@packages.debian.org\n"
-"POT-Creation-Date: 2007-12-05 09:47+0530\n"
-"PO-Revision-Date: 2007-12-21 22:24+1030\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
-"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: LocFactoryEditor 1.7b1\n"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid "Zephyr servers:"
-msgstr "Máy phục vụ Zephyr:"
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"Please specify the full names of the Zephyr servers, as a space-separated "
-"list."
-msgstr ""
-"Hãy ghi rõ tên đầy đủ của mỗi máy phục vụ Zephyr, làm danh sách định giới "
-"bằng dấu cách."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001 ../zephyr-server.templates:2001
-msgid ""
-"The list configured on clients can be a subset of the list configured on "
-"servers."
-msgstr ""
-"Danh sách được cấu hình trên máy khách có thể là tập hợp con của danh sách "
-"được cấu hình trên máy phục vụ."
-
-#. Type: string
-#. Description
-#: ../zephyr-clients.templates:2001
-msgid "This can be left empty if Hesiod is used to advertise Zephyr servers."
-msgstr ""
-"Trường này có thể bỏ rỗng nếu Hesiod được dùng để quảng cáo máy phục vụ "
-"Zephyr."
-
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(note that this can be a subset of what you're telling the servers) If "
-#~ "you are using hesiod to advertise your zephyr servers, leave this blank."
-#~ msgstr ""
-#~ "Hãy gõ tên đầy đủ của các máy phục vụ Zephyr của bạn, định giới bằng dấu "
-#~ "cách (ghi chú: đây có thể là tập hợp con của điều mà bạn báo cho máy phục "
-#~ "vụ). Dùng Hesiod để quảng cáo các máy phục vụ Zephyr thì bỏ rỗng trường "
-#~ "này."
-
-#~ msgid ""
-#~ "Please type the full names of your zephyr servers, separated by spaces. "
-#~ "(Note that this can be a superset of that you're telling the clients.)"
-#~ msgstr ""
-#~ "Hãy gõ tên đầy đủ của các trình phục vụ zephyr của bạn, định giới bằng "
-#~ "dấu cách (ghi chú: điều này có thể là siêu nhóm của điều mà bạn đang báo "
-#~ "những trình khách)."
-
-#~ msgid ""
-#~ "We want to try and capture user changes when they edit a config file "
-#~ "manually.  To do this we look at the file in the config script. However, "
-#~ "in the case of preconfigure, the config script is run twice before the "
-#~ "postinst is run.  Thus we may read the wrong value before the edited "
-#~ "value is written out in postinst. If this is false we skip reading config "
-#~ "files until postinst runs."
-#~ msgstr ""
-#~ "Chúng tôi muốn cố bắt các thay đổi của người dùng khi họ hiệu chỉnh tập "
-#~ "tin cấu hình. Để làm như thế, chúng tôi xem tập tin trong cấu hình. Tuy "
-#~ "nhiên, trong trường hợp cấu hình trước, có chạy tập lệnh cấu hình hai lần "
-#~ "trước khi chạy tiến trình cuối cùng cài đặt. Vì vậy chúng tôi có lẽ sẽ "
-#~ "đọc giá trị không đúng, trước khi giá trị đã sửa đổi được ghi ra trong "
-#~ "tiến trình cuối cùng cài đặt. Nếu giá trị này Sai thì cúng tôi bỏ qua đọc "
-#~ "tập tin cấu hình, đến khi tiến trình cuối cùng cài đặt có cháy. "
-
-#~ msgid "You have no zephyr servers specified for the client"
-#~ msgstr ""
-#~ "Bạn không có trình phục vụ zephyr nào được xác định cho trình khách."
-
-#~ msgid ""
-#~ "The zephyr-clients package for whatever reason does not have any zephyr "
-#~ "servers configured.  Please edit the file /etc/default/zephyr-clients and "
-#~ "add the names of your zephyr servers, separated by spaces to the zhm_args "
-#~ "variable."
-#~ msgstr ""
-#~ "Gói zephyr-clients (khách zephyr), vì lý do nào, không có cấu hình trình "
-#~ "phục vụ zephyr nào. Bạn hãy hiệu chỉnh tập tin </etc/default/zephyr-"
-#~ "clients> và thêm tên của các trình phục vụ zephyr bạn, định giới bằng dấu "
-#~ "cách đến biến « zhm_args »."
-
-#~ msgid "What are your zephyr servers?"
-#~ msgstr "Bạn có trình phục vụ zephyr nào?"
-
-#~ msgid "You should never see this"
-#~ msgstr "Bạn không bao giờ nên thấy điều này."
diff --git a/zephyr/debian/rules b/zephyr/debian/rules
deleted file mode 100755 (executable)
index 6958031..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/usr/bin/make -f
-# Sample debian/rules that uses debhelper. 
-# GNU copyright 1997 by Joey Hess.
-#
-# This version is for a hypothetical package that builds an
-# architecture-dependant package, as well as an architecture-independent
-# package.
-
-# Uncomment this to turn on verbose mode. 
-#export DH_VERBOSE=1
-VARIETALS=krb5
-#VARIETALS=krb krb45 krb5
-
-PACKAGES:=-plibzephyr4 -pzephyr-clients -pzephyr-server -plibzephyr-dev $(foreach i,$(VARIETALS),-plibzephyr4-$(i) -pzephyr-server-$(i))
-
-# This has to be exported to make some magic below work.
-export DH_OPTIONS
-CONFIGURE_ROOT=--prefix=/usr --mandir=\$${prefix}/share/man \
-       --infodir=\$${prefix}/share/info --sysconfdir=/etc --datadir=/etc \
-       --with-ares=/usr --with-hesiod=/usr --enable-cmu-zwgcplus
-CONFIGURE_krb5=--with-krb5=/usr
-CONFIGURE_krb45=--with-krb4=/usr --with-krb5=/usr
-CONFIGURE_krb=--with-krb4=/usr
-
-# see /usr/share/doc/autotools-dev/README.Debian.gz
-export DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-
-# FOR AUTOCONF 2.52 AND NEWER ONLY
-ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
-  confflags += --build $(DEB_HOST_GNU_TYPE)
-else
-  confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
-endif
-
-
-# The autotools target adds forced build-time dependencies on
-# autotools-dev (for /usr/share/misc/config.*) and devscripts (for dch)
-# It's also a .PHONY make target.
-autotools:
-       chmod u+x config.sub
-       chmod u+x config.guess
-       OLDDATESUB=`./config.sub -t | tr -d -` ;\
-       OLDDATEGUESS=`./config.guess -t | tr -d -` ;\
-       NEWDATESUB=`/usr/share/misc/config.sub -t | tr -d -` ;\
-       NEWDATEGUESS=`/usr/share/misc/config.guess -t | tr -d -` ;\
-       if [ $$OLDDATESUB -lt $$NEWDATESUB -o \
-            $$OLDDATEGUESS -lt $$NEWDATEGUESS ]; then \
-          dch -a -p "GNU config automated update: config.sub\
-            ($$OLDDATESUB to $$NEWDATESUB), config.guess\
-            ($$OLDDATEGUESS to $$NEWDATEGUESS)" ;\
-          cp -f /usr/share/misc/config.sub config.sub ;\
-          cp -f /usr/share/misc/config.guess config.guess ;\
-          echo WARNING: GNU config scripts updated from master copies 1>&2 ;\
-       fi
-
-configure: configure-stamp autotools
-configure-stamp:
-       dh_testdir
-       # Add here commands to configure the package.
-       for i in $(foreach i,$(VARIETALS),"$i:$(CONFIGURE_$i)"); do \
-               IFS=: ; set $$i ; \
-               mkdir $$1 || true;  \
-               (cd $$1 && CFLAGS="-g -O" ../configure $$2 $(CONFIGURE_ROOT)); \
-       done
-       -mkdir no-krb
-       cd no-krb && CFLAGS="-g -O" ../configure $(CONFIGURE_ROOT)
-       touch configure-stamp
-
-build: configure-stamp build-stamp
-build-stamp:
-       dh_testdir
-
-       # Add here commands to compile the package.
-       set -e; \
-       for dir in $(VARIETALS) ; do  \
-               $(MAKE) -C $$dir/lib; $(MAKE) -C $$dir/server; \
-       done
-       $(MAKE) -C no-krb
-
-       touch build-stamp
-
-clean:
-       dh_testdir
-       dh_testroot
-       -rm -f build-stamp configure-stamp
-
-       # Add here commands to clean up after the build process.
-       -rm -rf $(VARIETALS) no-krb debian/tmp-krb*
-       -rm debian/zephyr-server-krb.files
-       -rm debian/zephyr-server-krb.templates
-       -rm debian/zephyr-server-krb.config
-       -rm debian/zephyr-server-krb.postinst
-       -rm debian/zephyr-server-krb5.*
-       -rm debian/zephyr-server-krb45.*
-       -rm debian/libzephyr4-krb.files debian/libzephyr4-krb5.files debian/libzephyr4-krb45.files
-
-       dh_clean
-
-install: DH_OPTIONS=
-install: build
-       dh_testdir
-       dh_testroot
-       dh_clean -k
-       -rm -rf debian/tmp-krb*
-       dh_installdirs
-
-       # Add here commands to install the package into debian/tmp.
-       $(MAKE) -C no-krb DESTDIR=$(CURDIR)/debian/tmp install
-       for dir in $(VARIETALS); do \
-               $(MAKE) -C $$dir SUBDIRS="lib server" DESTDIR=$(CURDIR)/debian/tmp-$$dir install; \
-       done
-       mkdir -p debian/tmp/etc/zephyr/acl
-       set -x; for i in debian/acl/*; do install -c -m 644 -o root $$i debian/tmp/etc/zephyr/acl; done; set +x
-       install -c -m 644 debian/zephyr.vars debian/tmp/etc/zephyr
-       install -c -m 644 debian/default.subscriptions debian/tmp/etc/zephyr
-       for dir in $(VARIETALS); do \
-               cp -rp debian/tmp/etc/zephyr/acl debian/tmp-$$dir/etc/zephyr; \
-       done
-       
-# Build architecture-independent files here.
-# Pass -i to all debhelper commands in this target to reduce clutter.
-binary-indep: build install
-
-# Build architecture-dependent files here.
-# Pass -a to all debhelper commands in this target to reduce clutter.
-binary-arch: build install
-       dh_testdir
-       dh_testroot
-       set -e; \
-       for file in files templates postinst docs; do \
-               for dir in $(VARIETALS); do \
-                       cp debian/zephyr-server.$$file debian/zephyr-server-$$dir.$$file; \
-               done; \
-       done
-       for file in config; do \
-               for dir in $(filter-out krb5,$(VARIETALS)); do \
-                       cp debian/zephyr-server.$$file debian/zephyr-server-$$dir.$$file; \
-               done; \
-       done
-       for file in README.Debian docs init postrm; do \
-               for dir in $(filter-out krb,$(VARIETALS)); do \
-                       cp debian/zephyr-server-krb.$$file debian/zephyr-server-$$dir.$$file; \
-               done; \
-       done
-       for dir in $(VARIETALS); do \
-               cp debian/libzephyr4.files debian/libzephyr4-$$dir.files; \
-       done
-       dh_movefiles  -plibzephyr4 -pzephyr-clients -pzephyr-server -plibzephyr-dev
-       for dir in $(VARIETALS); do \
-               dh_movefiles --sourcedir=debian/tmp-$$dir -plibzephyr4-$$dir -pzephyr-server-$$dir; \
-       done
-       dh_installdebconf 
-       dh_installdocs
-       dh_installinit -pzephyr-clients --init-script=zhm --no-start
-       dh_installinit -pzephyr-server --init-script=zephyrd
-       for dir in $(VARIETALS); do \
-               dh_installinit -pzephyr-server-$$dir --init-script=zephyrd; \
-       done
-       dh_installchangelogs 
-       dh_strip
-       dh_compress
-       dh_fixperms
-       dh_makeshlibs
-       # sigh
-       for dir in $(VARIETALS); do \
-               cp debian/libzephyr4/DEBIAN/shlibs debian/libzephyr4-$$dir/DEBIAN/shlibs; \
-       done
-       dh_shlibdeps $(PACKAGES)
-       dh_installdeb $(PACKAGES)
-       dh_gencontrol $(PACKAGES)
-       dh_md5sums $(PACKAGES)
-       dh_builddeb $(PACKAGES)
-       for dir in $(VARIETALS); do \
-               dh_builddeb --sourcedir=debian/tmp-$$dir -plibzephyr4-$$dir -pzephyr-server-$$dir; \
-       done
-
-
-binary: binary-indep binary-arch
-
-.PHONY: autotools build clean binary-indep binary-arch binary install 
diff --git a/zephyr/debian/zephyr-clients.config b/zephyr/debian/zephyr-clients.config
deleted file mode 100644 (file)
index 5ed8da9..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh -e
-
-. /usr/share/debconf/confmodule
-db_version 2.0
-
-db_get zephyr-clients/servers || true
-if test -z "$RET"
-then
-       # If there's an /etc/zephyr/server.list file lying around, read it
-       if test -f /etc/zephyr/server.list
-       then
-               z="`cat /etc/zephyr/server.list`"
-       
-               if test -n "$z"
-               then
-                   db_set zephyr-clients/servers "$z"
-               fi
-       else
-               # if there happens to be zephyr server decconf on this machine,
-               # see what its debconf knows about zephyr servers...
-               if db_get zephyr-server/servers && test -n "$RET"
-               then
-                       db_set zephyr-clients/servers $RET
-               fi
-       fi
-fi
-
-db_get zephyr-clients/read_conf 
-if test -f /etc/default/zephyr-clients -a \( "$RET" = true \)
-then
-       zhm_args=""
-       . /etc/default/zephyr-clients
-       if test -n "$zhm_args"
-       then
-               db_set zephyr-clients/read_conf false
-               db_set zephyr-clients/servers "$zhm_args"
-       fi
-fi
-
-db_input high zephyr-clients/servers || true
-
-db_go || true
diff --git a/zephyr/debian/zephyr-clients.docs b/zephyr/debian/zephyr-clients.docs
deleted file mode 100644 (file)
index a70b3c8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-USING
diff --git a/zephyr/debian/zephyr-clients.files b/zephyr/debian/zephyr-clients.files
deleted file mode 100644 (file)
index 238bb10..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-usr/bin/zaway
-usr/bin/zctl
-usr/bin/zleave
-usr/bin/zlocate
-usr/bin/znol
-usr/bin/zstat
-usr/bin/zwrite
-usr/bin/zwgc
-usr/sbin/zshutdown_notify
-usr/sbin/zhm
-usr/share/man/man1/zephyr.1
-usr/share/man/man1/zaway.1
-usr/share/man/man1/zctl.1
-usr/share/man/man1/zleave.1
-usr/share/man/man1/zlocate.1
-usr/share/man/man1/znol.1
-usr/share/man/man1/zwrite.1
-usr/share/man/man1/zwgc.1
-usr/share/man/man8/zshutdown_notify.8
-usr/share/man/man8/zstat.8
-usr/share/man/man8/zhm.8
-etc/zephyr/zwgc.desc
-etc/zephyr/zwgc_resources
-etc/zephyr/zephyr.vars
diff --git a/zephyr/debian/zephyr-clients.init b/zephyr/debian/zephyr-clients.init
deleted file mode 100644 (file)
index d0ad3cc..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#! /bin/sh
-#
-# skeleton     example file to build /etc/init.d/ scripts.
-#              This file should be used to construct scripts for /etc/init.d.
-#
-#              Written by Miquel van Smoorenburg <miquels@cistron.nl>.
-#              Modified for Debian GNU/Linux
-#              by Ian Murdock <imurdock@gnu.ai.mit.edu>.
-#
-# Version:     @(#)skeleton  1.8  03-Mar-1998  miquels@cistron.nl
-#
-# This file was automatically customized by dh-make on Mon,  4 Dec 2000 05:28:22 -0500
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/sbin/zhm
-NAME=zhm
-DESC="zephyr host manager"
-
-test -f $DAEMON || exit 0
-
-set -e
-
-if test -f /etc/default/zephyr-clients
-then
-       . /etc/default/zephyr-clients
-fi
-
-case "$1" in
-  start)
-       echo -n "Starting $DESC: "
-       start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
-               --exec $DAEMON -- $zhm_args
-       echo "$NAME."
-       ;;
-  stop)
-       echo -n "Stopping $DESC: "
-       start-stop-daemon --oknodo --stop --quiet --pidfile /var/run/$NAME.pid \
-               --name $NAME
-       echo "$NAME."-
-       ;;
-  restart|force-reload)
-       #
-       #       If the "reload" option is implemented, move the "force-reload"
-       #       option to the "reload" entry above. If not, "force-reload" is
-       #       just the same as "restart".
-       #
-       echo -n "Restarting $DESC: "
-       start-stop-daemon --oknodo --stop --retry 5 --quiet --pidfile \
-               /var/run/$NAME.pid --name $NAME
-       start-stop-daemon --start --quiet --pidfile \
-               /var/run/$NAME.pid --exec $DAEMON -- -N $zhm_args
-       echo "$NAME."
-       ;;
-  *)
-       N=/etc/init.d/$NAME
-       # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
-       echo "Usage: $N {start|stop|restart|force-reload}" >&2
-       exit 1
-       ;;
-esac
-
-exit 0
-
-### BEGIN INIT INFO
-# Provides:          zhm
-# Required-Start:    $syslog $network
-# Required-Stop:     $syslog
-# Should-Stop:       $network
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Start the zephyr host manager daemon.
-# Description:       Start the zephyr host manager daemon.
-### END INIT INFO
-
diff --git a/zephyr/debian/zephyr-clients.postinst b/zephyr/debian/zephyr-clients.postinst
deleted file mode 100644 (file)
index e358728..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#! /bin/sh
-# postinst script for zephyr
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-#        * <postinst> `configure' <most-recently-configured-version>
-#        * <old-postinst> `abort-upgrade' <new version>
-#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-#          <new-version>
-#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-#          <failed-install-package> <version> `removing'
-#          <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-#     Any necessary prompting should almost always be confined to the
-#     post-installation script, and should be protected with a conditional
-#     so that unnecessary prompting doesn't happen if a package's
-#     installation fails and the `postinst' is called with `abort-upgrade',
-#     `abort-remove' or `abort-deconfigure'.
-
-case "$1" in
-    configure)
-
-       . /usr/share/debconf/confmodule
-       db_version 2.0
-
-       db_set zephyr-clients/read_conf true
-
-       if test -f /etc/zephyr/zephyr.conf
-       then
-               if test ! -f /etc/default/zephyr-clients
-               then
-                       mv /etc/zephyr/zephyr.conf /etc/default/zephyr-clients
-               fi
-       fi
-
-       # if /etc/default/zephyr-clients already exists and has a zhm_args
-        # line, the config script should have sucked it into debconf
-       db_get zephyr-clients/servers || true
-
-       tmpfile=/etc/default/zephyr-client.dpkg-new
-       if test -f /etc/default/zephyr-clients
-       then
-               grep -v ^zhm_args /etc/default/zephyr-clients > $tmpfile || true
-       else
-               cat > $tmpfile << EOF
-# This file is automatically rewritten by the zephyr-clients post-install
-# script.  So treat it right.
-EOF
-       fi
-       echo zhm_args=\"${RET}\" >> $tmpfile
-       cat $tmpfile > /etc/default/zephyr-clients
-       rm $tmpfile
-    ;;
-
-    abort-upgrade|abort-remove|abort-deconfigure)
-
-    ;;
-
-    *)
-        echo "postinst called with unknown argument \`$1'" >&2
-        exit 0
-    ;;
-esac
-
-if [ -x "/etc/init.d/zhm" ]; then
-       # this script does not necessarily fail if these do
-        if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
-                invoke-rc.d zhm restart
-        else
-                /etc/init.d/zhm restart
-        fi
-fi
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
diff --git a/zephyr/debian/zephyr-clients.prerm b/zephyr/debian/zephyr-clients.prerm
deleted file mode 100644 (file)
index 69beaac..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#! /bin/sh
-# prerm script for zephyr-client
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-#        * <prerm> `remove'
-#        * <old-prerm> `upgrade' <new-version>
-#        * <new-prerm> `failed-upgrade' <old-version>
-#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-#        * <deconfigured's-prerm> `deconfigure' `in-favour'
-#          <package-being-installed> <version> `removing'
-#          <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-
-case "$1" in
-    deconfigure|remove)
-       rm /etc/default/zephyr-clients || true
-       ;;
-    upgrade)
-#    remove|upgrade|deconfigure)
-#       install-info --quiet --remove /usr/info/zephyr.info.gz
-        ;;
-    failed-upgrade)
-        ;;
-    *)
-        echo "prerm called with unknown argument \`$1'" >&2
-        exit 0
-    ;;
-esac
-
-if [ -x "/etc/init.d/zhm" ] && [ "$1" = remove ]; then
-        if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
-                invoke-rc.d zhm stop || exit $?
-        else
-                /etc/init.d/zhm stop || exit $?
-        fi
-fi
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
-
-
diff --git a/zephyr/debian/zephyr-clients.templates b/zephyr/debian/zephyr-clients.templates
deleted file mode 100644 (file)
index 2d0d025..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# These templates have been reviewed by the debian-l10n-english
-# team
-#
-# If modifications/additions/rewording are needed, please ask
-# debian-l10n-english@lists.debian.org for advice.
-#
-# Even minor modifications require translation updates and such
-# changes should be coordinated with translators and reviewers.
-
-Template: zephyr-clients/servers
-Type: string
-_Description: Zephyr servers:
- Please specify the full names of the Zephyr servers, as a
- space-separated list.
- .
- The list configured on clients can be a subset of the list configured
- on servers.
- .
- This can be left empty if Hesiod is used to advertise Zephyr servers.
-
-Template: zephyr-clients/read_conf
-Type: boolean
-Default: true
-Description: for internal use
- We want to try and capture user changes when they edit a config file
- manually.  To do this we look at the file in the config script. However,
- in the case of preconfigure, the config script is run twice before the
- postinst is run.  Thus we may read the wrong value before the edited value
- is written out in postinst. If this is false we skip reading config files
- until postinst runs.
diff --git a/zephyr/debian/zephyr-server-krb.README.Debian b/zephyr/debian/zephyr-server-krb.README.Debian
deleted file mode 100644 (file)
index 4b03c1d..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-To run a zephyr server with MIT Kerberos support, you need to generate a 
-Kerberos IV srvtab for the principal zephyr.zephyr@YOUR.REALM.NAME.
-
-Doing this with the MIT Kerberos V server is a somewhat convoluted process, 
-but here we go:
-
-[Note that this presumes that you have Kerberos administrator privileges, if
-you don't, find someone who does.]
-
-At the kadmin prompt, type
-
-ank -randkey zephyr/zephyr
-
-this creates the Kerberos principal, with whatever key types and cryptosystems
-your realm defaults to.  Next, also at the kadmin prompt, type the following
-substituting appropriately for your realm name and various file locations:
-
-xst -k /tmp/keytab -e des-cbc-crc:v4 zephyr/zephyr@YOUR.REALM.NAME
-
-The key type is necessary because zephyr uses an older version of Kerberos
-that used only single-DES.  Now run ktutil:
-
-rkt /tmp/keytab
-wst /etc/zephyr/srvtab
-q
-
-You now want to make sure that the /tmp/keytab file is written-over and
-removed.  Fortunately, you have Kerberos, you have kdestroy.
-
-env KRB5CCNAME=/tmp/keytab kdestroy
diff --git a/zephyr/debian/zephyr-server-krb.docs b/zephyr/debian/zephyr-server-krb.docs
deleted file mode 100644 (file)
index a3a5154..0000000
+++ /dev/null
@@ -1 +0,0 @@
-OPERATING
diff --git a/zephyr/debian/zephyr-server-krb.init b/zephyr/debian/zephyr-server-krb.init
deleted file mode 100644 (file)
index b890a88..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#! /bin/sh
-#
-# skeleton     example file to build /etc/init.d/ scripts.
-#              This file should be used to construct scripts for /etc/init.d.
-#
-#              Written by Miquel van Smoorenburg <miquels@cistron.nl>.
-#              Modified for Debian GNU/Linux
-#              by Ian Murdock <imurdock@gnu.ai.mit.edu>.
-#
-# Version:     @(#)skeleton  1.8  03-Mar-1998  miquels@cistron.nl
-#
-# This file was automatically customized by dh-make on Mon,  4 Dec 2000 05:28:22 -0500
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/sbin/zephyrd
-NAME=zephyrd
-DESC="zephyr server"
-
-test -f $DAEMON || exit 0
-
-set -e
-
-case "$1" in
-  start)
-       if test ! -f /etc/zephyr/srvtab
-       then
-               echo 'You need to get a srvtab before the kerberized zephyr server will function'
-               echo 'correctly.  Get a srvtab for zephyr/zephyr and put it in /etc/zephyr/srvtab.'
-               exit 0
-       fi
-       echo -n "Starting $DESC: "
-       start-stop-daemon --start --quiet --exec $DAEMON
-       echo "$NAME."
-       ;;
-  stop)
-       echo -n "Stopping $DESC: "
-       start-stop-daemon --oknodo --stop --quiet --exec $DAEMON
-       echo "$NAME."
-       ;;
-  restart)
-       #
-       #       If the "reload" option is implemented, move the "force-reload"
-       #       option to the "reload" entry above. If not, "force-reload" is
-       #       just the same as "restart".
-       #
-       echo -n "Restarting $DESC: "
-       start-stop-daemon --oknodo --stop --quiet --exec $DAEMON
-       sleep 1
-       start-stop-daemon --start --quiet --pidfile \
-               /var/run/$NAME.pid --exec $DAEMON -- $zhm_args
-       echo "$NAME."
-       ;;
-  reload|force-reload)
-       echo -n "Telling $NAME to reload..."
-       start-stop-daemon --stop --signal HUP --exec $DAEMON
-       echo done.
-       ;;
-  *)
-       N=/etc/init.d/$NAME
-       echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
-       # echo "Usage: $N {start|stop|restart|force-reload}" >&2
-       exit 1
-       ;;
-esac
-
-exit 0
-
-### BEGIN INIT INFO
-# Provides:          zephyrd
-# Required-Start:    $syslog $network
-# Required-Stop:     $syslog
-# Should-Stop:       $network
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Start the zephyr server.
-# Description:       Start the zephyr server.
-### END INIT INFO
diff --git a/zephyr/debian/zephyr-server-krb.postrm b/zephyr/debian/zephyr-server-krb.postrm
deleted file mode 100644 (file)
index 95aa504..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh -e
-
-if test "$1" = purge; then
-       rm -f /etc/zephyr/server.list
-fi
-
-#DEBHELPER#
-
-exit 0
diff --git a/zephyr/debian/zephyr-server.config b/zephyr/debian/zephyr-server.config
deleted file mode 100644 (file)
index 3d38e3e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh -e
-
-. /usr/share/debconf/confmodule
-db_version 2.0
-
-db_get zephyr-server/read_conf
-if test -f /etc/zephyr/server.list -a \( "$RET" = true \)
-then
-       z="`cat /etc/zephyr/server.list`"
-       
-       if test -n "$z"
-       then
-               db_set zephyr-server/read_conf false
-               db_set zephyr-server/servers "$z"
-       fi
-fi
-
-db_get zephyr-server/servers || true
-if test -z "$RET"
-then
-       # if there happens to be zephyr-clients running on this machine
-       # it might know something about servers.
-       # else default to just the current host
-       z="`hostname --fqdn`"
-       if db_get zephyr-clients/servers && test -n "$RET" && ! echo "$RET" | grep -q "$z"
-       then
-               z="$RET $z"
-       fi
-       db_set zephyr-server/servers "$z"
-fi
-
-db_input high zephyr-server/servers || true
-db_go || true
diff --git a/zephyr/debian/zephyr-server.docs b/zephyr/debian/zephyr-server.docs
deleted file mode 100644 (file)
index a3a5154..0000000
+++ /dev/null
@@ -1 +0,0 @@
-OPERATING
diff --git a/zephyr/debian/zephyr-server.files b/zephyr/debian/zephyr-server.files
deleted file mode 100644 (file)
index f0f9687..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-usr/sbin/zephyrd
-usr/share/man/man8/zephyrd.8
-etc/zephyr/acl/class-registry.acl
-etc/zephyr/acl/iui-hm_ctl.acl
-etc/zephyr/acl/iui-hm_stat.acl
-etc/zephyr/acl/iui-login.acl
-etc/zephyr/acl/iui-operations.acl
-etc/zephyr/acl/iui-user_locate.acl
-etc/zephyr/acl/iui-wg_ctl.acl
-etc/zephyr/acl/iui-zephyr_admin.acl
-etc/zephyr/acl/iui-zephyr_ctl.acl
-etc/zephyr/acl/iws-hm_ctl.acl
-etc/zephyr/acl/iws-hm_stat.acl
-etc/zephyr/acl/iws-login.acl
-etc/zephyr/acl/iws-operations.acl
-etc/zephyr/acl/iws-user_locate.acl
-etc/zephyr/acl/iws-wg_ctl.acl
-etc/zephyr/acl/iws-zephyr_admin.acl
-etc/zephyr/acl/iws-zephyr_ctl.acl
-etc/zephyr/acl/sub-hm_ctl.acl
-etc/zephyr/acl/sub-hm_stat.acl
-etc/zephyr/acl/sub-login.acl
-etc/zephyr/acl/sub-operations.acl
-etc/zephyr/acl/sub-user_locate.acl
-etc/zephyr/acl/sub-wg_ctl.acl
-etc/zephyr/acl/sub-zephyr_admin.acl
-etc/zephyr/acl/sub-zephyr_ctl.acl
-etc/zephyr/acl/xmt-hm_ctl.acl
-etc/zephyr/acl/xmt-hm_stat.acl
-etc/zephyr/acl/xmt-login.acl
-etc/zephyr/acl/xmt-operations.acl
-etc/zephyr/acl/xmt-user_locate.acl
-etc/zephyr/acl/xmt-wg_ctl.acl
-etc/zephyr/acl/xmt-zephyr_admin.acl
-etc/zephyr/acl/xmt-zephyr_ctl.acl
-etc/zephyr/default.subscriptions
diff --git a/zephyr/debian/zephyr-server.init b/zephyr/debian/zephyr-server.init
deleted file mode 100644 (file)
index b0c96cd..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#! /bin/sh
-#
-# skeleton     example file to build /etc/init.d/ scripts.
-#              This file should be used to construct scripts for /etc/init.d.
-#
-#              Written by Miquel van Smoorenburg <miquels@cistron.nl>.
-#              Modified for Debian GNU/Linux
-#              by Ian Murdock <imurdock@gnu.ai.mit.edu>.
-#
-# Version:     @(#)skeleton  1.8  03-Mar-1998  miquels@cistron.nl
-#
-# This file was automatically customized by dh-make on Mon,  4 Dec 2000 05:28:22 -0500
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/sbin/zephyrd
-NAME=zephyrd
-DESC="zephyr server"
-
-test -f $DAEMON || exit 0
-
-set -e
-
-case "$1" in
-  start)
-       echo -n "Starting $DESC: "
-       start-stop-daemon --start --quiet --exec $DAEMON
-       echo "$NAME."
-       ;;
-  stop)
-       echo -n "Stopping $DESC: "
-       start-stop-daemon --oknodo --stop --quiet --exec $DAEMON
-       echo "$NAME."
-       ;;
-  restart)
-       #
-       #       If the "reload" option is implemented, move the "force-reload"
-       #       option to the "reload" entry above. If not, "force-reload" is
-       #       just the same as "restart".
-       #
-       echo -n "Restarting $DESC: "
-       start-stop-daemon --oknodo --stop --quiet --exec $DAEMON
-       sleep 1
-       start-stop-daemon --start --quiet --pidfile \
-               /var/run/$NAME.pid --exec $DAEMON 
-       echo "$NAME."
-       ;;
-  reload|force-reload)
-       echo -n "Telling $NAME to reload..."
-       start-stop-daemon --stop --signal HUP --exec $DAEMON
-       echo done.
-       ;;
-  *)
-       N=/etc/init.d/$NAME
-       echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
-       # echo "Usage: $N {start|stop|restart|force-reload}" >&2
-       exit 1
-       ;;
-esac
-
-exit 0
-
-### BEGIN INIT INFO
-# Provides:          zephyrd
-# Required-Start:    $syslog $network
-# Required-Stop:     $syslog
-# Should-Stop:       $network
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Start the zephyr server.
-# Description:       Start the zephyr server.
-### END INIT INFO
-
diff --git a/zephyr/debian/zephyr-server.postinst b/zephyr/debian/zephyr-server.postinst
deleted file mode 100644 (file)
index 014ab5e..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#! /bin/sh
-# postinst script for zephyr
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-#        * <postinst> `configure' <most-recently-configured-version>
-#        * <old-postinst> `abort-upgrade' <new version>
-#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-#          <new-version>
-#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-#          <failed-install-package> <version> `removing'
-#          <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-#     Any necessary prompting should almost always be confined to the
-#     post-installation script, and should be protected with a conditional
-#     so that unnecessary prompting doesn't happen if a package's
-#     installation fails and the `postinst' is called with `abort-upgrade',
-#     `abort-remove' or `abort-deconfigure'.
-
-case "$1" in
-    configure)
-       if test ! -f /etc/zephyr/server.list; then
-           # if there's a server.list file, don't mess with it
-           . /usr/share/debconf/confmodule
-
-           db_version 2.0
-           
-           db_set zephyr-server/read_conf true
-           
-           db_get zephyr-server/servers || true
-           : > /etc/zephyr/server.list
-           for i in $RET
-           do
-               echo $i >> /etc/zephyr/server.list
-           done
-       fi
-    ;;
-
-    abort-upgrade|abort-remove|abort-deconfigure)
-
-    ;;
-
-    *)
-        echo "postinst called with unknown argument \`$1'" >&2
-        exit 0
-    ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
-
-
diff --git a/zephyr/debian/zephyr-server.postrm b/zephyr/debian/zephyr-server.postrm
deleted file mode 100644 (file)
index 95aa504..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh -e
-
-if test "$1" = purge; then
-       rm -f /etc/zephyr/server.list
-fi
-
-#DEBHELPER#
-
-exit 0
diff --git a/zephyr/debian/zephyr-server.templates b/zephyr/debian/zephyr-server.templates
deleted file mode 100644 (file)
index efca03b..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# These templates have been reviewed by the debian-l10n-english
-# team
-#
-# If modifications/additions/rewording are needed, please ask
-# debian-l10n-english@lists.debian.org for advice.
-#
-# Even minor modifications require translation updates and such
-# changes should be coordinated with translators and reviewers.
-
-Template: zephyr-server/servers
-Type: string
-_Description: Zephyr servers:
- Please specify the full names of the Zephyr servers, as a
- space-separated list.
- .
- The list configured on clients can be a subset of the list configured
- on servers.
-
-Template: zephyr-server/no-more-krb4
-Type: boolean
-Default: true
-Description: Incompatible Upgrade
- You appear to be upgrading from a version of the zephyr server that
- uses Kerberos version 4 to authenticate.  Kerberos version 4 support
- has been removed from Debian, and accordingly from the zephyr server.
- This version of the zephyr server uses only Kerberos 5 to
- authenticate, and thus is almost certainly incompatible with any of
- your currently deployed clients.
- .
- A server that authenticates both ways can be built for lenny from the
- zephyr source package, see:
-   /usr/share/doc/libzephyr4-krb5/README.krb4-5
- .
- Continue with the upgrade?
-
-Template: zephyr-server/read_conf
-Type: boolean
-Default: true
-Description: for internal use
- We want to try and capture user changes when they edit a config file
- manually.  To do this we look at the file in the config script. However,
- in the case of preconfigure, the config script is run twice before the
- postinst is run.  Thus we may read the wrong value before the edited value
- is written out in postinst. If this is false we skip reading config files
- until postinst runs.
diff --git a/zephyr/debian/zephyr.vars b/zephyr/debian/zephyr.vars
deleted file mode 100644 (file)
index eaf70f0..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# $Id$
-
-# Zephyr default variables file.  Format is:
-#
-#   var = value
-
-# Exposure setting defaults to realm-visible.
-exposure = realm-visible
-
-# Initialization programs.
-#initprogs = /etc/athena/zinit
diff --git a/zephyr/ensure-dir.sh b/zephyr/ensure-dir.sh
deleted file mode 100755 (executable)
index 34f03ac..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-pathname=$1
-mode=$2
-OLDIFS="${IFS}"; IFS=/; set $pathname; IFS="${OLDIFS}"
-
-case $pathname in
-       /*)     partial=/; ;;
-       *)      partial=""; ;;
-esac
-
-for i do
-       case i in "") continue; ;; esac
-       partial="${partial}${i}"
-       if [ ! -d ${partial} ]; then
-               mkdir ${partial} || exit 1;
-               chmod ${mode} ${partial}
-       fi
-       partial="${partial}/"
-done
-
diff --git a/zephyr/h/config.h.in b/zephyr/h/config.h.in
deleted file mode 100644 (file)
index 33657b5..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-/* h/config.h.in.  Generated from configure.in by autoheader.  */
-/* Define to compile with Hesiod support. */
-#undef HAVE_HESIOD
-
-/* Define to compile with Kerberos support. */
-#undef HAVE_KRB4
-
-/* Define to compile with Kerberos v5 support. */
-#undef HAVE_KRB5
-
-/* Define to allow users to locate themselves if they are opstaff */
-#undef OPSTAFF_LOCATE_SELF
-
-/* Define to get hm_flush restrictions in zctl */
-#undef HM_FLUSH_RESTRICT
-
-/* Define to pull in CMU zctl punt backward compat foo */
-#undef CMU_ZCTL_PUNT
-
-/* Define to enable zwgcplus support */
-#undef CMU_ZWGCPLUS
-
-/* Define to 1 if `enc_part2' is member of `krb5_ticket'. */
-#undef HAVE_KRB5_TICKET_ENC_PART2
-
-/* Define to 1 if `keyblock.enctype' is member of `krb5_creds'. */
-#undef HAVE_KRB5_CREDS_KEYBLOCK_ENCTYPE
-
-/* Define to 1 if you have the `krb5_c_make_checksum' function. */
-#undef HAVE_KRB5_C_MAKE_CHECKSUM
-
-/* Define to 1 if you have the `krb5_cc_set_default_name' function. */
-#undef HAVE_KRB5_CC_SET_DEFAULT_NAME
-
-/* Define to 1 if you have the `krb5_crypto_init' function. */
-#undef HAVE_KRB5_CRYPTO_INIT
-
-/* Define to 1 if you have the `krb5_c_decrypt' function. */
-#undef HAVE_KRB5_C_DECRYPT
-
-/* Define to 1 if `krb5_auth_con_getauthenticator' takes a double pointer third arg. */
-#undef KRB5_AUTH_CON_GETAUTHENTICATOR_TAKES_DOUBLE_POINTER
-
-/* Define to 1 if you have the <krb5_err.h> header file. */
-#undef HAVE_KRB5_ERR_H
-
-/* Define to 1 if you have the `krb5_free_data' function. */
-#undef HAVE_KRB5_FREE_DATA
-
-/* Define to 1 if you have the <krb5/ss.h> header file. */
-#undef HAVE_KRB5_SS_H
-
-/* Define to 1 if you have the `krb_get_err_text' function. */
-#undef HAVE_KRB_GET_ERR_TEXT
-
-/* Define to 1 if you have the `krb_log' function. */
-#undef HAVE_KRB_LOG
-
-/* Define to compile with ares support. */
-#undef HAVE_ARES
-
-/* Define to a signed 32-bit integral type. */
-#define ZEPHYR_INT32 long
-
-/* Define if you have the System Resource Controller library. */
-#undef HAVE_SRC
-
-/* Define to "unsigned long" if your system headers don't. */
-#undef ulong
-
-/* Define to a temporary directory on your system. */
-#define FOUND_TMP "/var/tmp"
-
-/* Define to the type of the host system. */
-#define MACHINE_TYPE "unknown"
-
-/* Define if `regcomp' exists and works. */
-#undef HAVE_REGCOMP
-
-
-/* Define to 1 if the `getpgrp' function requires zero arguments. */
-#undef GETPGRP_VOID
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
-#undef HAVE_DOPRNT
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the `gethostid' function. */
-#undef HAVE_GETHOSTID
-
-/* Define to 1 if you have the `getlogin' function. */
-#undef HAVE_GETLOGIN
-
-/* Define to 1 if you have the `getpgid' function. */
-#undef HAVE_GETPGID
-
-/* Define to 1 if you have the `getsid' function. */
-#undef HAVE_GETSID
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `krb5_cc_set_default_name' function. */
-#undef HAVE_KRB5_CC_SET_DEFAULT_NAME
-
-/* Define to 1 if you have the `krb5_c_make_checksum' function. */
-#undef HAVE_KRB5_C_MAKE_CHECKSUM
-
-/* Define to 1 if you have the <krb5_err.h> header file. */
-#undef HAVE_KRB5_ERR_H
-
-/* Define to 1 if you have the `krb5_free_data' function. */
-#undef HAVE_KRB5_FREE_DATA
-
-/* Define to 1 if you have the `krb_get_err_text' function. */
-#undef HAVE_KRB_GET_ERR_TEXT
-
-/* Define to 1 if you have the `krb_log' function. */
-#undef HAVE_KRB_LOG
-
-/* Define to 1 if you have the `44bsd' library (-l44bsd). */
-#undef HAVE_LIB44BSD
-
-/* Define to 1 if you have the `curses' library (-lcurses). */
-#undef HAVE_LIBCURSES
-
-/* Define to 1 if you have the `dl' library (-ldl). */
-#undef HAVE_LIBDL
-
-/* Define to 1 if you have the `gen' library (-lgen). */
-#undef HAVE_LIBGEN
-
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#undef HAVE_LIBNSL
-
-/* Define to 1 if you have the `readline' library (-lreadline). */
-#undef HAVE_LIBREADLINE
-
-/* Define to 1 if you have the `resolv' library (-lresolv). */
-#undef HAVE_LIBRESOLV
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
-/* Define to 1 if you have the `w' library (-lw). */
-#undef HAVE_LIBW
-
-/* Define to 1 if you have the `lrand48' function. */
-#undef HAVE_LRAND48
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define to 1 if you have the `memcpy' function. */
-#undef HAVE_MEMCPY
-
-/* Define to 1 if you have the `memmove' function. */
-#undef HAVE_MEMMOVE
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <paths.h> header file. */
-#undef HAVE_PATHS_H
-
-/* Define to 1 if you have the `putenv' function. */
-#undef HAVE_PUTENV
-
-/* Define to 1 if you have the `random' function. */
-#undef HAVE_RANDOM
-
-/* Define to 1 if you have the <sgtty.h> header file. */
-#undef HAVE_SGTTY_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strchr' function. */
-#undef HAVE_STRCHR
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/cdefs.h> header file. */
-#undef HAVE_SYS_CDEFS_H
-
-/* Define to 1 if you have the <sys/file.h> header file. */
-#undef HAVE_SYS_FILE_H
-
-/* Define to 1 if you have the <sys/filio.h> header file. */
-#undef HAVE_SYS_FILIO_H
-
-/* Define to 1 if you have the <sys/ioctl.h> header file. */
-#undef HAVE_SYS_IOCTL_H
-
-/* Define to 1 if you have the <sys/msgbuf.h> header file. */
-#undef HAVE_SYS_MSGBUF_H
-
-/* Define to 1 if you have the <sys/select.h> header file. */
-#undef HAVE_SYS_SELECT_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <sys/utsname.h> header file. */
-#undef HAVE_SYS_UTSNAME_H
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to 1 if you have the <termcap.h> header file. */
-#undef HAVE_TERMCAP_H
-
-/* Define to 1 if you have the <termios.h> header file. */
-#undef HAVE_TERMIOS_H
-
-/* Define to 1 if you have the <term.h> header file. */
-#undef HAVE_TERM_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `vprintf' function. */
-#undef HAVE_VPRINTF
-
-/* Define to 1 if you have the `waitpid' function. */
-#undef HAVE_WAITPID
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define as the return type of signal handlers (`int' or `void'). */
-#undef RETSIGTYPE
-
-/* Define to 1 if the `setpgrp' function takes no argument. */
-#undef SETPGRP_VOID
-
-/* The size of `int', as computed by sizeof. */
-#undef SIZEOF_INT
-
-/* The size of `long', as computed by sizeof. */
-#undef SIZEOF_LONG
-
-/* The size of `short', as computed by sizeof. */
-#undef SIZEOF_SHORT
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define to 1 if the X Window System is missing or not being used. */
-#undef X_DISPLAY_MISSING
-
-/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
-   `char[]'. */
-#undef YYTEXT_POINTER
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#undef gid_t
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#undef uid_t
diff --git a/zephyr/h/dyn.h b/zephyr/h/dyn.h
deleted file mode 100644 (file)
index 6823b75..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the public header file.
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-
-/*
- * dyn.h -- header file to be included by programs linking against
- * libdyn.a.
- */
-
-#ifndef _Dyn_h
-#define _Dyn_h
-
-/* Reliance on <sysdep.h> for __P() below makes this unsuitable for use
- * outside of the Zephyr source tree. */
-#include <sysdep.h>
-
-typedef char *DynPtr;
-typedef struct _DynObject *DynObject;
-
-/* Function macros */
-#define DynHigh(obj)   (DynSize(obj) - 1)
-#define DynLow(obj)    (0)
-
-#ifdef SUNOS
-#define memmove(a, b, c) bcopy(b, a, c)
-#endif
-
-/* Return status codes */
-#define DYN_OK         -1000
-#define DYN_NOMEM      -1001
-#define DYN_BADINDEX   -1002
-#define DYN_BADVALUE   -1003
-     
-/* Function declarations */
-int            DynAppend __P((DynObject obj, DynPtr els, int num));
-int            DynAdd __P((DynObject obj, DynPtr el));
-DynObject      DynCreate __P((int el_size, int inc));
-int            DynDebug __P((DynObject obj, int state));
-int            DynDelete __P((DynObject obj, int idx));
-int            DynDestroy __P((DynObject obj));
-DynPtr         DynGet __P((DynObject obj, int num));
-int            DynInsert __P((DynObject obj, int idx, DynPtr els, int num));
-int            DynParanoid __P((DynObject obj, int state));
-int            DynSize __P((DynObject obj));
-
-#endif /* _Dyn_h */
-/* DO NOT ADD ANYTHING AFTER THIS #endif */
diff --git a/zephyr/h/internal.h b/zephyr/h/internal.h
deleted file mode 100644 (file)
index 2869543..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-
-#ifndef __INTERNAL_H__
-#define __INTERNAL_H__
-
-#include <sysdep.h>
-#include <zephyr/zephyr.h>
-#include <netdb.h>
-
-#ifdef HAVE_KRB4
-#include <krb.h>
-#include <krb_err.h>
-#endif
-
-#ifdef HAVE_KRB5
-#include <krb5.h>
-#endif
-
-#ifdef HAVE_HESIOD
-#include <hesiod.h>
-#endif
-
-#ifndef HAVE_KRB4
-#define CLOCK_SKEW     300             /* max time to cache packet ids */
-#endif
-
-#ifndef REALM_SZ  /* XXX */
-#include <arpa/nameser.h>
-#define REALM_SZ       NS_MAXDNAME
-#endif
-#define MAX_PRINCIPAL_SIZE     1024
-
-#define SERVER_SVC_FALLBACK    htons((unsigned short) 2103)
-#define HM_SVC_FALLBACK                htons((unsigned short) 2104)
-#define HM_SRV_SVC_FALLBACK    htons((unsigned short) 2105)
-
-#define ZAUTH_UNSET            (-3) /* Internal to client library. */
-#define Z_MAXFRAGS             500     /* Max number of packet fragments */
-#define Z_MAXNOTICESIZE                400000  /* Max size of incoming notice */
-#define Z_MAXQUEUESIZE         1500000 /* Max size of input queue notices */
-#define Z_FRAGFUDGE            13      /* Room to for multinotice field */
-#define Z_NOTICETIMELIMIT      30      /* Time to wait for fragments */
-#define Z_INITFILTERSIZE       30      /* Starting size of uid filter */
-
-#define Z_AUTHMODE_NONE          0      /* no authentication */
-#define Z_AUTHMODE_KRB4          1      /* authenticate using Kerberos V4 */
-#define Z_AUTHMODE_KRB5          2      /* authenticate using Kerberos V5 */
-
-#define Z_KEYUSAGE_CLT_CKSUM  1027    /* client->server notice checksum */
-#define Z_KEYUSAGE_SRV_CKSUM  1029    /* server->client notice checksum */
-
-struct _Z_Hole {
-    struct _Z_Hole     *next;
-    int                        first;
-    int                        last;
-};
-
-struct _Z_InputQ {
-    struct _Z_InputQ   *next;
-    struct _Z_InputQ   *prev;
-    ZNotice_Kind_t     kind;
-    unsigned ZEPHYR_INT32 timep;
-    int                        packet_len;
-    char               *packet;
-    int                        complete;
-    struct sockaddr_in from;
-    struct _Z_Hole     *holelist;
-    ZUnique_Id_t       uid;
-    int                        auth;
-    int                        header_len;
-    char               *header;
-    int                        msg_len;
-    char               *msg;
-};
-
-extern struct _Z_InputQ *__Q_Head, *__Q_Tail;
-
-extern int __Zephyr_open;      /* 0 if FD opened, 1 otherwise */
-extern int __HM_set;           /* 0 if dest addr set, 1 otherwise */
-extern int __Zephyr_server;    /* 0 if normal client, 1 if server or zhm */
-
-#ifdef HAVE_KRB5
-extern krb5_context Z_krb5_ctx;
-Code_t Z_krb5_lookup_cksumtype(krb5_enctype, krb5_cksumtype *);
-#endif
-
-extern ZLocations_t *__locate_list;
-extern int __locate_num;
-extern int __locate_next;
-
-extern ZSubscription_t *__subscriptions_list;
-extern int __subscriptions_num;
-extern int __subscriptions_next;
-
-extern int __Zephyr_port;              /* Port number */
-extern struct in_addr __My_addr;
-extern int __Zephyr_fd;
-extern int __Q_CompleteLength;
-extern struct sockaddr_in __HM_addr;
-extern char __Zephyr_realm[];
-
-typedef Code_t (*Z_SendProc) (ZNotice_t *, char *, int, int);
-
-struct _Z_InputQ *Z_GetFirstComplete (void);
-struct _Z_InputQ *Z_GetNextComplete (struct _Z_InputQ *);
-Code_t Z_XmitFragment (ZNotice_t*, char *,int,int);
-void Z_RemQueue (struct _Z_InputQ *);
-Code_t Z_AddNoticeToEntry (struct _Z_InputQ*, ZNotice_t*, int);
-Code_t Z_FormatAuthHeader (ZNotice_t *, char *, int, int *, Z_AuthProc);
-Code_t Z_FormatHeader (ZNotice_t *, char *, int, int *, Z_AuthProc);
-Code_t Z_FormatRawHeader (ZNotice_t *, char*, int,
-                             int*, char **, char **);
-Code_t Z_ReadEnqueue (void);
-Code_t Z_ReadWait (void);
-Code_t Z_SendLocation (char*, char*, Z_AuthProc, char*);
-Code_t Z_SendFragmentedNotice (ZNotice_t *notice, int len,
-                                  Z_AuthProc cert_func,
-                                  Z_SendProc send_func);
-Code_t Z_WaitForComplete (void);
-Code_t Z_WaitForNotice (ZNotice_t *notice,
-                       int (*pred)(ZNotice_t *, void *), void *arg,
-                       int timeout);
-
-
-Code_t Z_NewFormatHeader (ZNotice_t *, char *, int, int *, Z_AuthProc);
-Code_t Z_NewFormatAuthHeader (ZNotice_t *, char *, int, int *, Z_AuthProc);
-Code_t Z_NewFormatRawHeader (ZNotice_t *, char *, int, int *, char **, 
-                                 int *, char **, char **);
-Code_t Z_AsciiFormatRawHeader (ZNotice_t *, char *, int, int *, char **, 
-                                 int *, char **, char **);
-
-void Z_gettimeofday(struct _ZTimeval *ztv, struct timezone *tz);
-
-#ifdef HAVE_KRB5
-int ZGetCreds(krb5_creds **creds_out);
-int ZGetCredsRealm(krb5_creds **creds_out, char *realm);
-Code_t Z_Checksum(krb5_data *cksumbuf, krb5_keyblock *keyblock,
-                 krb5_cksumtype cksumtype, char **asn1_data,
-                 unsigned int *asn1_len);
-Code_t Z_ExtractEncCksum(krb5_keyblock *keyblock, krb5_enctype *enctype,
-                        krb5_cksumtype *cksumtype);
-int Z_krb5_verify_cksum(krb5_keyblock *keyblock, krb5_data *cksumbuf,
-                       krb5_cksumtype cksumtype, unsigned char *asn1_data,
-                       int asn1_len);
-Code_t Z_InsertZcodeChecksum(krb5_keyblock *keyblock, ZNotice_t *notice, 
-                             char *buffer,
-                             char *cksum_start, int cksum_len, 
-                             char *cstart, char *cend, int buffer_len,
-                             int *length_ajdust);
-unsigned long z_quad_cksum(const unsigned char *, u_int32_t *, long,
-                          int, unsigned char *);
-#endif
-
-#ifdef HAVE_KRB5_CREDS_KEYBLOCK_ENCTYPE
-#define Z_keydata(keyblock)    ((keyblock)->contents)
-#define Z_keylen(keyblock)     ((keyblock)->length)
-#define Z_credskey(creds)      (&(creds)->keyblock)
-#define Z_enctype(keyblock)    ((keyblock)->enctype)
-#else
-#define Z_keydata(keyblock)    ((keyblock)->keyvalue.data)
-#define Z_keylen(keyblock)     ((keyblock)->keyvalue.length)
-#define Z_credskey(creds)      (&(creds)->session)
-#define Z_enctype(keyblock)    ((keyblock)->keytype)
-#endif
-
-#ifdef HAVE_KRB5_TICKET_ENC_PART2
-#define Z_tktprincp(tkt)       ((tkt)->enc_part2 != 0)
-#define Z_tktprinc(tkt)                ((tkt)->enc_part2->client)
-#else
-#define        Z_tktprincp(tkt)        ((tkt)->client != 0)
-#define Z_tktprinc(tkt)                ((tkt)->client)
-#endif
-
-#endif /* __INTERNAL_H__ */
-
diff --git a/zephyr/h/sysdep.h b/zephyr/h/sysdep.h
deleted file mode 100644 (file)
index 852a46a..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains system-dependent header code.
- *
- *     Created by:     Greg Hudson
- *
- *     $Id: sysdep.h 2145 2008-01-21 16:20:29Z kcr $
- *     $Zephyr: /mit/zephyr/src/include/zephyr/RCS/zephyr_conf.h,v 1.8 90/12/21 17:40:40 raeburn Exp $
- *
- *     Copyright (c) 1988,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef __SYSDEP_H__
-#define __SYSDEP_H__
-
-#include <config.h>
-#include <stdio.h>
-#include <errno.h>
-#include <ctype.h>
-#include <time.h>
-#include <signal.h>
-#include <syslog.h>
-#ifdef HAVE_UNISTD_H
-#ifdef HAVE_GETSID
-#define __USE_XOPEN_EXTENDED
-#endif
-#include <unistd.h>
-#ifdef __USE_XOPEN_EXTENDED
-#undef __USE_XOPEN_EXTENDED
-#endif
-#endif
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <sys/time.h>
-
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-#else
-# ifdef HAVE_MALLOC_H
-#  include <malloc.h>
-# else
-char *malloc(), *realloc();
-# endif
-char *getenv(), *strerror(), *ctime(), *strcpy();
-time_t time();
-ZEPHYR_INT32 random();
-#endif
-
-#ifndef HAVE_RANDOM
-#ifdef HAVE_LRAND48
-#define random lrand48
-#define srandom srand48
-#else
-#define random rand
-#define srandom srand
-#endif
-#endif
-
-#ifndef HAVE_STRERROR
-extern char *sys_errlist[];
-# define strerror(x) (sys_errlist[(x)])
-#endif
-
-/* Strings. */
-#ifdef STDC_HEADERS
-# include <string.h>
-#else
-# ifndef HAVE_STRCHR
-#  define strchr index
-#  define strrchr rindex
-# endif
-char *strchr(), *strrchr();
-# ifndef HAVE_MEMCPY
-#  define memcpy(d, s, n) bcopy ((s), (d), (n))
-#  define memcmp bcmp
-# endif
-# ifndef HAVE_MEMMOVE
-#  define memmove(d, s, n) bcopy ((s), (d), (n))
-# endif
-#endif
-
-/* Exit status handling and wait(). */
-#ifdef HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-#ifndef WEXITSTATUS
-# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
-
-#ifdef HAVE_SYS_CDEFS_H
-#include <sys/cdefs.h>
-#endif
-
-/* Because we have public header files (and our prototypes need to agree with
- * those header files), use __STDC__ to guess whether the compiler can handle
- * stdarg, const, and prototypes. */
-#ifdef __STDC__
-# include <stdarg.h>
-# define VA_START(ap, last) va_start(ap, last)
-# ifndef __P
-#  define __P(x) x
-# endif
-#else
-# include <varargs.h>
-# define VA_START(ap, last) va_start(ap)
-# define const
-# ifndef __P
-#  define __P(x) ()
-# endif
-#endif
-
-/* openlog(). */
-#ifdef LOG_AUTH
-/* A decent syslog */
-#define OPENLOG(str, opts, facility)   openlog(str, opts, facility)
-#else
-/* Probably a 4.2-type syslog */
-#define OPENLOG(str, opts, facility)   openlog(str, opts)
-#endif
-
-#ifdef HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-
-#ifdef HAVE_PATHS_H
-# include <paths.h>
-# define TEMP_DIRECTORY _PATH_VARTMP
-#else
-# define TEMP_DIRECTORY FOUND_TMP
-#endif
-
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#else
-# ifdef HAVE_SYS_FILE_H
-#  include <sys/file.h>
-# endif
-uid_t getuid();
-char *ttyname();
-#ifdef HAVE_GETHOSTID
-ZEPHYR_INT32 gethostid();
-#endif
-#endif
-
-#ifndef STDIN_FILENO
-#define STDIN_FILENO 0
-#define STDOUT_FILENO 1
-#define STDERR_FILENO 2
-#endif
-
-#ifdef HAVE_TERMIOS_H
-# include <termios.h>
-#else
-# ifdef HAVE_SYS_FILIO_H
-#  include <sys/filio.h>
-# else
-#  ifdef HAVE_SGTTY_H
-#   include <sgtty.h>
-#  endif
-#  ifdef HAVE_SYS_IOCTL_H
-#   include <sys/ioctl.h>
-#  endif
-# endif
-#endif
-
-/* Kerberos compatibility. */
-#ifdef HAVE_KRB4
-# include <krb.h>
-# include <krb_err.h>
-# include <des.h>
-# ifndef HAVE_KRB_GET_ERR_TEXT
-#  define krb_get_err_text(n)  krb_err_txt[n]
-# endif
-# ifndef HAVE_KRB_LOG
-#  define krb_log              log
-# endif
-#endif
-
-#ifdef HAVE_SYS_UTSNAME_H
-# include <sys/utsname.h>
-#endif
-
-#ifdef HAVE_SYS_SELECT_H
-# include <sys/select.h>
-#endif
-
-#ifdef HAVE_SYS_MSGBUF_H
-#include <sys/msgbuf.h>
-#endif
-
-#ifndef MSG_BSIZE
-#define MSG_BSIZE BUFSIZ
-#endif
-
-#endif /* __SYSDEP_H__ */
-
diff --git a/zephyr/h/zephyr/mit-copyright.h b/zephyr/h/zephyr/mit-copyright.h
deleted file mode 100644 (file)
index 9b39b21..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-
-Copyright 1987,1988,1995 by the Massachusetts Institute of Technology
-
-All rights reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of the Massachusetts
-Institute of Technology (M.I.T.) not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.
-
-M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-*/
diff --git a/zephyr/h/zephyr/zephyr.h b/zephyr/h/zephyr/zephyr.h
deleted file mode 100644 (file)
index df3ff75..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains global definitions
- *
- *     Created by:     Robert French
- *
- *     $Id: zephyr.h 2344 2009-03-24 03:40:55Z kcr $
- *
- *     Copyright (c) 1987,1988,1991 by the Massachusetts Institute of
- *     Technology. For copying and distribution information, see the
- *     file "mit-copyright.h".
- */
-
-#ifndef __ZEPHYR_H__
-#define __ZEPHYR_H__
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-
-#include <zephyr/zephyr_err.h>
-
-#ifndef IPPROTO_MAX    /* Make sure not already included */
-#include <netinet/in.h>
-#endif
-
-#include <stdarg.h>
-
-/* Service names */
-#define        HM_SVCNAME              "zephyr-hm"
-#define HM_SRV_SVCNAME         "zephyr-hm-srv"
-#define        SERVER_SVCNAME          "zephyr-clt"
-#define SERVER_SERVICE         "zephyr"
-#define SERVER_INSTANCE                "zephyr"
-#define SERVER_KRB5_SERVICE     "zephyr"
-
-#define ZVERSIONHDR    "ZEPH"
-#define ZVERSIONMAJOR  0
-#define ZVERSIONMINOR  2
-
-#define Z_MAXPKTLEN            1024
-#define Z_MAXHEADERLEN         800
-#define Z_MAXOTHERFIELDS       10      /* Max unknown fields in ZNotice_t */
-#define Z_NUMFIELDS            19
-
-/* Authentication levels returned by ZCheckAuthentication */
-#define ZAUTH_FAILED           (-1)
-#define ZAUTH_YES              1
-#define ZAUTH_NO               0
-
-#define ZNOTICE_SOCKADDR       1
-#define ZNOTICE_CHARSET                1
-
-#define ZCHARSET_UNKNOWN        0
-/* The following are from http://www.iana.org/assignments/character-sets */
-#define ZCHARSET_ISO_8859_1    4
-#define ZCHARSET_UTF_8         106
-
-typedef char ZPacket_t[Z_MAXPKTLEN];
-
-/* Packet type */
-typedef enum {
-    UNSAFE, UNACKED, ACKED, HMACK, HMCTL, SERVACK, SERVNAK, CLIENTACK, STAT
-} ZNotice_Kind_t;
-extern const char *ZNoticeKinds[9];
-
-struct _ZTimeval {
-       int tv_sec;
-       int tv_usec;
-};
-
-/* Unique ID format */
-typedef struct _ZUnique_Id_t {
-    struct     in_addr zuid_addr;
-    struct     _ZTimeval       tv;
-} ZUnique_Id_t;
-
-/* Checksum */
-typedef unsigned int ZChecksum_t;
-
-/* Notice definition */
-typedef struct _ZNotice_t {
-    char               *z_packet;
-    char               *z_version;
-    ZNotice_Kind_t     z_kind;
-    ZUnique_Id_t       z_uid;
-    union {
-       struct sockaddr         sa;
-       struct sockaddr_in      ip4;
-       struct sockaddr_in6     ip6;
-    } z_sender_sockaddr;
-    /* heavily deprecated: */
-#define z_sender_addr  z_sender_sockaddr.ip4.sin_addr
-    /* probably a bad idea?: */
-    struct             _ZTimeval z_time;
-    unsigned short      z_port;
-    unsigned short     z_charset;
-    int                        z_auth;
-    int                        z_checked_auth;
-    int                        z_authent_len;
-    char               *z_ascii_authent;
-    char               *z_class;
-    char               *z_class_inst;
-    char               *z_opcode;
-    char               *z_sender;
-    char               *z_recipient;
-    char               *z_default_format;
-    char               *z_multinotice;
-    ZUnique_Id_t       z_multiuid;
-    ZChecksum_t                z_checksum;
-    char                *z_ascii_checksum;
-    int                        z_num_other_fields;
-    char               *z_other_fields[Z_MAXOTHERFIELDS];
-    caddr_t            z_message;
-    int                        z_message_len;
-    int                        z_num_hdr_fields;
-} ZNotice_t;
-
-/* Subscription structure */
-typedef struct _ZSubscriptions_t {
-    char       *zsub_recipient;
-    char       *zsub_class;
-    char       *zsub_classinst;
-} ZSubscription_t;
-
-/* Function return code */
-typedef int Code_t;
-
-/* Locations structure */
-typedef struct _ZLocations_t {
-    char       *host;
-    char       *time;
-    char       *tty;
-} ZLocations_t;
-
-typedef struct _ZAsyncLocateData_t {
-    char               *user;
-    ZUnique_Id_t       uid;
-    char               *version;
-} ZAsyncLocateData_t;
-
-/* for ZSetDebug */
-#ifdef Z_DEBUG
-void (*__Z_debug_print)(const char *fmt, va_list args, void *closure);
-void *__Z_debug_print_closure;
-#endif
-
-int ZCompareUIDPred(ZNotice_t *, void *);
-int ZCompareMultiUIDPred(ZNotice_t *, void *);
-
-/* Defines for ZFormatNotice, et al. */
-typedef Code_t (*Z_AuthProc)(ZNotice_t*, char *, int, int *);
-Code_t ZMakeAuthentication(ZNotice_t*, char *,int, int*);
-Code_t ZMakeZcodeAuthentication(ZNotice_t*, char *,int, int*);
-Code_t ZMakeZcodeRealmAuthentication(ZNotice_t*, char *,int, int*, char*);
-
-char *ZGetSender(void);
-char *ZGetVariable(char *);
-Code_t ZSetVariable(char *var, char *value);
-Code_t ZUnsetVariable(char *var);
-int ZGetWGPort(void);
-Code_t ZSetDestAddr(struct sockaddr_in *);
-Code_t ZFormatNoticeList(ZNotice_t*, char**, int,
-                        char **, int*, Z_AuthProc);
-Code_t ZParseNotice(char*, int, ZNotice_t *);
-Code_t ZReadAscii(char*, int, unsigned char*, int);
-Code_t ZReadAscii32(char *, int, unsigned long *);
-Code_t ZReadAscii16(char *, int, unsigned short *);
-Code_t ZReadZcode(unsigned char*, unsigned char*, int, int *);
-Code_t ZSendPacket(char*, int, int);
-Code_t ZSendList(ZNotice_t*, char *[], int, Z_AuthProc);
-Code_t ZSrvSendList(ZNotice_t*, char*[], int, Z_AuthProc,
-                   Code_t (*)(ZNotice_t *, char *, int, int));
-Code_t ZSendNotice(ZNotice_t *, Z_AuthProc);
-Code_t ZSrvSendNotice(ZNotice_t*, Z_AuthProc,
-                     Code_t (*)(ZNotice_t *, char *, int, int));
-Code_t ZFormatNotice(ZNotice_t*, char**, int*, Z_AuthProc);
-Code_t ZFormatSmallNotice(ZNotice_t*, ZPacket_t, int*, Z_AuthProc);
-Code_t ZFormatRawNoticeList(ZNotice_t *, char *[], int, char **, int *);
-Code_t ZFormatSmallRawNotice(ZNotice_t *, ZPacket_t, int *);
-Code_t ZNewFormatSmallRawNotice(ZNotice_t *, ZPacket_t, int *);
-Code_t ZLocateUser(char *, int *, Z_AuthProc);
-Code_t ZRequestLocations(char *, ZAsyncLocateData_t *,
-                        ZNotice_Kind_t, Z_AuthProc);
-Code_t ZhmStat(struct in_addr *, ZNotice_t *);
-Code_t ZInitialize(void);
-Code_t ZSetServerState(int);
-Code_t ZSetFD(int);
-Code_t ZFormatSmallRawNotice(ZNotice_t*, ZPacket_t, int*);
-int ZCompareUID(ZUnique_Id_t*, ZUnique_Id_t*);
-Code_t ZSrvSendRawList(ZNotice_t*, char*[], int,
-                      Code_t (*)(ZNotice_t *, char *, int, int));
-Code_t ZMakeAscii(char*, int, unsigned char*, int);
-Code_t ZMakeAscii32(char *, int, unsigned long);
-Code_t ZMakeAscii16(char *, int, unsigned int);
-Code_t ZMakeZcode(char*, int, unsigned char*, int);
-Code_t ZMakeZcode32(char *, int, unsigned long);
-Code_t ZReceivePacket(ZPacket_t, int*, struct sockaddr_in*);
-Code_t ZCheckAuthentication(ZNotice_t*, struct sockaddr_in*);
-Code_t ZCheckZcodeAuthentication(ZNotice_t*, struct sockaddr_in*);
-Code_t ZCheckZcodeRealmAuthentication(ZNotice_t*, struct sockaddr_in*, char *realm);
-Code_t ZInitLocationInfo(char *hostname, char *tty);
-Code_t ZSetLocation(char *exposure);
-Code_t ZUnsetLocation(void);
-Code_t ZFlushMyLocations(void);
-char *ZParseExposureLevel(char *text);
-Code_t ZFormatRawNotice(ZNotice_t *, char**, int *);
-Code_t ZRetrieveSubscriptions(unsigned short, int*);
-Code_t ZRetrieveDefaultSubscriptions(int *);
-Code_t ZGetSubscriptions(ZSubscription_t *, int *);
-Code_t ZOpenPort(unsigned short *port);
-Code_t ZClosePort(void);
-Code_t ZFlushLocations(void);
-Code_t ZFlushSubscriptions(void);
-Code_t ZFreeNotice(ZNotice_t *notice);
-Code_t ZGetLocations(ZLocations_t *, int *);
-Code_t ZParseLocations(register ZNotice_t *notice,
-                      register ZAsyncLocateData_t *zald, int *nlocs,
-                      char **user);
-int ZCompareALDPred(ZNotice_t *notice, void *zald);
-void ZFreeALD(register ZAsyncLocateData_t *zald);
-Code_t ZCheckIfNotice(ZNotice_t *notice, struct sockaddr_in *from,
-                     register int (*predicate)(ZNotice_t *,void *),
-                     void *args);
-Code_t ZPeekPacket(char **buffer, int *ret_len,
-                  struct sockaddr_in *from);
-Code_t ZPeekNotice(ZNotice_t *notice, struct sockaddr_in *from);
-Code_t ZIfNotice(ZNotice_t *notice, struct sockaddr_in *from,
-                int (*predicate)(ZNotice_t *, void *), void *args);
-Code_t ZSubscribeTo(ZSubscription_t *sublist, int nitems,
-                   unsigned int port);
-Code_t ZSubscribeToSansDefaults(ZSubscription_t *sublist, int nitems,
-                               unsigned int port);
-Code_t ZUnsubscribeTo(ZSubscription_t *sublist, int nitems,
-                     unsigned int port);
-Code_t ZCancelSubscriptions(unsigned int port);
-int ZPending(void);
-Code_t ZReceiveNotice(ZNotice_t *notice, struct sockaddr_in *from);
-unsigned short ZGetCharset(char *charset);
-const char *ZCharsetToString(unsigned short charset);
-#ifdef Z_DEBUG
-void Z_debug(const char *, ...);
-#endif
-char *ZExpandRealm(char *realm);
-
-/* Compatibility */
-#define        ZNewLocateUser ZLocateUser
-
-/* Not macros to retrieve Zephyr library values. */
-const char *ZGetRealm(void);
-int ZGetFD (void);
-int ZQLength (void);
-struct sockaddr_in ZGetDestAddr (void);
-
-
-#ifdef Z_DEBUG
-void ZSetDebug (void (*)(const char *, va_list, void *), void *);
-#define ZSetDebug(proc,closure)    (__Z_debug_print=(proc), \
-                                   __Z_debug_print_closure=(closure), \
-                                   (void) 0)
-#else
-#define        ZSetDebug(proc,closure)
-#endif
-
-/* Maximum queue length */
-#define Z_MAXQLEN              30
-
-/* Successful function return */
-#define ZERR_NONE              0
-
-/* Hostmanager wait time (in secs) */
-#define HM_TIMEOUT             10
-
-/* Server wait time (in secs) */
-#define        SRV_TIMEOUT             30
-
-#define ZAUTH (ZMakeAuthentication)
-#define ZCAUTH (ZMakeZcodeAuthentication)
-#define ZNOAUTH ((Z_AuthProc)0)
-
-/* Packet strings */
-#define ZSRVACK_SENT           "SENT"  /* SERVACK codes */
-#define ZSRVACK_NOTSENT                "LOST"
-#define ZSRVACK_FAIL           "FAIL"
-
-/* Server internal class */
-#define ZEPHYR_ADMIN_CLASS     "ZEPHYR_ADMIN"  /* Class */
-
-/* Control codes sent to a server */
-#define ZEPHYR_CTL_CLASS       "ZEPHYR_CTL"    /* Class */
-
-#define ZEPHYR_CTL_REALM       "REALM"         /* Inst: From realm */
-#define REALM_ADD_SUBSCRIBE    "ADD_SUBSCRIBE" /* Opcode: Add subs */
-#define REALM_REQ_SUBSCRIBE    "REQ_SUBSCRIBE" /* Opcode: Request subs */
-#define REALM_SUBSCRIBE                "RLM_SUBSCRIBE" /* Opcode: Subscribe realm */
-#define REALM_UNSUBSCRIBE      "RLM_UNSUBSCRIBE" /* Opcode: Unsub realm */
-
-#define ZEPHYR_CTL_CLIENT      "CLIENT"        /* Inst: From client */
-#define CLIENT_SUBSCRIBE       "SUBSCRIBE"     /* Opcode: Subscribe */
-#define CLIENT_SUBSCRIBE_NODEFS        "SUBSCRIBE_NODEFS"      /* Opcode: Subscribe */
-#define CLIENT_UNSUBSCRIBE     "UNSUBSCRIBE"   /* Opcode: Unsubsubscribe */
-#define CLIENT_CANCELSUB       "CLEARSUB"      /* Opcode: Clear all subs */
-#define CLIENT_GIMMESUBS       "GIMME"         /* Opcode: Give me subs */
-#define        CLIENT_GIMMEDEFS        "GIMMEDEFS"     /* Opcode: Give me default
-                                                * subscriptions */
-
-#define ZEPHYR_CTL_HM          "HM"            /* Inst: From HM */
-#define HM_BOOT                        "BOOT"          /* Opcode: Boot msg */
-#define HM_FLUSH               "FLUSH"         /* Opcode: Flush me */
-#define HM_DETACH              "DETACH"        /* Opcode: Detach me */
-#define HM_ATTACH              "ATTACH"        /* Opcode: Attach me */
-
-/* Control codes send to a HostManager */
-#define        HM_CTL_CLASS            "HM_CTL"        /* Class */
-
-#define HM_CTL_SERVER          "SERVER"        /* Inst: From server */
-#define SERVER_SHUTDOWN                "SHUTDOWN"      /* Opcode: Server shutdown */
-#define SERVER_PING            "PING"          /* Opcode: PING */
-
-#define HM_CTL_CLIENT           "CLIENT"        /* Inst: From client */
-#define CLIENT_FLUSH            "FLUSH"         /* Opcode: Send flush to srv */
-#define CLIENT_NEW_SERVER       "NEWSERV"       /* Opcode: Find new server */
-
-/* HM Statistics */
-#define HM_STAT_CLASS          "HM_STAT"       /* Class */
-
-#define HM_STAT_CLIENT         "HMST_CLIENT"   /* Inst: From client */
-#define HM_GIMMESTATS          "GIMMESTATS"    /* Opcode: get stats */
-
-/* Login class messages */
-#define LOGIN_CLASS            "LOGIN"         /* Class */
-
-/* Class Instance is principal of user who is logging in or logging out */
-
-#define EXPOSE_NONE            "NONE"          /* Opcode: Not visible */
-#define EXPOSE_OPSTAFF         "OPSTAFF"       /* Opcode: Opstaff visible */
-#define EXPOSE_REALMVIS                "REALM-VISIBLE" /* Opcode: Realm visible */
-#define EXPOSE_REALMANN                "REALM-ANNOUNCED"/* Opcode: Realm announced */
-#define EXPOSE_NETVIS          "NET-VISIBLE"   /* Opcode: Net visible */
-#define EXPOSE_NETANN          "NET-ANNOUNCED" /* Opcode: Net announced */
-#define        LOGIN_USER_LOGIN        "USER_LOGIN"    /* Opcode: user login
-                                                  (from server) */
-#define LOGIN_USER_LOGOUT      "USER_LOGOUT"   /* Opcode: User logout */
-#define        LOGIN_USER_FLUSH        "USER_FLUSH"    /* Opcode: flush all locs */
-
-/* Locate class messages */
-#define LOCATE_CLASS           "USER_LOCATE"   /* Class */
-
-#define LOCATE_HIDE            "USER_HIDE"     /* Opcode: Hide me */
-#define LOCATE_UNHIDE          "USER_UNHIDE"   /* Opcode: Unhide me */
-
-/* Class Instance is principal of user to locate */
-#define LOCATE_LOCATE          "LOCATE"        /* Opcode: Locate user */
-
-/* WG_CTL class messages */
-#define WG_CTL_CLASS           "WG_CTL"        /* Class */
-
-#define WG_CTL_USER            "USER"          /* Inst: User request */
-#define USER_REREAD            "REREAD"        /* Opcode: Reread desc file */
-#define USER_SHUTDOWN          "SHUTDOWN"      /* Opcode: Go catatonic */
-#define USER_STARTUP           "STARTUP"       /* Opcode: Come out of it */
-#define USER_EXIT              "EXIT"          /* Opcode: Exit the client */
-
-#endif /* __ZEPHYR_H__ */
diff --git a/zephyr/install-sh b/zephyr/install-sh
deleted file mode 100755 (executable)
index dd97db7..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2004-09-10.20
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-chmodcmd="$chmodprog 0755"
-chowncmd=
-chgrpcmd=
-stripcmd=
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=
-dst=
-dir_arg=
-dstarg=
-no_target_directory=
-
-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
-   or: $0 [OPTION]... SRCFILES... DIRECTORY
-   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
-   or: $0 [OPTION]... -d DIRECTORIES...
-
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
-
-Options:
--c         (ignored)
--d         create directories instead of installing files.
--g GROUP   $chgrpprog installed files to GROUP.
--m MODE    $chmodprog installed files to MODE.
--o USER    $chownprog installed files to USER.
--s         $stripprog installed files.
--t DIRECTORY  install into DIRECTORY.
--T         report an error if DSTFILE is a directory.
---help     display this help and exit.
---version  display version info and exit.
-
-Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
-"
-
-while test -n "$1"; do
-  case $1 in
-    -c) shift
-        continue;;
-
-    -d) dir_arg=true
-        shift
-        continue;;
-
-    -g) chgrpcmd="$chgrpprog $2"
-        shift
-        shift
-        continue;;
-
-    --help) echo "$usage"; exit 0;;
-
-    -m) chmodcmd="$chmodprog $2"
-        shift
-        shift
-        continue;;
-
-    -o) chowncmd="$chownprog $2"
-        shift
-        shift
-        continue;;
-
-    -s) stripcmd=$stripprog
-        shift
-        continue;;
-
-    -t) dstarg=$2
-       shift
-       shift
-       continue;;
-
-    -T) no_target_directory=true
-       shift
-       continue;;
-
-    --version) echo "$0 $scriptversion"; exit 0;;
-
-    *)  # When -d is used, all remaining arguments are directories to create.
-       # When -t is used, the destination is already specified.
-       test -n "$dir_arg$dstarg" && break
-        # Otherwise, the last argument is the destination.  Remove it from $@.
-       for arg
-       do
-          if test -n "$dstarg"; then
-           # $@ is not empty: it contains at least $arg.
-           set fnord "$@" "$dstarg"
-           shift # fnord
-         fi
-         shift # arg
-         dstarg=$arg
-       done
-       break;;
-  esac
-done
-
-if test -z "$1"; then
-  if test -z "$dir_arg"; then
-    echo "$0: no input file specified." >&2
-    exit 1
-  fi
-  # It's OK to call `install-sh -d' without argument.
-  # This can happen when creating conditional directories.
-  exit 0
-fi
-
-for src
-do
-  # Protect names starting with `-'.
-  case $src in
-    -*) src=./$src ;;
-  esac
-
-  if test -n "$dir_arg"; then
-    dst=$src
-    src=
-
-    if test -d "$dst"; then
-      mkdircmd=:
-      chmodcmd=
-    else
-      mkdircmd=$mkdirprog
-    fi
-  else
-    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
-    # might cause directories to be created, which would be especially bad
-    # if $src (and thus $dsttmp) contains '*'.
-    if test ! -f "$src" && test ! -d "$src"; then
-      echo "$0: $src does not exist." >&2
-      exit 1
-    fi
-
-    if test -z "$dstarg"; then
-      echo "$0: no destination specified." >&2
-      exit 1
-    fi
-
-    dst=$dstarg
-    # Protect names starting with `-'.
-    case $dst in
-      -*) dst=./$dst ;;
-    esac
-
-    # If destination is a directory, append the input filename; won't work
-    # if double slashes aren't ignored.
-    if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-       echo "$0: $dstarg: Is a directory" >&2
-       exit 1
-      fi
-      dst=$dst/`basename "$src"`
-    fi
-  fi
-
-  # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-  # Make sure that the destination directory exists.
-
-  # Skip lots of stat calls in the usual case.
-  if test ! -d "$dstdir"; then
-    defaultIFS='
-        '
-    IFS="${IFS-$defaultIFS}"
-
-    oIFS=$IFS
-    # Some sh's can't handle IFS=/ for some reason.
-    IFS='%'
-    set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    IFS=$oIFS
-
-    pathcomp=
-
-    while test $# -ne 0 ; do
-      pathcomp=$pathcomp$1
-      shift
-      if test ! -d "$pathcomp"; then
-        $mkdirprog "$pathcomp"
-       # mkdir can fail with a `File exist' error in case several
-       # install-sh are creating the directory concurrently.  This
-       # is OK.
-       test -d "$pathcomp" || exit
-      fi
-      pathcomp=$pathcomp/
-    done
-  fi
-
-  if test -n "$dir_arg"; then
-    $doit $mkdircmd "$dst" \
-      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
-  else
-    dstfile=`basename "$dst"`
-
-    # Make a couple of temp file names in the proper directory.
-    dsttmp=$dstdir/_inst.$$_
-    rmtmp=$dstdir/_rm.$$_
-
-    # Trap to clean up those temp files at exit.
-    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-    trap '(exit $?); exit' 1 2 13 15
-
-    # Copy the file name to the temp name.
-    $doit $cpprog "$src" "$dsttmp" &&
-
-    # and set any options; do chmod last to preserve setuid bits.
-    #
-    # If any of these fail, we abort the whole thing.  If we want to
-    # ignore errors from any of these, just make sure not to ignore
-    # errors from the above "$doit $cpprog $src $dsttmp" command.
-    #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
-
-    # Now rename the file to the real destination.
-    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
-      || {
-          # The rename failed, perhaps because mv can't rename something else
-          # to itself, or perhaps because mv is so ancient that it does not
-          # support -f.
-
-          # Now remove or move aside any old file at destination location.
-          # We try this two ways since rm can't unlink itself on some
-          # systems and the destination file might be busy for other
-          # reasons.  In this case, the final cleanup might fail but the new
-          # file should still install successfully.
-          {
-            if test -f "$dstdir/$dstfile"; then
-              $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
-              || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
-              || {
-                echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-                (exit 1); exit
-              }
-            else
-              :
-            fi
-          } &&
-
-          # Now rename the file to the real destination.
-          $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-        }
-    }
-  fi || { (exit 1); exit; }
-done
-
-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
-  (exit 0); exit
-}
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/zephyr/install.sh b/zephyr/install.sh
deleted file mode 100755 (executable)
index ab74c88..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-#
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-tranformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-       -c) instcmd="$cpprog"
-           shift
-           continue;;
-
-       -d) dir_arg=true
-           shift
-           continue;;
-
-       -m) chmodcmd="$chmodprog $2"
-           shift
-           shift
-           continue;;
-
-       -o) chowncmd="$chownprog $2"
-           shift
-           shift
-           continue;;
-
-       -g) chgrpcmd="$chgrpprog $2"
-           shift
-           shift
-           continue;;
-
-       -s) stripcmd="$stripprog"
-           shift
-           continue;;
-
-       -t=*) transformarg=`echo $1 | sed 's/-t=//'`
-           shift
-           continue;;
-
-       -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-           shift
-           continue;;
-
-       *)  if [ x"$src" = x ]
-           then
-               src=$1
-           else
-               # this colon is to work around a 386BSD /bin/sh bug
-               :
-               dst=$1
-           fi
-           shift
-           continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-       echo "install:  no input file specified"
-       exit 1
-else
-       true
-fi
-
-if [ x"$dir_arg" != x ]; then
-       dst=$src
-       src=""
-       
-       if [ -d $dst ]; then
-               instcmd=:
-       else
-               instcmd=mkdir
-       fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
-# if $src (and thus $dsttmp) contains '*'.
-
-       if [ -f $src -o -d $src ]
-       then
-               true
-       else
-               echo "install:  $src does not exist"
-               exit 1
-       fi
-       
-       if [ x"$dst" = x ]
-       then
-               echo "install:  no destination specified"
-               exit 1
-       else
-               true
-       fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-       if [ -d $dst ]
-       then
-               dst="$dst"/`basename $src`
-       else
-               true
-       fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='   
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-       pathcomp="${pathcomp}${1}"
-       shift
-
-       if [ ! -d "${pathcomp}" ] ;
-        then
-               $mkdirprog "${pathcomp}"
-       else
-               true
-       fi
-
-       pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-       $doit $instcmd $dst &&
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-       if [ x"$transformarg" = x ] 
-       then
-               dstfile=`basename $dst`
-       else
-               dstfile=`basename $dst $transformbasename | 
-                       sed $transformarg`$transformbasename
-       fi
-
-# don't allow the sed command to completely eliminate the filename
-
-       if [ x"$dstfile" = x ] 
-       then
-               dstfile=`basename $dst`
-       else
-               true
-       fi
-
-# Make a temp file name in the proper directory.
-
-       dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-       $doit $instcmd $src $dsttmp &&
-
-       trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing.  If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
-       $doit $rmcmd -f $dstdir/$dstfile &&
-       $doit $mvcmd $dsttmp $dstdir/$dstfile 
-
-fi &&
-
-
-exit 0
diff --git a/zephyr/lib/Makefile.in b/zephyr/lib/Makefile.in
deleted file mode 100644 (file)
index 6823fc3..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-top_builddir=..
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-LIBS=@LIBS@
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-INSTALL=@INSTALL@
-RANLIB=@RANLIB@
-
-DEBUG=-O
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@ ${DEBUG}
-ALL_CFLAGS=${CFLAGS} -DSYSCONFDIR=\"${sysconfdir}\" -I${top_srcdir}/h \
-       -I${BUILDTOP}/h ${CPPFLAGS}
-LDFLAGS=@LDFLAGS@
-LIBS=@LIBS@ -lcom_err
-
-OBJS = zephyr_err.lo ZAsyncLocate.lo ZCkAuth.lo ZCkIfNot.lo ZClosePort.lo \
-       ZCmpUID.lo ZCmpUIDP.lo ZFlsLocs.lo ZFlsSubs.lo ZFmtAuth.lo \
-       ZFmtList.lo ZFmtNotice.lo ZFmtRaw.lo ZFmtRawLst.lo ZFmtSmRLst.lo \
-       ZFmtSmRaw.lo ZFreeNot.lo ZGetLocs.lo ZGetSender.lo ZGetSubs.lo \
-       ZGetWGPort.lo ZhmStat.lo ZIfNotice.lo ZInit.lo ZLocations.lo \
-       ZMakeAscii.lo ZMkAuth.lo ZNewLocU.lo ZOpenPort.lo ZParseNot.lo \
-       ZPeekIfNot.lo ZPeekNot.lo ZPeekPkt.lo ZPending.lo ZReadAscii.lo \
-       ZRecvNot.lo ZRecvPkt.lo ZRetSubs.lo ZSendList.lo ZSendNot.lo \
-       ZSendPkt.lo ZSendRaw.lo ZSendRLst.lo ZSetDest.lo ZSetFD.lo ZSetSrv.lo \
-       ZSubs.lo ZVariables.lo ZWait4Not.lo Zinternal.lo ZMakeZcode.lo \
-       ZReadZcode.lo ZCkZAut.lo quad_cksum.lo charset.lo ZExpnRlm.lo
-
-.SUFFIXES: .lo
-
-all: libzephyr.la
-
-libzephyr.la: ${OBJS}
-       ${LIBTOOL} --mode=link ${CC} -rpath ${libdir} -version-info 4:0:0 \
-         ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-zephyr_err.c ${BUILDTOP}/h/zephyr/zephyr_err.h: zephyr_err.et
-       compile_et ${srcdir}/zephyr_err.et
-       mv -f zephyr_err.h ${BUILDTOP}/h/zephyr
-
-.c.lo:
-       ${LIBTOOL} --mode=compile ${CC} -c -o $@ ${ALL_CFLAGS} $<
-
-check:
-
-install: libzephyr.la
-       ${LIBTOOL} --mode=install ${INSTALL} -m 644 libzephyr.la \
-         ${DESTDIR}${libdir}
-       ${INSTALL} -m 644 ${srcdir}/zephyr.1 ${DESTDIR}${mandir}/man1
-
-clean:
-       rm -f zephyr_err.c zephyr_err.h
-       ${LIBTOOL} --mode=clean rm -f ${OBJS} libzephyr.la
-
-${OBJS}: ${top_srcdir}/h/internal.h ${top_srcdir}/h/sysdep.h
-${OBJS}: ${BUILDTOP}/h/config.h ${BUILDTOP}/h/zephyr/zephyr.h
-${OBJS}: ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/lib/ZAsyncLocate.c b/zephyr/lib/ZAsyncLocate.c
deleted file mode 100644 (file)
index acad18d..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for asynchronous location functions.
- *
- *     Created by:     Marc Horowitz
- *
- *     $Id: ZAsyncLocate.c 2123 2008-01-20 19:40:42Z kcr $
- *
- *     Copyright (c) 1990,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-
-#ifndef lint
-static const char rcsid_ZAsyncLocate_c[] = "$Id: ZAsyncLocate.c 2123 2008-01-20 19:40:42Z kcr $";
-#endif
-
-Code_t
-ZRequestLocations(char *user,
-                 register ZAsyncLocateData_t *zald,
-                 ZNotice_Kind_t kind,                /* UNSAFE, UNACKED, or ACKED */
-                 Z_AuthProc auth)
-{
-    int retval;
-    ZNotice_t notice;
-
-    if (ZGetFD() < 0)
-       if ((retval = ZOpenPort((u_short *)0)) != ZERR_NONE)
-           return (retval);
-
-    (void) memset((char *)&notice, 0, sizeof(notice));
-    notice.z_kind = kind;
-    notice.z_port = __Zephyr_port;
-    notice.z_class = LOCATE_CLASS;
-    notice.z_class_inst = user;
-    notice.z_opcode = LOCATE_LOCATE;
-    notice.z_sender = 0;
-    notice.z_recipient = "";
-    notice.z_default_format = "";
-    notice.z_message_len = 0;
-
-    if ((retval = ZSendNotice(&notice, auth)) != ZERR_NONE)
-       return(retval);
-
-    if ((zald->user = (char *) malloc(strlen(user)+1)) == NULL) {
-       return(ENOMEM);
-    }
-    if ((zald->version = (char *) malloc(strlen(notice.z_version)+1)) == NULL) {
-       free(zald->user);
-       return(ENOMEM);
-    }
-    zald->uid = notice.z_multiuid;
-    strcpy(zald->user,user);
-    strcpy(zald->version,notice.z_version);
-
-    return(ZERR_NONE);
-}
-
-Code_t
-ZParseLocations(register ZNotice_t *notice,
-               register ZAsyncLocateData_t *zald,
-               int *nlocs,
-               char **user)
-{
-    char *ptr, *end;
-    int i;
-
-    ZFlushLocations();    /* This never fails (this function is part of the
-                            library, so it is allowed to know this). */
-
-    /* non-matching protocol version numbers means the
-       server is probably an older version--must punt */
-
-    if (zald && strcmp(notice->z_version, zald->version))
-      return(ZERR_VERS);
-
-    if (notice->z_kind == SERVNAK)
-      return (ZERR_SERVNAK);
-
-    /* flag ACKs as special */
-    if (notice->z_kind == SERVACK &&
-       !strcmp(notice->z_opcode, LOCATE_LOCATE)) {
-       *nlocs = -1;
-       return(ZERR_NONE);
-    }
-
-    if (notice->z_kind != ACKED)
-       return (ZERR_INTERNAL);
-
-    end = notice->z_message+notice->z_message_len;
-
-    __locate_num = 0;
-       
-    for (ptr=notice->z_message;ptr<end;ptr++)
-      if (!*ptr)
-       __locate_num++;
-
-    __locate_num /= 3;
-
-    if (__locate_num)
-      {
-      __locate_list = (ZLocations_t *)malloc((unsigned)__locate_num*
-                                            sizeof(ZLocations_t));
-      if (!__locate_list)
-       return (ENOMEM);
-    } else {
-      __locate_list = 0;
-    }
-
-    for (ptr=notice->z_message, i=0; i<__locate_num; i++) {
-       unsigned int len;
-
-       len = strlen (ptr) + 1;
-       __locate_list[i].host = (char *) malloc(len);
-       if (!__locate_list[i].host)
-         return (ENOMEM);
-       (void) strcpy(__locate_list[i].host, ptr);
-       ptr += len;
-
-       len = strlen (ptr) + 1;
-       __locate_list[i].time = (char *) malloc(len);
-       if (!__locate_list[i].time)
-         return (ENOMEM);
-       (void) strcpy(__locate_list[i].time, ptr);
-       ptr += len;
-
-       len = strlen (ptr) + 1;
-       __locate_list[i].tty = (char *) malloc(len);
-       if (!__locate_list[i].tty)
-         return (ENOMEM);
-       (void) strcpy(__locate_list[i].tty, ptr);
-       ptr += len;
-    }
-
-    __locate_next = 0;
-    *nlocs = __locate_num;
-    if (user) {
-       if (zald) {
-           if ((*user = (char *) malloc(strlen(zald->user)+1)) == NULL)
-               return(ENOMEM);
-           strcpy(*user,zald->user);
-       } else {
-           if ((*user = (char *) malloc(strlen(notice->z_class_inst)+1)) == NULL)
-               return(ENOMEM);
-           strcpy(*user,notice->z_class_inst);
-       }
-    }
-    return (ZERR_NONE);
-}
-
-int
-ZCompareALDPred(ZNotice_t *notice,
-               void *zald)
-{
-    return(ZCompareUID(&(notice->z_multiuid),
-                      &(((ZAsyncLocateData_t *) zald)->uid)));
-}
-
-void
-ZFreeALD(register ZAsyncLocateData_t *zald)
-{
-   if (!zald) return;
-
-   if (zald->user) free(zald->user);
-   if (zald->version) free(zald->version);
-   (void) memset(zald, 0, sizeof(*zald));
-}
diff --git a/zephyr/lib/ZCkAuth.c b/zephyr/lib/ZCkAuth.c
deleted file mode 100644 (file)
index 4ccacc8..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZCheckAuthentication function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZCkAuth.c 2286 2009-03-02 03:14:23Z kcr $
- *
- *     Copyright (c) 1987,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZCheckAuthentication_c[] =
-    "$Zephyr: /mit/zephyr/src/lib/RCS/ZCheckAuthentication.c,v 1.14 89/03/24 14:17:38 jtkohl Exp Locker: raeburn $";
-#endif
-
-#include <internal.h>
-
-#if defined(HAVE_KRB5) && !HAVE_KRB5_FREE_DATA
-#define krb5_free_data(ctx, dat) free((dat)->data)
-#endif
-
-/* Check authentication of the notice.
-   If it looks authentic but fails the Kerberos check, return -1.
-   If it looks authentic and passes the Kerberos check, return 1.
-   If it doesn't look authentic, return 0
-
-   When not using Kerberos, return true if the notice claims to be authentic.
-   Only used by clients; the server uses its own routine.
- */
-Code_t
-ZCheckAuthentication(ZNotice_t *notice,
-                    struct sockaddr_in *from)
-{
-#if defined(HAVE_KRB4) && !defined(HAVE_KRB5)
-    int result;
-    ZChecksum_t our_checksum;
-    C_Block *session;
-    CREDENTIALS cred;
-
-    /* If the value is already known, return it. */
-    if (notice->z_checked_auth != ZAUTH_UNSET)
-       return (notice->z_checked_auth);
-
-    if (!notice->z_auth)
-       return (ZAUTH_NO);
-
-    if ((result = krb_get_cred(SERVER_SERVICE, SERVER_INSTANCE, 
-                              __Zephyr_realm, &cred)) != 0)
-       return (ZAUTH_NO);
-
-    session = (C_Block *)cred.session;
-
-    our_checksum = des_quad_cksum((unsigned char *)notice->z_packet,
-                                 NULL, 
-                                 notice->z_default_format+
-                                 strlen(notice->z_default_format) + 1
-                                 - notice->z_packet,
-                                 0, session);
-
-    /* if mismatched checksum, then the packet was corrupted */
-    return ((our_checksum == notice->z_checksum) ? ZAUTH_YES : ZAUTH_FAILED);
-#else
-    return ZCheckZcodeAuthentication(notice, from);
-#endif
-} 
diff --git a/zephyr/lib/ZCkIfNot.c b/zephyr/lib/ZCkIfNot.c
deleted file mode 100644 (file)
index edd4db4..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZCheckIfNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZCkIfNot.c 2123 2008-01-20 19:40:42Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-
-#ifndef lint
-static const char rcsid_ZCheckIfNotice_c[] = "$Id: ZCkIfNot.c 2123 2008-01-20 19:40:42Z kcr $";
-#endif
-
-Code_t
-ZCheckIfNotice(ZNotice_t *notice,
-              struct sockaddr_in *from,
-              register int (*predicate)(ZNotice_t *, void *),
-              void *args)
-{
-    ZNotice_t tmpnotice;
-    Code_t retval;
-    register char *buffer;
-    register struct _Z_InputQ *qptr;
-
-    if ((retval = Z_ReadEnqueue()) != ZERR_NONE)
-       return (retval);
-       
-    qptr = Z_GetFirstComplete();
-    
-    while (qptr) {
-       if ((retval = ZParseNotice(qptr->packet, qptr->packet_len, 
-                                  &tmpnotice)) != ZERR_NONE)
-           return (retval);
-       if ((*predicate)(&tmpnotice, args)) {
-           if (!(buffer = (char *) malloc((unsigned) qptr->packet_len)))
-               return (ENOMEM);
-           (void) memcpy(buffer, qptr->packet, qptr->packet_len);
-           if (from)
-               *from = qptr->from;
-           if ((retval = ZParseNotice(buffer, qptr->packet_len, 
-                                      notice)) != ZERR_NONE) {
-               free(buffer);
-               return (retval);
-           }
-           Z_RemQueue(qptr);
-           return (ZERR_NONE);
-       } 
-       qptr = Z_GetNextComplete(qptr);
-    }
-
-    return (ZERR_NONOTICE);
-}
diff --git a/zephyr/lib/ZCkZAut.c b/zephyr/lib/ZCkZAut.c
deleted file mode 100644 (file)
index 46e6472..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZCheckAuthentication function.
- *
- *     Created by:     Robert French
- *
- *     $Source$
- *     $Author$
- *
- *     Copyright (c) 1987,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-/* $Header$ */
-
-#ifndef lint
-static const char rcsid_ZCheckAuthentication_c[] =
-    "$Zephyr: /mit/zephyr/src/lib/RCS/ZCheckAuthentication.c,v 1.14 89/03/24 14:17:38 jtkohl Exp Locker: raeburn $";
-#endif
-
-#include <internal.h>
-
-#if defined(HAVE_KRB5) && !HAVE_KRB5_FREE_DATA
-#define krb5_free_data(ctx, dat) free((dat)->data)
-#endif
-
-/* Check authentication of the notice.
-   If it looks authentic but fails the Kerberos check, return -1.
-   If it looks authentic and passes the Kerberos check, return 1.
-   If it doesn't look authentic, return 0
-
-   When not using Kerberos, return true if the notice claims to be authentic.
-   Only used by clients; the server uses its own routine.
- */
-Code_t ZCheckZcodeAuthentication(ZNotice_t *notice,
-                                struct sockaddr_in *from)
-{      
-    /* If the value is already known, return it. */
-    if (notice->z_checked_auth != ZAUTH_UNSET)
-        return (notice->z_checked_auth);
-
-    if (!notice->z_auth)
-        return (ZAUTH_NO);
-
-    if (!notice->z_ascii_checksum)
-        return (ZAUTH_NO);
-
-#ifdef HAVE_KRB5
-    {
-        krb5_error_code result;
-        krb5_creds *creds;
-        krb5_keyblock *keyblock;
-        krb5_enctype enctype;
-        krb5_cksumtype cksumtype;
-        krb5_data cksumbuf;
-       int valid;
-        char *cksum0_base, *cksum1_base, *cksum2_base;
-        char *x;
-        unsigned char *asn1_data, *key_data;
-        int asn1_len, key_len, cksum0_len, cksum1_len, cksum2_len;
-
-       result = ZGetCreds(&creds);
-
-        if (result)
-            return (ZAUTH_NO);
-        /* HOLDING: creds */
-
-        /* Figure out what checksum type to use */
-       keyblock = Z_credskey(creds);
-       key_data = Z_keydata(keyblock);
-       key_len = Z_keylen(keyblock);
-       result = Z_ExtractEncCksum(keyblock, &enctype, &cksumtype);
-        if (result) {
-           krb5_free_creds(Z_krb5_ctx, creds);
-           return (ZAUTH_FAILED);
-        }
-        /* HOLDING: creds */
-
-        /* Assemble the things to be checksummed */
-        /* first part is from start of packet through z_default_format:
-         * - z_version
-         * - z_num_other_fields
-         * - z_kind
-         * - z_uid
-         * - z_port
-         * - z_auth
-         * - z_authent_len
-         * - z_ascii_authent
-         * - z_class
-         * - z_class_inst
-         * - z_opcode
-         * - z_sender
-         * - z_recipient
-         * - z_default_format
-         */
-        cksum0_base = notice->z_packet;
-        x           = notice->z_default_format;
-        cksum0_len  = x + strlen(x) + 1 - cksum0_base;
-        /* second part is from z_multinotice through other fields:
-         * - z_multinotice
-         * - z_multiuid
-         * - z_other_fields[]
-         */
-        cksum1_base = notice->z_multinotice;
-        if (notice->z_num_other_fields)
-           x = notice->z_other_fields[notice->z_num_other_fields - 1];
-        else  {
-           /* see also server/kstuff.c:ZCheckRealmAuthentication */
-           /* XXXXXXXXXXXXXXXXXXXXXXX */
-           x = cksum1_base + strlen(cksum1_base) + 1; /* multinotice */
-           if (notice->z_num_hdr_fields > 17)
-               x = x + strlen(x) + 1; /* multiuid */
-           if (notice->z_num_hdr_fields > 18)
-               x = x + strlen(x) + 1; /* sender */
-       }
-       cksum1_len  = x + strlen(x) + 1 - cksum1_base; /* charset / extra field */
-
-        /* last part is the message body */
-        cksum2_base = notice->z_message;
-        cksum2_len  = notice->z_message_len;
-
-       /* The following code checks for old-style checksums, which will go
-          away once Kerberos 4 does. */
-        if ((!notice->z_ascii_checksum || *notice->z_ascii_checksum != 'Z') &&
-            key_len == 8 &&
-            (enctype == ENCTYPE_DES_CBC_CRC ||
-             enctype == ENCTYPE_DES_CBC_MD4 ||
-             enctype == ENCTYPE_DES_CBC_MD5)) {
-         /* try old-format checksum (covers cksum0 only) */
-
-            ZChecksum_t our_checksum;
-
-            our_checksum = z_quad_cksum((unsigned char *)cksum0_base, NULL, cksum0_len, 0,
-                                       key_data);
-            if (our_checksum == notice->z_checksum) {
-                krb5_free_creds(Z_krb5_ctx, creds);
-                return ZAUTH_YES;
-            }
-        }
-        /* HOLDING: creds */
-
-        cksumbuf.length = cksum0_len + cksum1_len + cksum2_len;
-        cksumbuf.data = malloc(cksumbuf.length);
-        if (!cksumbuf.data) {
-           krb5_free_creds(Z_krb5_ctx, creds);
-           return ZAUTH_NO;
-        }
-        /* HOLDING: creds, cksumbuf.data */
-
-        memcpy(cksumbuf.data, cksum0_base, cksum0_len);
-        memcpy(cksumbuf.data + cksum0_len, cksum1_base, cksum1_len);
-        memcpy(cksumbuf.data + cksum0_len + cksum1_len,
-               cksum2_base, cksum2_len);
-
-        /* decode zcoded checksum */
-        /* The encoded form is always longer than the original */
-        asn1_len = strlen(notice->z_ascii_checksum) + 1;
-        asn1_data = malloc(asn1_len);
-        if (!asn1_data) {
-            krb5_free_creds(Z_krb5_ctx, creds);
-            free(cksumbuf.data);
-            return ZAUTH_FAILED;
-        }
-        /* HOLDING: creds, asn1_data, cksumbuf.data */
-        result = ZReadZcode((unsigned char *)notice->z_ascii_checksum,
-                            asn1_data, asn1_len, &asn1_len);
-        if (result != ZERR_NONE) {
-            krb5_free_creds(Z_krb5_ctx, creds);
-            free(asn1_data);
-            free(cksumbuf.data);
-            return ZAUTH_FAILED;
-        }
-        /* HOLDING: creds, asn1_data, cksumbuf.data */
-
-       valid = Z_krb5_verify_cksum(keyblock, &cksumbuf, cksumtype,
-                                   asn1_data, asn1_len);
-
-        free(asn1_data);
-        krb5_free_creds(Z_krb5_ctx, creds);
-        free(cksumbuf.data);
-
-       if (valid)
-         return ZAUTH_YES;
-       else
-         return ZAUTH_FAILED;
-    }
-#endif /* HAVE_KRB5 */
-    return (notice->z_auth ? ZAUTH_YES : ZAUTH_NO);
-}
diff --git a/zephyr/lib/ZClosePort.c b/zephyr/lib/ZClosePort.c
deleted file mode 100644 (file)
index f6c6481..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZClosePort function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZClosePort.c 2123 2008-01-20 19:40:42Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-
-#ifndef lint
-static const char rcsid_ZClosePort_c[] = "$Id: ZClosePort.c 2123 2008-01-20 19:40:42Z kcr $";
-#endif
-
-Code_t
-ZClosePort(void)
-{
-    if (__Zephyr_fd >= 0 && __Zephyr_open)
-       (void) close(__Zephyr_fd);
-
-    __Zephyr_fd = -1;
-    __Zephyr_open = 0;
-       
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZCmpUID.c b/zephyr/lib/ZCmpUID.c
deleted file mode 100644 (file)
index 4687b7f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZCompareUID function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZCmpUID.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZCompareUID_c[] = "$Id: ZCmpUID.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-int
-ZCompareUID(ZUnique_Id_t *uid1,
-           ZUnique_Id_t *uid2)
-{
-    return (!memcmp((char *)uid1, (char *)uid2, sizeof (*uid1)));
-}
diff --git a/zephyr/lib/ZCmpUIDP.c b/zephyr/lib/ZCmpUIDP.c
deleted file mode 100644 (file)
index c902d12..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZCompareUIDPred function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZCmpUIDP.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZCompareUIDPred_c[] = "$Id: ZCmpUIDP.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-int
-ZCompareUIDPred(ZNotice_t *notice,
-               void *uid)
-{
-    return (ZCompareUID(&notice->z_uid, (ZUnique_Id_t *) uid));
-}
-
-int
-ZCompareMultiUIDPred(ZNotice_t *notice,
-                    void *uid)
-{
-    return (ZCompareUID(&notice->z_multiuid, (ZUnique_Id_t *) uid));
-}
diff --git a/zephyr/lib/ZExpnRlm.c b/zephyr/lib/ZExpnRlm.c
deleted file mode 100644 (file)
index 36a9f4b..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-#include <internal.h>
-#include <sys/param.h>
-#include <ctype.h>
-
-char *
-ZExpandRealm(realm)
-char *realm;
-{
-        char *cp1, *cp2;
-        static char expand[REALM_SZ];
-#ifdef  HAVE_KRB5
-       krb5_error_code result;
-       char **list_realms;
-       result = krb5_get_host_realm(Z_krb5_ctx, realm, &list_realms);
-       if (result) {
-               /* Error, just return upper-cased realm */
-               cp2 = realm;
-                       cp1 = expand;
-               while (*cp2) {
-                       *cp1++ = toupper(*cp2++);
-               }
-               *cp1 = '\0';
-               return expand;
-       }
-       strncpy(expand, list_realms[0], sizeof(expand));
-       expand[sizeof(expand)-1] = '\0';
-       result = krb5_free_host_realm(Z_krb5_ctx, list_realms);
-       return expand;
-#endif
-#ifndef HAVE_KRB4
-        struct hostent *he;
-
-        he = gethostbyname(realm);
-
-        if (!he || !he->h_name)
-                /* just use the raw realm */
-                cp2 = realm;
-        else
-                cp2 = he->h_name;
-
-        cp1 = expand;
-        while (*cp2) {
-                *cp1++ = toupper(*cp2++);
-        }
-        *cp1 = '\0';
-
-        return(expand);
-#else
-       int retval;
-       FILE *rlm_file;
-       char krb_host[MAXHOSTNAMELEN+1];
-        static char krb_realm[REALM_SZ+1];
-       char linebuf[BUFSIZ];
-       char scratch[64];
-
-/* upcase what we got */
-       cp2 = realm;
-        cp1 = expand;
-        while (*cp2) {
-                *cp1++ = toupper(*cp2++);
-        }
-        *cp1 = '\0';
-
-       if ((rlm_file = fopen("/etc/krb.conf", "r")) == (FILE *) 0) {
-                return(expand);
-        }
-       
-       if (fgets(linebuf, BUFSIZ, rlm_file) == NULL) {
-         /* error reading */
-         (void) fclose(rlm_file);
-         return(expand);
-       }
-
-       if (sscanf(linebuf, "%s", krb_realm) < 1) {
-         /* error reading */
-         (void) fclose(rlm_file);
-         return(expand);
-       }
-
-       if (!strncmp(krb_realm, expand, strlen(expand))) {
-         (void) fclose(rlm_file);
-         return(krb_realm);
-       }
-
-       while (1) {
-         /* run through the file, looking for admin host */
-         if (fgets(linebuf, BUFSIZ, rlm_file) == NULL) {
-            (void) fclose(rlm_file);
-            return(expand);
-         }
-
-         if (sscanf(linebuf, "%s %s admin %s", krb_realm, krb_host, scratch)
-             < 2)
-            continue;
-         if (!strncmp(krb_realm, expand, strlen(expand))) {
-           (void) fclose(rlm_file);
-           return(krb_realm);
-         }
-       }
-#endif /* KERBEROS */
-}
diff --git a/zephyr/lib/ZFlsLocs.c b/zephyr/lib/ZFlsLocs.c
deleted file mode 100644 (file)
index 0241add..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZFlushLocations function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZFlsLocs.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZFlushLocations_c[] = "$Id: ZFlsLocs.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZFlushLocations(void)
-{
-       int i;
-       
-       if (!__locate_list)
-               return (ZERR_NONE);
-
-       for (i=0;i<__locate_num;i++) {
-               free(__locate_list[i].host);
-               free(__locate_list[i].time);
-               free(__locate_list[i].tty);
-       }
-       
-       free((char *)__locate_list);
-
-       __locate_list = 0;
-       __locate_num = 0;
-
-       return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZFlsSubs.c b/zephyr/lib/ZFlsSubs.c
deleted file mode 100644 (file)
index bdcffec..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZFlushSubscriptions function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZFlsSubs.c 2123 2008-01-20 19:40:42Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-
-#ifndef lint
-static const char rcsid_ZFlushSubscriptions_c[] = "$Id: ZFlsSubs.c 2123 2008-01-20 19:40:42Z kcr $";
-#endif
-
-Code_t
-ZFlushSubscriptions(void)
-{
-       register int i;
-       
-       if (!__subscriptions_list)
-               return (ZERR_NONE);
-
-       for (i=0;i<__subscriptions_num;i++) {
-               free(__subscriptions_list[i].zsub_class);
-               free(__subscriptions_list[i].zsub_classinst);
-               free(__subscriptions_list[i].zsub_recipient);
-       }
-       
-       free((char *)__subscriptions_list);
-
-       __subscriptions_list = 0;
-       __subscriptions_num = 0;
-
-       return (ZERR_NONE);
-}
-
diff --git a/zephyr/lib/ZFmtAuth.c b/zephyr/lib/ZFmtAuth.c
deleted file mode 100644 (file)
index fedcd69..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZFormatAuthenticNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZFmtAuth.c 2162 2008-07-18 20:37:47Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZFormatAuthenticNotice_c[] = "$Id: ZFmtAuth.c 2162 2008-07-18 20:37:47Z kcr $";
-#endif
-
-#include <internal.h>
-
-#ifdef HAVE_KRB4
-Code_t
-ZFormatAuthenticNotice(ZNotice_t *notice,
-                      char *buffer,
-                      int buffer_len,
-                      int *len,
-                      C_Block session)
-{
-    ZNotice_t newnotice;
-    char *ptr;
-    int retval, hdrlen;
-
-    newnotice = *notice;
-    newnotice.z_auth = 1;
-    newnotice.z_authent_len = 0;
-    newnotice.z_ascii_authent = "";
-
-    if ((retval = Z_FormatRawHeader(&newnotice, buffer, buffer_len,
-                                   &hdrlen, &ptr, NULL)) != ZERR_NONE)
-       return (retval);
-
-    newnotice.z_checksum =
-       (ZChecksum_t)des_quad_cksum((unsigned char *)buffer, NULL, ptr - buffer, 0, (C_Block *)session);
-
-    if ((retval = Z_FormatRawHeader(&newnotice, buffer, buffer_len,
-                                   &hdrlen, NULL, NULL)) != ZERR_NONE)
-       return (retval);
-
-    ptr = buffer+hdrlen;
-
-    if (newnotice.z_message_len+hdrlen > buffer_len)
-       return (ZERR_PKTLEN);
-
-    (void) memcpy(ptr, newnotice.z_message, newnotice.z_message_len);
-
-    *len = hdrlen+newnotice.z_message_len;
-
-    if (*len > Z_MAXPKTLEN)
-       return (ZERR_PKTLEN);
-
-    return (ZERR_NONE);
-}
-#endif
-
-#ifdef HAVE_KRB5
-Code_t
-ZFormatAuthenticNoticeV5(ZNotice_t *notice,
-                        register char *buffer,
-                        register int buffer_len,
-                        int *len,
-                        krb5_keyblock *keyblock)
-{
-    ZNotice_t newnotice;
-    char *ptr;
-    int retval, hdrlen, hdr_adj;
-    krb5_enctype enctype;
-    krb5_cksumtype cksumtype;
-    int key_len;
-    char *cksum_start, *cstart, *cend;
-    int cksum_len;
-    
-    key_len = Z_keylen(keyblock);
-    retval = Z_ExtractEncCksum(keyblock, &enctype, &cksumtype);
-    if (retval)
-         return (ZAUTH_FAILED);
-
-#ifdef HAVE_KRB4
-    if (key_len == 8 && (enctype == ENCTYPE_DES_CBC_CRC || 
-                         enctype == ENCTYPE_DES_CBC_MD4 ||
-                         enctype == ENCTYPE_DES_CBC_MD5)) {
-         C_Block tmp;
-         memcpy(&tmp, Z_keydata(keyblock), key_len);
-         return ZFormatAuthenticNotice(notice, buffer, buffer_len, len,
-                                       tmp);
-    }
-#endif
-         
-    newnotice = *notice;
-    newnotice.z_auth = 1;
-    newnotice.z_authent_len = 0;
-    newnotice.z_ascii_authent = "";
-
-    if ((retval = Z_NewFormatRawHeader(&newnotice, buffer, buffer_len,
-                                       &hdrlen, 
-                                       &cksum_start, &cksum_len, &cstart, 
-                                       &cend)) != ZERR_NONE)
-       return (retval);
-     
-    retval = Z_InsertZcodeChecksum(keyblock, &newnotice, buffer, 
-                                   cksum_start, cksum_len, cstart, cend, 
-                                   buffer_len, &hdr_adj);
-     if (retval)
-          return retval;
-     
-     hdrlen += hdr_adj;
-     
-     ptr = buffer+hdrlen;
-
-     if (newnotice.z_message_len+hdrlen > buffer_len)
-          return (ZERR_PKTLEN);
-     
-     (void) memcpy(ptr, newnotice.z_message, newnotice.z_message_len);
-     
-     *len = hdrlen+newnotice.z_message_len;
-     
-     if (*len > Z_MAXPKTLEN)
-          return (ZERR_PKTLEN);
-     
-     return (ZERR_NONE);
-}
-#endif
diff --git a/zephyr/lib/ZFmtList.c b/zephyr/lib/ZFmtList.c
deleted file mode 100644 (file)
index 4c9d365..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZFormatNoticeList function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZFmtList.c 2123 2008-01-20 19:40:42Z kcr $
- *
- *     Copyright (c) 1987,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-
-#ifndef lint
-static const char rcsid_ZFormatNoticeList_c[] =
-    "$Id: ZFmtList.c 2123 2008-01-20 19:40:42Z kcr $";
-#endif
-
-Code_t
-ZFormatNoticeList(ZNotice_t *notice,
-                 register char **list,
-                 int nitems,
-                 char **buffer,
-                 int *ret_len, 
-                 Z_AuthProc cert_routine)
-{
-    char header[Z_MAXHEADERLEN];
-    register int i;
-    int hdrlen, size;
-    char *ptr;
-    Code_t retval;
-
-    if ((retval = Z_FormatHeader(notice, header, sizeof(header), &hdrlen,
-                                cert_routine)) != ZERR_NONE)
-       return (retval);
-
-    size = 0;
-    for (i=0;i<nitems;i++)
-       size += strlen(list[i])+1;
-
-    *ret_len = hdrlen+size;
-
-    /* *ret_len can never be zero here, no need to worry about malloc(0). */
-    if (!(*buffer = (char *) malloc((unsigned)*ret_len)))
-       return (ENOMEM);
-
-    (void) memcpy(*buffer, header, hdrlen);
-
-    ptr = *buffer+hdrlen;
-
-    for (;nitems;nitems--, list++) {
-       i = strlen(*list)+1;
-       (void) memcpy(ptr, *list, i);
-       ptr += i;
-    }
-
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZFmtNotice.c b/zephyr/lib/ZFmtNotice.c
deleted file mode 100644 (file)
index dc02519..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZFormatNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZFmtNotice.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZFormatNotice_c[] = "$Id: ZFmtNotice.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZFormatNotice(register ZNotice_t *notice,
-             char **buffer,
-             int *ret_len,
-             Z_AuthProc cert_routine)
-{
-    char header[Z_MAXHEADERLEN];
-    int hdrlen;
-    Code_t retval;
-
-    if ((retval = Z_FormatHeader(notice, header, sizeof(header), &hdrlen, 
-                                cert_routine)) != ZERR_NONE)
-       return (retval);
-
-    *ret_len = hdrlen+notice->z_message_len;
-
-    /* Length can never be zero, don't have to worry about malloc(0). */
-    if (!(*buffer = (char *) malloc((unsigned)*ret_len)))
-       return (ENOMEM);
-
-    (void) memcpy(*buffer, header, hdrlen);
-    (void) memcpy(*buffer+hdrlen, notice->z_message, notice->z_message_len);
-
-    return (ZERR_NONE);
-}
-
-Code_t
-ZNewFormatNotice(register ZNotice_t *notice,
-                char **buffer,
-                int *ret_len,
-                Z_AuthProc cert_routine)
-{
-    char header[Z_MAXHEADERLEN];
-    int hdrlen;
-    Code_t retval;
-
-    if ((retval = Z_NewFormatHeader(notice, header, sizeof(header), &hdrlen, 
-                                cert_routine)) != ZERR_NONE)
-       return (retval);
-
-    *ret_len = hdrlen+notice->z_message_len;
-
-    /* Length can never be zero, don't have to worry about malloc(0). */
-    if (!(*buffer = (char *) malloc((unsigned)*ret_len)))
-       return (ENOMEM);
-
-    (void) memcpy(*buffer, header, hdrlen);
-    (void) memcpy(*buffer+hdrlen, notice->z_message, notice->z_message_len);
-
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZFmtRaw.c b/zephyr/lib/ZFmtRaw.c
deleted file mode 100644 (file)
index 609eded..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZFormatRawNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZFmtRaw.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZFormatRawNotice_c[] = "$Id: ZFmtRaw.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZFormatRawNotice(register ZNotice_t *notice,
-                char **buffer,
-                int *ret_len)
-{
-    char header[Z_MAXHEADERLEN];
-    int hdrlen;
-    Code_t retval;
-
-    if ((retval = Z_FormatRawHeader(notice, header, sizeof(header),
-                                   &hdrlen, NULL, NULL)) != ZERR_NONE)
-       return (retval);
-
-    *ret_len = hdrlen+notice->z_message_len;
-
-    /* *ret_len is never 0, don't have to worry about malloc(0) */
-    if (!(*buffer = (char *) malloc((unsigned) *ret_len)))
-       return (ENOMEM);
-
-    (void) memcpy(*buffer, header, hdrlen);
-    (void) memcpy(*buffer+hdrlen, notice->z_message, notice->z_message_len);
-
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZFmtRawLst.c b/zephyr/lib/ZFmtRawLst.c
deleted file mode 100644 (file)
index dfde655..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZFormatRawNoticeList function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZFmtRawLst.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZFormatRawNoticeList_c[] = "$Id: ZFmtRawLst.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZFormatRawNoticeList(ZNotice_t *notice,
-                    char *list[],
-                    int nitems,
-                    char **buffer,
-                    int *ret_len)
-{
-    char header[Z_MAXHEADERLEN];
-    int hdrlen, i, size;
-    char *ptr;
-    Code_t retval;
-
-    if ((retval = Z_FormatRawHeader(notice, header, sizeof(header),
-                                   &hdrlen, NULL, NULL)) != ZERR_NONE)
-       return (retval);
-
-    size = 0;
-    for (i=0;i<nitems;i++)
-       size += strlen(list[i])+1;
-
-    *ret_len = hdrlen+size;
-    
-    if (!(*buffer = (char *) malloc((unsigned) *ret_len)))
-       return (ENOMEM);
-
-    (void) memcpy(*buffer, header, hdrlen);
-    
-    ptr = *buffer+hdrlen;
-
-    for (;nitems;nitems--, list++) {
-       i = strlen(*list)+1;
-       (void) memcpy(ptr, *list, i);
-       ptr += i;
-    }
-
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZFmtSmRLst.c b/zephyr/lib/ZFmtSmRLst.c
deleted file mode 100644 (file)
index a89da0b..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZFormatSmallRawNoticeList function.
- *
- *     Created by:     John T. Kohl
- *
- *     $Id: ZFmtSmRLst.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZFormatRawNoticeList_c[] = "$Id: ZFmtSmRLst.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZFormatSmallRawNoticeList(ZNotice_t *notice,
-                         char *list[],
-                         int nitems,
-                         ZPacket_t buffer,
-                         int *ret_len)
-{
-    Code_t retval;
-    int hdrlen, i, size;
-    char *ptr;
-
-    if ((retval = Z_FormatRawHeader(notice, buffer, Z_MAXHEADERLEN,
-                                   &hdrlen, NULL, NULL)) != ZERR_NONE)
-       return (retval);
-
-    size = 0;
-    for (i=0;i<nitems;i++)
-       size += strlen(list[i])+1;
-
-    *ret_len = hdrlen+size;
-
-    if (*ret_len > Z_MAXPKTLEN)
-       return (ZERR_PKTLEN);
-
-    ptr = buffer+hdrlen;
-
-    for (;nitems;nitems--, list++) {
-       i = strlen(*list)+1;
-       (void) memcpy(ptr, *list, i);
-       ptr += i;
-    }
-
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZFmtSmRaw.c b/zephyr/lib/ZFmtSmRaw.c
deleted file mode 100644 (file)
index 4afc71a..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZFormatSmallRawNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZFmtSmRaw.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZFormatRawNotice_c[] = "$Id: ZFmtSmRaw.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZFormatSmallRawNotice(ZNotice_t *notice,
-                     ZPacket_t buffer,
-                     int *ret_len)
-{
-    Code_t retval;
-    int hdrlen;
-    
-    if ((retval = Z_FormatRawHeader(notice, buffer, Z_MAXHEADERLEN,
-                                   &hdrlen, NULL, NULL)) != ZERR_NONE)
-       return (retval);
-
-    *ret_len = hdrlen+notice->z_message_len;
-
-    if (*ret_len > Z_MAXPKTLEN)
-       return (ZERR_PKTLEN);
-
-    (void) memcpy(buffer+hdrlen, notice->z_message, notice->z_message_len);
-
-    return (ZERR_NONE);
-}
-
-Code_t
-ZNewFormatSmallRawNotice(ZNotice_t *notice,
-                        ZPacket_t buffer,
-                        int *ret_len)
-{
-  Code_t retval;
-  int hdrlen;
-  
-  if ((retval = Z_AsciiFormatRawHeader(notice, buffer, Z_MAXHEADERLEN,
-                                       &hdrlen, NULL, NULL, NULL, NULL)) 
-      != ZERR_NONE)
-    return (retval);
-  
-  *ret_len = hdrlen+notice->z_message_len;
-  
-  if (*ret_len > Z_MAXPKTLEN)
-    return (ZERR_PKTLEN);
-  
-  (void) memcpy(buffer+hdrlen, notice->z_message, notice->z_message_len);
-  
-  return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZFreeNot.c b/zephyr/lib/ZFreeNot.c
deleted file mode 100644 (file)
index 9e6f8b8..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZFreeNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZFreeNot.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZFreeNotice_c[] = "$Id: ZFreeNot.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZFreeNotice(ZNotice_t *notice)
-{
-    free(notice->z_packet);
-    return 0;
-}
diff --git a/zephyr/lib/ZGetLocs.c b/zephyr/lib/ZGetLocs.c
deleted file mode 100644 (file)
index 5b4f1dd..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZGetLocations function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZGetLocs.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZGetLocations_c[] = "$Id: ZGetLocs.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-#define min(a,b) ((a)<(b)?(a):(b))
-       
-Code_t
-ZGetLocations(ZLocations_t *location,
-             int *numlocs)
-{
-    int i;
-       
-    if (!__locate_list)
-       return (ZERR_NOLOCATIONS);
-
-    if (__locate_next == __locate_num)
-       return (ZERR_NOMORELOCS);
-       
-    for (i=0;i<min(*numlocs, __locate_num-__locate_next);i++)
-       location[i] = __locate_list[i+__locate_next];
-
-    if (__locate_num-__locate_next < *numlocs)
-       *numlocs = __locate_num-__locate_next;
-
-    __locate_next += *numlocs;
-       
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZGetSender.c b/zephyr/lib/ZGetSender.c
deleted file mode 100644 (file)
index 07d7407..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZGetSender.c function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZGetSender.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987, 1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-
-#ifndef lint
-static const char rcsid_ZGetSender_c[] =
-    "$Id: ZGetSender.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <pwd.h>
-
-char *
-ZGetSender(void)
-{
-    struct passwd *pw;
-    static char *sender = NULL;
-#ifdef HAVE_KRB5
-    krb5_ccache ccache;
-    krb5_principal principal;
-    char *prname;
-    int result;
-#else    
-#ifdef HAVE_KRB4
-    char pname[ANAME_SZ], pinst[INST_SZ], prealm[REALM_SZ];
-#endif 
-#endif
-
-    /* Return it if already cached */
-    if (sender)
-       return (sender);
-
-#ifdef HAVE_KRB5
-    result = krb5_cc_default(Z_krb5_ctx, &ccache);
-    if (!result) {
-      result = krb5_cc_get_principal(Z_krb5_ctx, ccache, &principal);
-      if (!result) {
-       krb5_unparse_name(Z_krb5_ctx, principal, &prname);
-       sender = strdup(prname);
-       krb5_free_principal(Z_krb5_ctx, principal);
-       return sender;
-      }
-      krb5_cc_close(Z_krb5_ctx, ccache);
-    } 
-#else
-#ifdef HAVE_KRB4
-    if (krb_get_tf_fullname((char *)TKT_FILE, pname, pinst, prealm) == KSUCCESS)
-    {
-        sender = malloc(ANAME_SZ+INST_SZ+REALM_SZ+3);
-       if (sender)
-         (void) sprintf(sender, "%s%s%s@%s", pname, (pinst[0]?".":""),
-                        pinst, prealm);
-       return (sender);
-    }
-#endif
-#endif
-
-    /* XXX a uid_t is a u_short (now),  but getpwuid
-     * wants an int. AARGH! */
-    pw = getpwuid((int) getuid());
-    if (!pw)
-       return ("unknown");
-    sender = malloc(strlen(pw->pw_name) + strlen(__Zephyr_realm) + 2);
-    if (sender)
-      (void) sprintf(sender, "%s@%s", pw->pw_name, __Zephyr_realm);
-    return (sender);
-}
diff --git a/zephyr/lib/ZGetSubs.c b/zephyr/lib/ZGetSubs.c
deleted file mode 100644 (file)
index 4b9e90a..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZGetSubscriptions function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZGetSubs.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZGetSubscriptions_c[] = "$Id: ZGetSubs.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-#define min(a,b) ((a)<(b)?(a):(b))
-       
-Code_t
-ZGetSubscriptions(ZSubscription_t *subscription,
-                 int *numsubs)
-{
-    int i;
-       
-    if (!__subscriptions_list)
-       return (ZERR_NOSUBSCRIPTIONS);
-
-    if (__subscriptions_next == __subscriptions_num)
-       return (ZERR_NOMORESUBSCRIPTIONS);
-       
-    for (i=0;i<min(*numsubs, __subscriptions_num-__subscriptions_next);i++)
-       subscription[i] = __subscriptions_list[i+__subscriptions_next];
-
-    if (__subscriptions_num-__subscriptions_next < *numsubs)
-       *numsubs = __subscriptions_num-__subscriptions_next;
-
-    __subscriptions_next += *numsubs;
-       
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZGetWGPort.c b/zephyr/lib/ZGetWGPort.c
deleted file mode 100644 (file)
index f37e421..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZGetWGPort function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZGetWGPort.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZGetWGPort_c[] = "$Id: ZGetWGPort.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-int
-ZGetWGPort(void)
-{
-    char *envptr, name[128];
-    FILE *fp;
-    int wgport;
-       
-    envptr = getenv("WGFILE");
-    if (!envptr) {
-       (void) sprintf(name, "/tmp/wg.%d", getuid());
-       envptr = name;
-    } 
-    if (!(fp = fopen(envptr, "r")))
-       return (-1);
-
-    /* if fscanf fails, return -1 via wgport */
-    if (fscanf(fp, "%d", &wgport) != 1)
-           wgport = -1;
-
-    (void) fclose(fp);
-
-    return (wgport);
-}
diff --git a/zephyr/lib/ZIfNotice.c b/zephyr/lib/ZIfNotice.c
deleted file mode 100644 (file)
index 7d4920b..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZIfNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZIfNotice.c 2123 2008-01-20 19:40:42Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-
-#ifndef lint
-static const char rcsid_ZIfNotice_c[] = "$Id: ZIfNotice.c 2123 2008-01-20 19:40:42Z kcr $";
-#endif
-
-Code_t
-ZIfNotice(ZNotice_t *notice,
-         struct sockaddr_in *from,
-         int (*predicate)(ZNotice_t *, void *),
-         void *args)
-{
-    ZNotice_t tmpnotice;
-    Code_t retval;
-    char *buffer;
-    struct _Z_InputQ *qptr;
-
-    if ((retval = Z_WaitForComplete()) != ZERR_NONE)
-       return (retval);
-       
-    qptr = Z_GetFirstComplete();
-    
-    for (;;) {
-       while (qptr) {
-           if ((retval = ZParseNotice(qptr->packet, qptr->packet_len, 
-                                      &tmpnotice)) != ZERR_NONE)
-               return (retval);
-           if ((*predicate)(&tmpnotice, args)) {
-               if (!(buffer = (char *) malloc((unsigned) qptr->packet_len)))
-                   return (ENOMEM);
-               (void) memcpy(buffer, qptr->packet, qptr->packet_len);
-               if (from)
-                   *from = qptr->from;
-               if ((retval = ZParseNotice(buffer, qptr->packet_len, 
-                                          notice)) != ZERR_NONE) {
-                   free(buffer);
-                   return (retval);
-               }
-               Z_RemQueue(qptr);
-               return (ZERR_NONE);
-           }
-           qptr = Z_GetNextComplete(qptr);
-       }
-       if ((retval = Z_ReadWait()) != ZERR_NONE)
-           return (retval);
-       qptr = Z_GetFirstComplete();    /* need to look over all of
-                                          the queued messages, in case
-                                          a fragment has been reassembled */
-    }
-}
diff --git a/zephyr/lib/ZInit.c b/zephyr/lib/ZInit.c
deleted file mode 100644 (file)
index b65ee0e..0000000
+++ /dev/null
@@ -1,420 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZInitialize function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZInit.c 2276 2008-12-29 08:27:51Z kcr $
- *
- *     Copyright (c) 1987, 1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZInitialize_c[] =
-    "$Zephyr: /afs/athena.mit.edu/astaff/project/zephyr/src/lib/RCS/ZInitialize.c,v 1.17 89/05/30 18:11:25 jtkohl Exp $";
-#endif
-
-#include <internal.h>
-
-#include <sys/socket.h>
-#ifdef HAVE_KRB4
-#include <krb_err.h>
-#endif
-#ifdef HAVE_KRB5
-#include <krb5.h>
-#endif
-#ifdef HAVE_KRB5_ERR_H
-#include <krb5_err.h>
-#endif
-
-#ifndef INADDR_NONE
-#define INADDR_NONE 0xffffffff
-#endif
-
-#if defined(HAVE_KRB5) && defined(KRB5_REFERRAL_REALM)
-#include <profile.h>
-
-int z_get_host_realm_replacement(char *, char ***);
-#endif
-
-Code_t
-ZInitialize(void)
-{
-    struct servent *hmserv;
-    struct hostent *hostent;
-    char addr[4], hostname[MAXHOSTNAMELEN];
-    struct in_addr servaddr;
-    struct sockaddr_in sin;
-    unsigned int s, sinsize = sizeof(sin);
-    Code_t code;
-    ZNotice_t notice;
-#ifdef HAVE_KRB5
-    char **krealms = NULL;
-#else
-#ifdef HAVE_KRB4
-    char *krealm = NULL;
-    int krbval;
-    char d1[ANAME_SZ], d2[INST_SZ];
-#endif
-#endif
-
-#ifdef HAVE_KRB4
-    initialize_krb_error_table();
-#endif
-#ifdef HAVE_KRB5
-    initialize_krb5_error_table();
-#endif
-
-    initialize_zeph_error_table();
-    
-    (void) memset((char *)&__HM_addr, 0, sizeof(__HM_addr));
-
-    __HM_addr.sin_family = AF_INET;
-
-    /* Set up local loopback address for HostManager */
-    addr[0] = 127;
-    addr[1] = 0;
-    addr[2] = 0;
-    addr[3] = 1;
-
-    hmserv = (struct servent *)getservbyname(HM_SVCNAME, "udp");
-    __HM_addr.sin_port = (hmserv) ? hmserv->s_port : HM_SVC_FALLBACK;
-
-    (void) memcpy((char *)&__HM_addr.sin_addr, addr, 4);
-
-    __HM_set = 0;
-
-    /* Initialize the input queue */
-    __Q_Tail = NULL;
-    __Q_Head = NULL;
-    
-#ifdef HAVE_KRB5
-    if ((code = krb5_init_context(&Z_krb5_ctx)))
-        return(code);
-#endif
-
-    /* if the application is a server, there might not be a zhm.  The
-       code will fall back to something which might not be "right",
-       but this is is ok, since none of the servers call krb_rd_req. */
-
-    servaddr.s_addr = INADDR_NONE;
-    if (! __Zephyr_server) {
-       if ((code = ZOpenPort(NULL)) != ZERR_NONE)
-         return(code);
-
-       if ((code = ZhmStat(NULL, &notice)) != ZERR_NONE)
-         return(code);
-
-       ZClosePort();
-
-       /* the first field, which is NUL-terminated, is the server name.
-         If this code ever support a multiplexing zhm, this will have to
-         be made smarter, and probably per-message */
-
-#ifdef HAVE_KRB5
-#ifndef KRB5_REFERRAL_REALM
-       code = krb5_get_host_realm(Z_krb5_ctx, notice.z_message, &krealms);
-       if (code)
-        return(code);
-#else
-       code = z_get_host_realm_replacement(notice.z_message, &krealms);
-#endif
-#else
-#ifdef HAVE_KRB4
-       krealm = krb_realmofhost(notice.z_message);
-#endif
-#endif
-       hostent = gethostbyname(notice.z_message);
-       if (hostent && hostent->h_addrtype == AF_INET)
-          memcpy(&servaddr, hostent->h_addr, sizeof(servaddr));
-
-       ZFreeNotice(&notice);
-    }
-
-#ifdef HAVE_KRB5
-    if (krealms) {
-      strcpy(__Zephyr_realm, krealms[0]);
-      krb5_free_host_realm(Z_krb5_ctx, krealms);
-    } else {
-      char *p; /* XXX define this somewhere portable */
-      /* XXX check ticket file here */
-      code = krb5_get_default_realm(Z_krb5_ctx, &p);
-      strcpy(__Zephyr_realm, p);
-#ifdef HAVE_KRB5_FREE_DEFAULT_REALM
-      krb5_free_default_realm(Z_krb5_ctx, p);
-#else
-      free(p);
-#endif
-      if (code)
-       return code;
-    }
-#else
-#ifdef HAVE_KRB4
-    if (krealm) {
-       strcpy(__Zephyr_realm, krealm);
-    } else if ((krb_get_tf_fullname(TKT_FILE, d1, d2, __Zephyr_realm)
-               != KSUCCESS) &&
-              ((krbval = krb_get_lrealm(__Zephyr_realm, 1)) != KSUCCESS)) {
-       return (krbval);
-    }
-#else
-    strcpy(__Zephyr_realm, "local-realm");
-#endif
-#endif
-
-    __My_addr.s_addr = INADDR_NONE;
-    if (servaddr.s_addr != INADDR_NONE) {
-       /* Try to get the local interface address by connecting a UDP
-        * socket to the server address and getting the local address.
-        * Some broken operating systems (e.g. Solaris 2.0-2.5) yield
-        * INADDR_ANY (zero), so we have to check for that. */
-       s = socket(AF_INET, SOCK_DGRAM, 0);
-       if (s != -1) {
-           memset(&sin, 0, sizeof(sin));
-           sin.sin_family = AF_INET;
-           memcpy(&sin.sin_addr, &servaddr, sizeof(servaddr));
-           sin.sin_port = HM_SRV_SVC_FALLBACK;
-           if (connect(s, (struct sockaddr *) &sin, sizeof(sin)) == 0
-               && getsockname(s, (struct sockaddr *) &sin, &sinsize) == 0
-               && sin.sin_addr.s_addr != 0)
-               memcpy(&__My_addr, &sin.sin_addr, sizeof(__My_addr));
-           close(s);
-       }
-    }
-    if (__My_addr.s_addr == INADDR_NONE) {
-       /* We couldn't figure out the local interface address by the
-        * above method.  Try by resolving the local hostname.  (This
-        * is a pretty broken thing to do, and unfortunately what we
-        * always do on server machines.) */
-       if (gethostname(hostname, sizeof(hostname)) == 0) {
-           hostent = gethostbyname(hostname);
-           if (hostent && hostent->h_addrtype == AF_INET)
-               memcpy(&__My_addr, hostent->h_addr, sizeof(__My_addr));
-       }
-    }
-    /* If the above methods failed, zero out __My_addr so things will
-     * sort of kind of work. */
-    if (__My_addr.s_addr == INADDR_NONE)
-       __My_addr.s_addr = 0;
-
-    /* Get the sender so we can cache it */
-    (void) ZGetSender();
-
-    return (ZERR_NONE);
-}
-
-const char * ZGetRealm (void) {
-    return __Zephyr_realm;
-}
-
-int ZGetFD (void) {
-    return __Zephyr_fd;
-}
-
-int ZQLength (void) {
-    return __Q_CompleteLength;
-}
-
-struct sockaddr_in ZGetDestAddr (void) {
-    return __HM_addr;
-}
-
-#if defined(HAVE_KRB5) && defined(KRB5_REFERRAL_REALM)
-#include <ctype.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-static int txt_lookup(char *qname, char **result) {
-    int ret, buflen, left;
-    void *buf = NULL;
-    HEADER *hdr;
-    unsigned char *p;
-    char dname[MAXDNAME];
-    int queries, answers, stored;
-
-    ret = res_init();
-    if (ret < 0)
-       return -1;
-
-    buflen = 0;
-    do {
-       buflen = buflen ? buflen * 2 : 2048;
-       buf = (buf == NULL) ? malloc(buflen) : realloc(buf, buflen);
-       
-       ret = res_search(qname, C_IN, T_TXT, buf, buflen);
-    } while (ret > buflen);
-
-    if (ret < 0)
-       return -1;
-
-    buflen = ret;
-    left = ret;
-
-    hdr = (HEADER *)buf;
-    p = buf;
-    queries = ntohs(hdr->qdcount);
-    answers = ntohs(hdr->ancount);
-    p += sizeof (HEADER);
-    left -= sizeof (HEADER);
-
-    while (queries--) {
-       ret = dn_expand(buf, buf + buflen, p, dname, sizeof dname);
-       if (ret < 0 || (ret + 4) > left)
-           return -1;
-       p += ret + 4;
-       left -= ret + 4;
-    }
-
-    if (!ret || !answers)
-       return -1;
-
-    stored = 0;
-    while (answers--) {
-       int class, type;
-       
-       ret = dn_expand(buf, buf + buflen, p, dname, sizeof dname);
-       if (ret < 0 || ret > left)
-           return -1;
-       p += ret;
-       left -= ret;
-
-       if (left < 10)
-           return -1;
-       type = ntohs(*(u_int16_t *)p);
-       p += 2;
-       class = ntohs(*(u_int16_t *)p);
-       p += 6;
-       ret = ntohs(*(u_int16_t *)p);
-       p += 2;
-       left -= 10;
-
-       if (ret > left)
-           return -1;
-
-       if (class == C_IN && type == T_TXT) {
-           *result = malloc(ret);
-           if (*result == NULL)
-               return -1;
-           memcpy(*result, p + 1, ret - 1);
-           (*result)[ret - 1] = 0;
-           return 0;
-       }
-
-       p += ret;
-    }
-    return -1;
-}      
-
-int z_get_host_realm_replacement(char *inhost, char ***krealms) {
-    char *host, *p;
-    char *realm = NULL;
-    char *default_realm = NULL;
-    char *tmp_realm;
-    char *qname;
-    profile_t prof;
-    int ret;
-    
-    host = strdup(inhost);
-
-    for (p = host; *p; p++)
-       if (isupper(*p))
-           *p = tolower(*p);
-
-    p = host;
-    while (p && !default_realm) {
-       if (*p == '.') {
-           p++;
-           if (default_realm == NULL) {
-               default_realm = p;
-           }
-       } else {
-           p = strchr(p, '.');
-       }
-    }
-
-    p = host;
-    tmp_realm = NULL;
-
-    krb5_get_profile(Z_krb5_ctx, &prof);
-    while(p) {
-       ret = profile_get_string(prof, "domain_realm", p,
-                                0, NULL, &tmp_realm);
-       if (ret) {
-           profile_abandon(prof);
-           free(host);
-           return ret;
-       }
-
-       if (tmp_realm != NULL)
-           break;
-
-       if (*p == '.')
-           p++;
-       else
-           p = strchr(p, '.');
-    }
-
-    if (tmp_realm != NULL) {
-       realm = strdup(tmp_realm);
-       profile_release_string(tmp_realm);
-       if (realm == NULL) {
-           free(host);
-           return errno;
-       }
-    }
-    profile_abandon(prof);
-
-    if (realm == NULL) {
-       p = host;
-       do {
-           qname = malloc(strlen(p) + strlen("_kerberos..") + 1);
-           if (qname == NULL) {
-               free(host);
-               return errno;
-           }
-           sprintf(qname, "_kerberos.%s.", p);
-           ret = txt_lookup(qname, &realm);
-           free(qname);
-           
-           p = strchr(p,'.');
-           if (p) 
-               p++;
-       } while (ret && p && p[0]);
-    }
-
-    if (realm == NULL) {
-       if (default_realm != NULL) {
-           realm = strdup(default_realm);
-           if (realm == NULL) {
-               free(host);
-               return errno;
-           }
-           
-           for (p = realm; *p; p++)
-               if (islower(*p))
-                   *p = toupper(*p);
-       } else {
-           ret = krb5_get_default_realm(Z_krb5_ctx, &realm);
-           if (ret) {
-               free(host);
-               return ret;
-           }
-       }
-    }
-    
-    free(host);
-
-    if ((*krealms = calloc(2, sizeof(*krealms))) == NULL) {
-       if (realm)
-           free(realm);
-       return errno;
-    }
-
-    (*krealms)[0] = realm;
-    (*krealms)[1] = NULL;
-
-    return 0;
-}
-#endif
diff --git a/zephyr/lib/ZLocateU.c b/zephyr/lib/ZLocateU.c
deleted file mode 100644 (file)
index 02a4e36..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZLocateUser function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZLocateU.c 2091 2007-12-20 01:17:23Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static char rcsid_ZLocateUser_c[] = "$Id: ZLocateU.c 2091 2007-12-20 01:17:23Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t ZLocateUser(user, nlocs)
-    char *user;
-    int *nlocs;
-{
-   return(ZNewLocateUser(user,nlocs,ZAUTH));
-}
diff --git a/zephyr/lib/ZLocations.c b/zephyr/lib/ZLocations.c
deleted file mode 100644 (file)
index 21c4c43..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZSetLocation, ZUnsetLocation, and
- * ZFlushMyLocations functions.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZLocations.c 2234 2008-12-21 08:30:34Z kcr $
- *
- *     Copyright (c) 1987,1988,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZLocations_c[] =
-    "$Zephyr: /afs/athena.mit.edu/astaff/project/zephyr/src/lib/RCS/ZLocations.c,v 1.30 90/12/20 03:04:39 raeburn Exp $";
-#endif
-
-#include <internal.h>
-
-#include <pwd.h>
-
-static char host[MAXHOSTNAMELEN], mytty[MAXPATHLEN];
-static int location_info_set = 0;
-
-Code_t
-ZInitLocationInfo(char *hostname,
-                 char *tty)
-{
-    char *ttyp, *p;
-    struct hostent *hent;
-
-    if (hostname) {
-       strcpy(host, hostname);
-    } else {
-       if (gethostname(host, MAXHOSTNAMELEN) < 0)
-           return (errno);
-       hent = gethostbyname(host);
-       if (hent) {
-          (void) strncpy(host, hent->h_name, sizeof(host));
-          host[sizeof(host) - 1] = '\0';
-       }
-    }
-    if (tty) {
-       strcpy(mytty, tty);
-    } else {
-       ttyp = ttyname(0);
-       if (ttyp && *ttyp) {
-           p = strchr(ttyp + 1, '/');
-           strcpy(mytty, (p) ? p + 1 : ttyp);
-       } else {
-           strcpy(mytty, "unknown");
-       }
-    }
-    location_info_set = 1;
-    return (ZERR_NONE);
-}
-
-Code_t
-ZSetLocation(char *exposure)
-{
-    return (Z_SendLocation(LOGIN_CLASS, exposure, ZAUTH, 
-                          "$sender logged in to $1 on $3 at $2"));
-}
-
-Code_t
-ZUnsetLocation(void)
-{
-    return (Z_SendLocation(LOGIN_CLASS, LOGIN_USER_LOGOUT, ZNOAUTH, 
-                          "$sender logged out of $1 on $3 at $2"));
-}
-
-Code_t
-ZFlushMyLocations(void)
-{
-    return (Z_SendLocation(LOGIN_CLASS, LOGIN_USER_FLUSH, ZAUTH, ""));
-}
-
-char *
-ZParseExposureLevel(char *text)
-{
-    if (!strcasecmp(text, EXPOSE_NONE))
-       return (EXPOSE_NONE);
-    else if (!strcasecmp(text, EXPOSE_OPSTAFF))
-       return (EXPOSE_OPSTAFF);
-    else if (!strcasecmp(text, EXPOSE_REALMVIS))
-       return (EXPOSE_REALMVIS);
-    else if (!strcasecmp(text, EXPOSE_REALMANN))
-       return (EXPOSE_REALMANN);
-    else if (!strcasecmp(text, EXPOSE_NETVIS))
-       return (EXPOSE_NETVIS);
-    else if (!strcasecmp(text, EXPOSE_NETANN))
-       return (EXPOSE_NETANN);
-    else
-       return(NULL);
-}
-
-/* lifted from lib/ZSendPkt.c wait_for_hmack, but waits for SERVACK instead */
-static int
-wait_for_srvack(ZNotice_t *notice, void *uid)
-{
-    return (notice->z_kind == SERVACK && ZCompareUID(&notice->z_uid, (ZUnique_Id_t *)uid));
-}
-
-Code_t
-Z_SendLocation(char *class,
-              char *opcode,
-              Z_AuthProc auth,
-              char *format)
-{
-    int retval;
-    time_t ourtime;
-    ZNotice_t notice, retnotice;
-    char *bptr[3];
-    short wg_port = ZGetWGPort();
-
-    if (!location_info_set)
-       ZInitLocationInfo(NULL, NULL);
-
-    memset((char *)&notice, 0, sizeof(notice));
-    notice.z_kind = ACKED;
-    notice.z_port = (u_short) ((wg_port == -1) ? 0 : wg_port);
-    notice.z_class = class;
-    notice.z_class_inst = ZGetSender();
-    notice.z_opcode = opcode;
-    notice.z_sender = 0;
-    notice.z_recipient = "";
-    notice.z_num_other_fields = 0;
-    notice.z_default_format = format;
-
-    bptr[0] = host;
-    ourtime = time((time_t *)0);
-    bptr[1] = ctime(&ourtime);
-    bptr[1][strlen(bptr[1])-1] = '\0';
-    bptr[2] = mytty;
-
-    if ((retval = ZSendList(&notice, bptr, 3, auth)) != ZERR_NONE)
-       return (retval);
-
-    retval = Z_WaitForNotice (&retnotice, wait_for_srvack, &notice.z_uid,
-                             SRV_TIMEOUT);
-    if (retval != ZERR_NONE)
-      return retval;
-
-    if (retnotice.z_kind == SERVNAK) {
-       if (!retnotice.z_message_len) {
-           ZFreeNotice(&retnotice);
-           return (ZERR_SERVNAK);
-       }
-       if (!strcmp(retnotice.z_message, ZSRVACK_NOTSENT)) {
-           ZFreeNotice(&retnotice);
-           return (ZERR_AUTHFAIL);
-       }
-       if (!strcmp(retnotice.z_message, ZSRVACK_FAIL)) {
-           ZFreeNotice(&retnotice);
-           return (ZERR_LOGINFAIL);
-       }
-       ZFreeNotice(&retnotice);
-       return (ZERR_SERVNAK);
-    } 
-       
-    if (retnotice.z_kind != SERVACK) {
-       ZFreeNotice(&retnotice);
-       return (ZERR_INTERNAL);
-    }
-
-    if (!retnotice.z_message_len) {
-       ZFreeNotice(&retnotice);
-       return (ZERR_INTERNAL);
-    }
-
-    if (strcmp(retnotice.z_message, ZSRVACK_SENT) &&
-       strcmp(retnotice.z_message, ZSRVACK_NOTSENT)) {
-       ZFreeNotice(&retnotice);
-       return (ZERR_INTERNAL);
-    }
-
-    ZFreeNotice(&retnotice);
-       
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZMakeAscii.c b/zephyr/lib/ZMakeAscii.c
deleted file mode 100644 (file)
index 0b027e4..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZMakeAscii function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZMakeAscii.c 2123 2008-01-20 19:40:42Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-#include <assert.h>
-
-#ifndef lint
-static const char rcsid_ZMakeAscii_c[] = "$Id: ZMakeAscii.c 2123 2008-01-20 19:40:42Z kcr $";
-#endif
-
-static char *itox_chars = "0123456789ABCDEF";
-
-Code_t
-ZMakeAscii(register char *ptr,
-          int len,
-          unsigned char *field,
-          int num)
-{
-    int i;
-
-    for (i=0;i<num;i++) {
-       /* we need to add "0x" if we are between 4 byte pieces */
-       if ((i & 3) == 0) {
-           if (len < (i?4:3))
-               return ZERR_FIELDLEN;
-           /* except at the beginning, put a space in before the "0x" */
-           if (i) {
-               *ptr++ = ' ';
-               len--;
-           }
-           *ptr++ = '0';
-           *ptr++ = 'x';
-           len -= 2;
-       } 
-       if (len < 3)
-           return ZERR_FIELDLEN;
-       *ptr++ = itox_chars[(int) (field[i] >> 4)];
-       *ptr++ = itox_chars[(int) (field[i] & 0xf)];
-       len -= 2;
-    }
-
-    *ptr = '\0';
-    return ZERR_NONE;
-}
-
-Code_t
-ZMakeAscii32(register char *ptr,
-            int len,
-            unsigned long value)
-{
-    if (len < 11)
-       return ZERR_FIELDLEN;
-    *ptr++ = '0';
-    *ptr++ = 'x';
-    *ptr++ = itox_chars[(value >> 28) & 0xf];
-    *ptr++ = itox_chars[(value >> 24) & 0xf];
-    *ptr++ = itox_chars[(value >> 20) & 0xf];
-    *ptr++ = itox_chars[(value >> 16) & 0xf];
-    *ptr++ = itox_chars[(value >> 12) & 0xf];
-    *ptr++ = itox_chars[(value >>  8) & 0xf];
-    *ptr++ = itox_chars[(value >>  4) & 0xf];
-    *ptr++ = itox_chars[(value >>  0) & 0xf];
-    *ptr = 0;
-    return ZERR_NONE;
-}
-
-Code_t
-ZMakeAscii16(register char *ptr,
-            int len,
-            unsigned int value)
-{
-    if (len < 7)
-       return ZERR_FIELDLEN;
-    *ptr++ = '0';
-    *ptr++ = 'x';
-    *ptr++ = itox_chars[(value >> 12) & 0xf];
-    *ptr++ = itox_chars[(value >>  8) & 0xf];
-    *ptr++ = itox_chars[(value >>  4) & 0xf];
-    *ptr++ = itox_chars[(value >>  0) & 0xf];
-    *ptr = 0;
-    return ZERR_NONE;
-}
-
diff --git a/zephyr/lib/ZMakeZcode.c b/zephyr/lib/ZMakeZcode.c
deleted file mode 100644 (file)
index 85c6f9d..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZMakeZcode function.
- *
- *     Created by:     Jeffrey Hutzelman
- *
- *     $Id$
- *
- *     Copyright (c) 1987, 2002 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-#include <assert.h>
-
-#ifndef lint
-static const char rcsid_ZMakeZcode_c[] = "$Id$";
-#endif
-
-Code_t
-ZMakeZcode32(char *ptr,
-            int len,
-            unsigned long val)
-{
-    unsigned char buf[4];
-    buf[0] = (val >> 24) & 0xff;
-    buf[1] = (val >> 16) & 0xff;
-    buf[2] = (val >>  8) & 0xff;
-    buf[3] =  val        & 0xff;
-    return ZMakeZcode(ptr, len, buf, 4);
-}
-
-Code_t
-ZMakeZcode(register char *ptr,
-          int len,
-          unsigned char *field,
-          int num)
-{
-    int i;
-
-    /*
-     * This optimistic check lets us discover quickly if the buffer
-     * is not even large enough to hold the field without escapes.
-     * It also insures we'll have space for the leading 'Z' and the
-     * trailing NUL.  Note that this does _not_ remove the need for
-     * checking length as we encode.
-     */
-    if (len < num + 2)
-      return ZERR_FIELDLEN;
-    *ptr++ = 'Z';
-    --len;
-    for (i=0;i<num;i++) {
-        switch (field[i]) {
-            case 0x00:
-                if (len < 3)
-                    return ZERR_FIELDLEN;
-                *ptr++ = 0xff;
-                *ptr++ = 0xf0;
-                len -= 2;
-                continue;
-
-            case 0xff:
-                if (len < 3)
-                    return ZERR_FIELDLEN;
-                *ptr++ = 0xff;
-                *ptr++ = 0xf1;
-                len -= 2;
-                continue;
-
-            default:
-                if (len < 2)
-                    return ZERR_FIELDLEN;
-                *ptr++ = field[i];
-                len--;
-        }
-    }
-
-    *ptr = '\0';
-    return ZERR_NONE;
-}
diff --git a/zephyr/lib/ZMkAuth.c b/zephyr/lib/ZMkAuth.c
deleted file mode 100644 (file)
index d9a2f18..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZMakeAuthentication function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZMkAuth.c 2286 2009-03-02 03:14:23Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h".
- */
-
-#include <internal.h>
-
-#ifndef lint
-static const char rcsid_ZMakeAuthentication_c[] = "$Id: ZMkAuth.c 2286 2009-03-02 03:14:23Z kcr $";
-#endif
-
-#ifdef HAVE_KRB4
-#include <krb_err.h>
-#endif
-
-#if defined(HAVE_KRB5) && !HAVE_KRB5_FREE_DATA
-#define krb5_free_data(ctx, dat) free((dat)->data)
-#endif
-
-Code_t
-ZResetAuthentication(void)
-{
-    return ZERR_NONE;
-}
-
-Code_t
-ZMakeAuthentication(register ZNotice_t *notice,
-                   char *buffer,
-                   int buffer_len,
-                   int *len)
-{
-#ifdef HAVE_KRB5
-    return ZMakeZcodeAuthentication(notice, buffer, buffer_len, len/*?XXX*/);
-#else
-#ifdef HAVE_KRB4
-    int result;
-    KTEXT_ST authent;
-    char *cstart, *cend;
-    ZChecksum_t checksum;
-    CREDENTIALS cred;
-    C_Block *session;
-
-    result = krb_mk_req(&authent, SERVER_SERVICE,
-                       SERVER_INSTANCE, __Zephyr_realm, 0);
-    if (result != MK_AP_OK)
-       return (result+krb_err_base);
-    result = krb_get_cred(SERVER_SERVICE, SERVER_INSTANCE,
-                         __Zephyr_realm, &cred);
-    if (result != KSUCCESS)
-       return (result+krb_err_base);
-
-    session = (C_Block *)cred.session;
-
-    notice->z_auth = 1;
-    notice->z_authent_len = authent.length;
-    notice->z_ascii_authent = (char *)malloc((unsigned)authent.length*3);
-    /* zero length authent is an error, so malloc(0) is not a problem */
-    if (!notice->z_ascii_authent)
-       return (ENOMEM);
-    if ((result = ZMakeAscii(notice->z_ascii_authent,
-                            authent.length*3,
-                            authent.dat,
-                            authent.length)) != ZERR_NONE) {
-       free(notice->z_ascii_authent);
-       return (result);
-    }
-    result = Z_FormatRawHeader(notice, buffer, buffer_len, len, &cstart,
-                              &cend);
-    free(notice->z_ascii_authent);
-    notice->z_authent_len = 0;
-    if (result)
-       return(result);
-
-    /* Compute a checksum over the header and message. */
-    checksum = des_quad_cksum((unsigned char *)buffer, NULL, cstart - buffer, 0, session);
-    checksum ^= des_quad_cksum((unsigned char *)cend, NULL, buffer + *len - cend, 0,
-                              session);
-    checksum ^= des_quad_cksum((unsigned char *)notice->z_message, NULL, notice->z_message_len,
-                              0, session);
-    notice->z_checksum = checksum;
-    ZMakeAscii32(cstart, buffer + buffer_len - cstart, checksum);
-
-    return (ZERR_NONE);
-#else
-    notice->z_checksum = 0;
-    notice->z_auth = 1;
-    notice->z_authent_len = 0;
-    notice->z_ascii_authent = "";
-    return (Z_FormatRawHeader(notice, buffer, buffer_len, len, NULL, NULL));
-#endif
-#endif
-}
-
-Code_t
-ZMakeZcodeAuthentication(register ZNotice_t *notice,
-                        char *buffer,
-                        int buffer_len,
-                        int *phdr_len)
-{
-    return ZMakeZcodeRealmAuthentication(notice, buffer, buffer_len, phdr_len,
-                                        __Zephyr_realm);
-}
-
-Code_t
-ZMakeZcodeRealmAuthentication(register ZNotice_t *notice,
-                             char *buffer,
-                             int buffer_len,
-                             int *phdr_len,
-                             char *realm)
-{
-#ifdef HAVE_KRB5
-    krb5_error_code result;
-    krb5_creds *creds;
-    krb5_keyblock *keyblock;
-    krb5_auth_context authctx;
-    krb5_data *authent;
-    char *cksum_start, *cstart, *cend;
-    int cksum_len, zcode_len, phdr_adj;
-
-    result = ZGetCredsRealm(&creds, realm);
-    if (result)
-       return result;
-    /* HOLDING: creds */
-
-    /* Figure out what checksum type to use */
-    keyblock = Z_credskey(creds);
-    /* HOLDING: creds */
-
-    /* Create the authenticator */
-    result = krb5_auth_con_init(Z_krb5_ctx, &authctx);
-    if (result) {
-       krb5_free_creds(Z_krb5_ctx, creds);
-       return (result);
-    }
-
-    authent = (krb5_data *)malloc(sizeof(krb5_data));
-
-    /* HOLDING: creds, authctx */
-    result = krb5_mk_req_extended(Z_krb5_ctx, &authctx, 0 /* options */,
-                                 0 /* in_data */, creds, authent);
-    krb5_auth_con_free(Z_krb5_ctx, authctx);
-    if (result) {
-       krb5_free_creds(Z_krb5_ctx, creds);
-       return (result);
-    }
-    /* HOLDING: creds, authent */
-
-    /* Encode the authenticator */
-    notice->z_auth = 1;
-    notice->z_authent_len = authent->length;
-    zcode_len = authent->length * 2 + 2; /* 2x growth plus Z and null */
-    notice->z_ascii_authent = (char *)malloc(zcode_len);
-    if (!notice->z_ascii_authent) {
-       krb5_free_data(Z_krb5_ctx, authent);
-       krb5_free_creds(Z_krb5_ctx, creds);
-       return (ENOMEM);
-    }
-    /* HOLDING: creds, authent, notice->z_ascii_authent */
-    result = ZMakeZcode(notice->z_ascii_authent, zcode_len,
-                       (unsigned char *)authent->data, authent->length);
-    krb5_free_data(Z_krb5_ctx, authent);
-    if (result) {
-       free(notice->z_ascii_authent);
-       krb5_free_creds(Z_krb5_ctx, creds);
-       return (result);
-    }
-    /* HOLDING: creds, notice->z_ascii_authent */
-
-    /* format the notice header, with a zero checksum */
-    result = Z_NewFormatRawHeader(notice, buffer, buffer_len, phdr_len,
-                                 &cksum_start, &cksum_len, &cstart, &cend);
-    free(notice->z_ascii_authent);
-    notice->z_authent_len = 0;
-    if (result) {
-       krb5_free_creds(Z_krb5_ctx, creds);
-       return (result);
-    }
-    result = Z_InsertZcodeChecksum(keyblock, notice, buffer, cksum_start,
-                                   cksum_len, cstart, cend, buffer_len,
-                                   &phdr_adj);
-    krb5_free_creds(Z_krb5_ctx, creds);
-    if (result) {
-         return result;
-    }
-    *phdr_len += phdr_adj;
-
-    return (result);
-#else /* HAVE_KRB5 */
-    return ZERR_INTERNAL;
-#endif
-}
-
-#ifdef HAVE_KRB5
-int
-ZGetCreds(krb5_creds **creds_out)
-{
-  return ZGetCredsRealm(creds_out, __Zephyr_realm);
-}
-
-int
-ZGetCredsRealm(krb5_creds **creds_out,
-              char *realm)
-{
-  krb5_creds creds_in;
-  krb5_ccache ccache; /* XXX make this a global or static?*/
-  int result;
-
-  result = krb5_cc_default(Z_krb5_ctx, &ccache);
-  if (result)
-    return result;
-
-  memset((char *)&creds_in, 0, sizeof(creds_in));
-  result = krb5_build_principal(Z_krb5_ctx, &creds_in.server,
-                               strlen(realm),
-                               realm,
-                               SERVER_SERVICE, SERVER_INSTANCE, 0);
-  if (result) {
-    krb5_cc_close(Z_krb5_ctx, ccache);
-    return result;
-  }
-
-  result = krb5_cc_get_principal(Z_krb5_ctx, ccache, &creds_in.client);
-  if (result) {
-    krb5_free_cred_contents(Z_krb5_ctx, &creds_in); /* I also hope this is ok */
-    krb5_cc_close(Z_krb5_ctx, ccache);
-    return result;
-  }
-
-#ifdef HAVE_KRB5_CREDS_KEYBLOCK_ENCTYPE
-  creds_in.keyblock.enctype = ENCTYPE_DES_CBC_CRC; /* XXX? */
-#else
-  creds_in.session.keytype = KEYTYPE_DES; /* XXX? */
-#endif
-
-  result = krb5_get_credentials(Z_krb5_ctx, 0, ccache, &creds_in, creds_out);
-  krb5_cc_close(Z_krb5_ctx, ccache);
-  krb5_free_cred_contents(Z_krb5_ctx, &creds_in); /* I also hope this is ok */
-
-  return result;
-}
-#endif
diff --git a/zephyr/lib/ZNewLocU.c b/zephyr/lib/ZNewLocU.c
deleted file mode 100644 (file)
index 701cf15..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZNewLocateUser function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZNewLocU.c 2123 2008-01-20 19:40:42Z kcr $
- *
- *     Copyright (c) 1987,1988,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-
-#ifndef lint
-static const char rcsid_ZNewLocateUser_c[] =
-    "$Id: ZNewLocU.c 2123 2008-01-20 19:40:42Z kcr $";
-#endif
-
-Code_t
-ZLocateUser(char *user,
-           int *nlocs,
-           Z_AuthProc auth)
-{
-    Code_t retval;
-    ZNotice_t notice;
-    ZAsyncLocateData_t zald;
-
-    (void) ZFlushLocations();  /* ZFlushLocations never fails (the library
-                                  is allowed to know this). */
-
-    if ((retval = ZRequestLocations(user, &zald, UNACKED, auth)) != ZERR_NONE)
-       return(retval);
-
-    retval = Z_WaitForNotice (&notice, ZCompareALDPred, &zald, SRV_TIMEOUT);
-    if (retval == ZERR_NONOTICE)
-       return ETIMEDOUT;
-    if (retval != ZERR_NONE)
-       return retval;
-
-    if ((retval = ZParseLocations(&notice, &zald, nlocs, NULL)) != ZERR_NONE) {
-       ZFreeNotice(&notice);
-       return(retval);
-    }
-
-    ZFreeNotice(&notice);
-    ZFreeALD(&zald);
-    return(ZERR_NONE);
-}
diff --git a/zephyr/lib/ZOpenPort.c b/zephyr/lib/ZOpenPort.c
deleted file mode 100644 (file)
index 3968e2f..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZOpenPort function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZOpenPort.c 2277 2008-12-29 21:27:24Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZOpenPort_c[] = "$Id: ZOpenPort.c 2277 2008-12-29 21:27:24Z kcr $";
-#endif
-
-#include <internal.h>
-#include <sys/socket.h>
-
-Code_t
-ZOpenPort(u_short *port)
-{
-    struct sockaddr_in bindin;
-    unsigned int len;
-    int val = 1;
-    
-    (void) ZClosePort();
-
-    if ((__Zephyr_fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
-       __Zephyr_fd = -1;
-       return (errno);
-    }
-
-    bindin.sin_family = AF_INET;
-
-    if (port && *port) {
-       bindin.sin_port = *port;
-       if (setsockopt(__Zephyr_fd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof val) < 0) {
-           return errno;
-       }
-    } else {
-       bindin.sin_port = 0;
-    }
-
-    bindin.sin_addr.s_addr = INADDR_ANY;
-
-    if (bind(__Zephyr_fd, (struct sockaddr *)&bindin, sizeof(bindin)) < 0) {
-       if (errno == EADDRINUSE && port && *port)
-           return (ZERR_PORTINUSE);
-       else
-           return (errno);
-    }
-
-    if (!bindin.sin_port) {
-       len = sizeof(bindin);
-       if (getsockname(__Zephyr_fd, (struct sockaddr *)&bindin, &len))
-           return (errno);
-    }
-    
-    __Zephyr_port = bindin.sin_port;
-    __Zephyr_open = 1;
-
-    if (port)
-       *port = bindin.sin_port;
-
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZParseNot.c b/zephyr/lib/ZParseNot.c
deleted file mode 100644 (file)
index dbab9cf..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZParseNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZParseNot.c 2344 2009-03-24 03:40:55Z kcr $
- *
- *     Copyright (c) 1987,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZParseNotice_c[] =
-    "$Zephyr: /mit/zephyr/src/lib/RCS/ZParseNotice.c,v 1.22 91/03/29 03:34:46 raeburn Exp $";
-#endif
-
-#include <internal.h>
-
-/* Skip to the next NUL-terminated field in the packet. */
-static char *
-next_field(char *ptr,
-          char *end)
-{
-    while (ptr < end && *ptr != '\0')
-       ptr++;
-    if (ptr < end)
-       ptr++;
-    return (ptr);
-}
-
-Code_t
-ZParseNotice(char *buffer,
-            int len,
-            ZNotice_t *notice)
-{
-    char *ptr, *end;
-    unsigned long temp;
-    int maj, numfields, i;
-
-#ifdef __LINE__
-    int lineno;
-    /* Note: This definition of BAD eliminates lint and compiler
-     * complains about the "while (0)", but require that the macro not
-     * be used as the "then" part of an "if" statement that also has
-     * an "else" clause.
-     */
-#define BAD_PACKET     {lineno=__LINE__;goto badpkt;}
-    /* This one gets lint/compiler complaints.  */
-/*#define BAD  do{lineno=__LINE__;goto badpkt;}while(0)*/
-#else
-#define BAD_PACKET     goto badpkt
-#endif
-
-    (void) memset((char *)notice, 0, sizeof(ZNotice_t));
-       
-    ptr = buffer;
-    end = buffer+len;
-
-    notice->z_packet = buffer;
-    
-    notice->z_version = ptr;
-    if (strncmp(ptr, ZVERSIONHDR, sizeof(ZVERSIONHDR) - 1))
-       return (ZERR_VERS);
-    ptr += sizeof(ZVERSIONHDR) - 1;
-    if (!*ptr) {
-#ifdef Z_DEBUG
-       Z_debug ("ZParseNotice: null version string");
-#endif
-       return ZERR_BADPKT;
-    }
-    maj = atoi(ptr);
-    if (maj != ZVERSIONMAJOR)
-       return (ZERR_VERS);
-    ptr = next_field(ptr, end);
-
-    if (ZReadAscii32(ptr, end-ptr, &temp) == ZERR_BADFIELD)
-       BAD_PACKET;
-    numfields = temp;
-    notice->z_num_hdr_fields = numfields;
-    ptr = next_field(ptr, end);
-
-    /*XXX 3 */
-    numfields -= 2; /* numfields, version, and checksum */
-    if (numfields < 0) {
-#ifdef __LINE__
-       lineno = __LINE__;
-      badpkt:
-#ifdef Z_DEBUG
-       Z_debug ("ZParseNotice: bad packet from %s/%d (line %d)",
-                inet_ntoa (notice->z_uid.zuid_addr.s_addr),
-                notice->z_port, lineno);
-#endif
-#else
-    badpkt:
-#ifdef Z_DEBUG
-       Z_debug ("ZParseNotice: bad packet from %s/%d",
-                inet_ntoa (notice->z_uid.zuid_addr.s_addr),
-                notice->z_port);
-#endif
-#endif
-       return ZERR_BADPKT;
-    }
-
-    if (numfields && ptr < end) {
-       if (ZReadAscii32(ptr, end-ptr, &temp) == ZERR_BADFIELD)
-           BAD_PACKET;
-       notice->z_kind = (ZNotice_Kind_t)temp;
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       BAD_PACKET;
-       
-    if (numfields && ptr < end) {
-       if (ZReadAscii(ptr, end-ptr, (unsigned char *)&notice->z_uid,
-                      sizeof(ZUnique_Id_t)) == ZERR_BADFIELD)
-           BAD_PACKET;
-       notice->z_time.tv_sec = ntohl((u_long) notice->z_uid.tv.tv_sec);
-       notice->z_time.tv_usec = ntohl((u_long) notice->z_uid.tv.tv_usec);
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       BAD_PACKET;
-       
-    if (numfields && ptr < end) {
-       if (ZReadAscii16(ptr, end-ptr, &notice->z_port) == ZERR_BADFIELD)
-           BAD_PACKET;
-       notice->z_port = htons(notice->z_port);
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       BAD_PACKET;
-
-    if (numfields && ptr < end) {
-       if (ZReadAscii32(ptr, end-ptr, &temp) == ZERR_BADFIELD)
-           BAD_PACKET;
-       notice->z_auth = temp;
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       BAD_PACKET;
-    notice->z_checked_auth = ZAUTH_UNSET;
-       
-    if (numfields && ptr < end) {
-       if (ZReadAscii32(ptr, end-ptr, &temp) == ZERR_BADFIELD)
-           BAD_PACKET;
-       notice->z_authent_len = temp;
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       BAD_PACKET;
-
-    if (numfields && ptr < end) {
-       notice->z_ascii_authent = ptr;
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       BAD_PACKET;
-
-    if (numfields && ptr < end) {
-       notice->z_class = ptr;
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       notice->z_class = "";
-       
-    if (numfields && ptr < end) {
-       notice->z_class_inst = ptr;
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       notice->z_class_inst = "";
-
-    if (numfields && ptr < end) {
-       notice->z_opcode = ptr;
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       notice->z_opcode = "";
-
-    if (numfields && ptr < end) {
-       notice->z_sender = ptr;
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       notice->z_sender = "";
-
-    if (numfields && ptr < end) {
-       notice->z_recipient = ptr;
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       notice->z_recipient = "";
-
-    if (numfields && ptr < end) {
-       notice->z_default_format = ptr;
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       notice->z_default_format = "";
-       
-    if (numfields && ptr < end) {
-      notice->z_ascii_checksum = ptr;
-
-      if (ZReadAscii32(ptr, end-ptr, &temp) == ZERR_BADFIELD)
-       notice->z_checksum = 0;
-      else
-       notice->z_checksum = temp;
-
-      numfields--;
-      ptr = next_field (ptr, end);
-    }
-    else 
-      {
-       notice->z_ascii_checksum = "";
-       notice->z_checksum = 0;
-      }
-
-    if (numfields && ptr < end) {
-       notice->z_multinotice = ptr;
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       notice->z_multinotice = "";
-
-    if (numfields && ptr < end) {
-       if (ZReadAscii(ptr, end-ptr, (unsigned char *)&notice->z_multiuid,
-                      sizeof(ZUnique_Id_t)) == ZERR_BADFIELD)
-           BAD_PACKET;
-       notice->z_time.tv_sec = ntohl((u_long) notice->z_multiuid.tv.tv_sec);
-       notice->z_time.tv_usec = ntohl((u_long) notice->z_multiuid.tv.tv_usec);
-       numfields--;
-       ptr = next_field(ptr, end);
-    }
-    else
-       notice->z_multiuid = notice->z_uid;
-
-    if (numfields && ptr < end) {
-       /* we will take it on faith that ipv6 addresses are longer than ipv4
-          addresses */
-       unsigned char addrbuf[sizeof(notice->z_sender_sockaddr.ip6.sin6_addr)];
-       int len;
-
-       /* because we're paranoid about naughtily misformated packets */
-       if (memchr(ptr, '\0', end - ptr) == NULL)
-           BAD_PACKET;
-
-       if (*ptr == 'Z') {
-           if (ZReadZcode((unsigned char *)ptr, addrbuf,
-                          sizeof(addrbuf), &len) == ZERR_BADFIELD)
-               BAD_PACKET;
-       } else {
-           len = sizeof(notice->z_sender_sockaddr.ip4.sin_addr);
-           if (ZReadAscii(ptr, end - ptr, (unsigned char *)addrbuf,
-                          len) == ZERR_BADFIELD)
-               BAD_PACKET;
-       }
-
-       if (len == sizeof(notice->z_sender_sockaddr.ip6.sin6_addr)) {
-           notice->z_sender_sockaddr.ip6.sin6_family = AF_INET6;
-           memcpy(&notice->z_sender_sockaddr.ip6.sin6_addr, addrbuf, len);
-       } else if (len == sizeof(notice->z_sender_sockaddr.ip4.sin_addr)) {
-           notice->z_sender_sockaddr.ip4.sin_family = AF_INET;
-           memcpy(&notice->z_sender_sockaddr.ip4.sin_addr, addrbuf, len);
-       } else
-           BAD_PACKET;
-
-       numfields--;
-       ptr = next_field(ptr, end);
-    } else {
-       memset(&notice->z_sender_sockaddr, 0,
-              sizeof notice->z_sender_sockaddr);
-       notice->z_sender_sockaddr.ip4.sin_family = AF_INET;
-       notice->z_sender_sockaddr.ip4.sin_addr = notice->z_uid.zuid_addr;
-    }
-
-    if (numfields && ptr < end) {
-       if (ZReadAscii16(ptr, end-ptr, &notice->z_charset) == ZERR_BADFIELD)
-           BAD_PACKET;
-       notice->z_charset = htons(notice->z_charset);
-
-       numfields--;
-       ptr = next_field(ptr, end);
-    } else
-       notice->z_charset = ZCHARSET_UNKNOWN;
-    
-    for (i=0;ptr < end && i<Z_MAXOTHERFIELDS && numfields;i++,numfields--) {
-       notice->z_other_fields[i] = ptr;
-       ptr = next_field(ptr, end);
-    }
-    notice->z_num_other_fields = i;
-    
-    for (i=0;ptr < end && numfields;numfields--)
-       ptr = next_field(ptr, end);
-
-    if (numfields || *(ptr - 1) != '\0')
-       BAD_PACKET;
-
-    notice->z_message = (caddr_t) ptr;
-    notice->z_message_len = len-(ptr-buffer);
-
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZPeekIfNot.c b/zephyr/lib/ZPeekIfNot.c
deleted file mode 100644 (file)
index 1d51c02..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZPeekIfNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZPeekIfNot.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZPeekIfNotice_c[] = "$Id: ZPeekIfNot.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZPeekIfNotice(ZNotice_t *notice,
-             struct sockaddr_in *from,
-             int (*predicate)(ZNotice_t *, char *),
-             char *args)
-{
-    ZNotice_t tmpnotice;
-    Code_t retval;
-    char *buffer;
-    struct _Z_InputQ *qptr;
-
-    if ((retval = Z_WaitForComplete()) != ZERR_NONE)
-       return (retval);
-    
-    for (;;) {
-       qptr = Z_GetFirstComplete();
-       while (qptr) {
-           if ((retval = ZParseNotice(qptr->packet, qptr->packet_len, 
-                                      &tmpnotice)) != ZERR_NONE)
-               return (retval);
-           if ((*predicate)(&tmpnotice, args)) {
-               if (!(buffer = (char *) malloc((unsigned) qptr->packet_len)))
-                   return (ENOMEM);
-               (void) memcpy(buffer, qptr->packet, qptr->packet_len);
-               if (from)
-                   *from = qptr->from;
-               if ((retval = ZParseNotice(buffer, qptr->packet_len, 
-                                          notice)) != ZERR_NONE) {
-                   free(buffer);
-                   return (retval);
-               }
-               return (ZERR_NONE);
-           }
-           qptr = Z_GetNextComplete(qptr);
-       }
-       if ((retval = Z_ReadWait()) != ZERR_NONE)
-           return (retval);
-    }
-}
diff --git a/zephyr/lib/ZPeekNot.c b/zephyr/lib/ZPeekNot.c
deleted file mode 100644 (file)
index 35d323f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for ZPeekNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZPeekNot.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZPeekNotice_c[] = "$Id: ZPeekNot.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZPeekNotice(ZNotice_t *notice,
-           struct sockaddr_in *from)
-{
-    char *buffer;
-    int len;
-    Code_t retval;
-       
-    if ((retval = ZPeekPacket(&buffer, &len, from)) != ZERR_NONE)
-       return (retval);
-
-    return (ZParseNotice(buffer, len, notice));
-}
diff --git a/zephyr/lib/ZPeekPkt.c b/zephyr/lib/ZPeekPkt.c
deleted file mode 100644 (file)
index 34d7dae..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for ZPeekPacket function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZPeekPkt.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZPeekPacket_c[] = "$Id: ZPeekPkt.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZPeekPacket(char **buffer,
-           int *ret_len,
-           struct sockaddr_in *from)
-{
-    Code_t retval;
-    struct _Z_InputQ *nextq;
-    
-    if ((retval = Z_WaitForComplete()) != ZERR_NONE)
-       return (retval);
-
-    nextq =Z_GetFirstComplete();
-
-    *ret_len = nextq->packet_len;
-    
-    if (!(*buffer = (char *) malloc((unsigned) *ret_len)))
-       return (ENOMEM);
-
-    (void) memcpy(*buffer, nextq->packet, *ret_len);
-
-    if (from)
-       *from = nextq->from;
-       
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZPending.c b/zephyr/lib/ZPending.c
deleted file mode 100644 (file)
index 9a85032..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZPending function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZPending.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZPending_c[] = "$Id: ZPending.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-int
-ZPending(void)
-{
-       int retval;
-       
-       if (ZGetFD() < 0) {
-               errno = ZERR_NOPORT;
-               return (-1);
-       }
-       
-       if ((retval = Z_ReadEnqueue()) != ZERR_NONE) {
-               errno = retval;
-               return (-1);
-       } 
-       
-       return(ZQLength());
-}
diff --git a/zephyr/lib/ZReadAscii.c b/zephyr/lib/ZReadAscii.c
deleted file mode 100644 (file)
index 1a46509..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZReadAscii function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZReadAscii.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987, 1990 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZReadAscii_c[] = "$Id: ZReadAscii.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif /* lint */
-
-#include <internal.h>
-#include <assert.h>
-
-#define Z_cnvt_xtoi(c)  ((temp=(c)-'0'),(temp<10)?temp:((temp-='A'-'9'-1),(temp<16)?temp:-1))
-
-Code_t
-ZReadAscii(char *ptr,
-          int len,
-          unsigned char *field,
-          int num)
-{
-    int i;
-    unsigned int hexbyte;
-    register int c1, c2;
-    register unsigned int temp;
-
-    for (i=0;i<num;i++) {
-       if (len >= 1 && *ptr == ' ') {
-           ptr++;
-           len--;
-       }
-       if (len >= 2 && ptr[0] == '0' && ptr[1] == 'x') {
-           ptr += 2;
-           len -= 2;
-       }
-       if (len < 2)
-           return ZERR_BADFIELD;
-       c1 = Z_cnvt_xtoi(ptr[0]);
-       if (c1 < 0)
-               return ZERR_BADFIELD;
-       c2 = Z_cnvt_xtoi(ptr[1]);
-       if (c2 < 0)
-               return ZERR_BADFIELD;
-       hexbyte = (c1 << 4) | c2;
-       field[i] = hexbyte;
-       ptr += 2;
-       len -= 2;
-    }
-
-    return *ptr ? ZERR_BADFIELD : ZERR_NONE;
-}
-
-Code_t
-ZReadAscii32(char *ptr,
-            int len,
-            unsigned long *value_ptr)
-{
-    unsigned char buf[4];
-    Code_t retval;
-
-    retval = ZReadAscii(ptr, len, buf, 4);
-    if (retval != ZERR_NONE)
-       return retval;
-    *value_ptr = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3];
-    return ZERR_NONE;
-}
-
-Code_t
-ZReadAscii16(char *ptr,
-            int len,
-            unsigned short *value_ptr)
-{
-    unsigned char buf[2];
-    Code_t retval;
-
-    retval = ZReadAscii(ptr, len, buf, 2);
-    if (retval != ZERR_NONE)
-       return retval;
-    *value_ptr = (buf[0] << 8) | buf[1];
-    return ZERR_NONE;
-}
-
diff --git a/zephyr/lib/ZReadZcode.c b/zephyr/lib/ZReadZcode.c
deleted file mode 100644 (file)
index d6251ef..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZReadZcode function.
- *
- *     Created by:     Jeffrey Hutzelman
- *
- *     $Id: ZReadZcode.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987, 1990, 2002 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZReadZcode_c[] = "$Id: ZReadZcode.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif /* lint */
-
-#include <internal.h>
-#include <assert.h>
-
-
-Code_t
-ZReadZcode(unsigned char *ptr,
-          unsigned char *field,
-          int max,
-          int *len)
-{
-    int n = 0;
-
-    if (*ptr++ != 'Z')
-        return ZERR_BADFIELD;
-
-    while (*ptr && n < max) {
-        if (*ptr == 0xff) {
-            ptr++;
-            switch (*ptr++) {
-                case 0xf0: field[n++] = 0x00; continue;
-                case 0xf1: field[n++] = 0xff; continue;
-                default:   return ZERR_BADFIELD;
-            }
-        } else {
-            field[n++] = *ptr++;
-        }
-    }
-    if (*ptr)
-        return (ZERR_BADFIELD);
-    *len = n;
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZRecvNot.c b/zephyr/lib/ZRecvNot.c
deleted file mode 100644 (file)
index a004a85..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for ZReceiveNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZRecvNot.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZReceiveNotice_c[] = "$Id: ZRecvNot.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZReceiveNotice(ZNotice_t *notice,
-              struct sockaddr_in *from)
-{
-    char *buffer;
-    struct _Z_InputQ *nextq;
-    int len, auth;
-    Code_t retval;
-
-    if ((retval = Z_WaitForComplete()) != ZERR_NONE)
-       return (retval);
-
-    nextq = Z_GetFirstComplete();
-
-    len = nextq->packet_len;
-    
-    if (!(buffer = (char *) malloc((unsigned) len)))
-       return (ENOMEM);
-
-    if (from)
-       *from = nextq->from;
-    
-    (void) memcpy(buffer, nextq->packet, len);
-
-    auth = nextq->auth;
-    Z_RemQueue(nextq);
-    
-    if ((retval = ZParseNotice(buffer, len, notice)) != ZERR_NONE)
-       return (retval);
-    notice->z_checked_auth = auth;
-    return ZERR_NONE;
-}
diff --git a/zephyr/lib/ZRecvPkt.c b/zephyr/lib/ZRecvPkt.c
deleted file mode 100644 (file)
index 48d0cb5..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for ZReceivePacket function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZRecvPkt.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZReceivePacket_c[] = "$Id: ZRecvPkt.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZReceivePacket(ZPacket_t buffer,
-              int *ret_len,
-              struct sockaddr_in *from)
-{
-    Code_t retval;
-    struct _Z_InputQ *nextq;
-    
-    if ((retval = Z_WaitForComplete()) != ZERR_NONE)
-       return (retval);
-
-    nextq = Z_GetFirstComplete();
-
-    *ret_len = nextq->packet_len;
-    if (*ret_len > Z_MAXPKTLEN)
-       return (ZERR_PKTLEN);
-    
-    (void) memcpy(buffer, nextq->packet, *ret_len);
-
-    if (from)
-       *from = nextq->from;
-       
-    Z_RemQueue(nextq);
-
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZRetSubs.c b/zephyr/lib/ZRetSubs.c
deleted file mode 100644 (file)
index 098ac56..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZRetrieveSubscriptions and
- * ZRetrieveDefaultSubscriptions functions.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZRetSubs.c 2123 2008-01-20 19:40:42Z kcr $
- *
- *     Copyright (c) 1987,1988,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-
-#ifndef lint
-static const char rcsid_ZRetrieveSubscriptions_c[] =
-    "$Id: ZRetSubs.c 2123 2008-01-20 19:40:42Z kcr $";
-#endif
-
-static Code_t Z_RetSubs (register ZNotice_t *, int *, Z_AuthProc);
-
-/* Need STDC definition when possible for unsigned short argument. */
-Code_t
-ZRetrieveSubscriptions(unsigned short port,
-                      int *nsubs)
-{
-       int retval;
-       ZNotice_t notice;
-       char asciiport[50];
-       
-       if (!port)                      /* use default port */
-           port = __Zephyr_port;
-
-       retval = ZMakeAscii16(asciiport, sizeof(asciiport), ntohs(port));
-       if (retval != ZERR_NONE)
-               return (retval);
-
-       (void) memset((char *)&notice, 0, sizeof(notice));
-       notice.z_message = asciiport;
-       notice.z_message_len = strlen(asciiport)+1;
-       notice.z_opcode = CLIENT_GIMMESUBS;
-
-       return(Z_RetSubs(&notice, nsubs, ZAUTH));
-}
-
-Code_t
-ZRetrieveDefaultSubscriptions(int *nsubs)
-{
-       ZNotice_t notice;
-
-       (void) memset((char *)&notice, 0, sizeof(notice));
-       notice.z_message = (char *) 0;
-       notice.z_message_len = 0;
-       notice.z_opcode = CLIENT_GIMMEDEFS;
-
-       return(Z_RetSubs(&notice, nsubs, ZNOAUTH));
-
-}
-
-static Code_t
-Z_RetSubs(register ZNotice_t *notice,
-         int *nsubs,
-         Z_AuthProc auth_routine)
-{
-       register int i;
-       int retval,nrecv,gimmeack;
-       ZNotice_t retnotice;
-       char *ptr,*end,*ptr2;
-       ZSubscription_t *list = __subscriptions_list;
-
-       retval = ZFlushSubscriptions();
-
-       if (retval != ZERR_NONE && retval != ZERR_NOSUBSCRIPTIONS)
-               return (retval);
-
-       if (ZGetFD() < 0)
-               if ((retval = ZOpenPort((u_short *)0)) != ZERR_NONE)
-                       return (retval);
-
-       notice->z_kind = ACKED;
-       notice->z_port = __Zephyr_port;
-       notice->z_class = ZEPHYR_CTL_CLASS;
-       notice->z_class_inst = ZEPHYR_CTL_CLIENT;
-       notice->z_sender = 0;
-       notice->z_recipient = "";
-       notice->z_default_format = "";
-
-       if ((retval = ZSendNotice(notice,auth_routine)) != ZERR_NONE)
-               return (retval);
-
-       nrecv = 0;
-       gimmeack = 0;
-       list = (ZSubscription_t *) 0;
-
-       while (!nrecv || !gimmeack) {
-               retval = Z_WaitForNotice (&retnotice, ZCompareMultiUIDPred,
-                                         &notice->z_multiuid, SRV_TIMEOUT);
-               if (retval == ZERR_NONOTICE)
-                 return ETIMEDOUT;
-               else if (retval != ZERR_NONE)
-                 return retval;
-
-               if (retnotice.z_kind == SERVNAK) {
-                       ZFreeNotice(&retnotice);
-                       return (ZERR_SERVNAK);
-               }       
-               /* non-matching protocol version numbers means the
-                  server is probably an older version--must punt */
-               if (strcmp(notice->z_version,retnotice.z_version)) {
-                       ZFreeNotice(&retnotice);
-                       return(ZERR_VERS);
-               }
-               if (retnotice.z_kind == SERVACK &&
-                   !strcmp(retnotice.z_opcode,notice->z_opcode)) {
-                       ZFreeNotice(&retnotice);
-                       gimmeack = 1;
-                       continue;
-               } 
-
-               if (retnotice.z_kind != ACKED) {
-                       ZFreeNotice(&retnotice);
-                       return (ZERR_INTERNAL);
-               }
-
-               nrecv++;
-
-               end = retnotice.z_message+retnotice.z_message_len;
-
-               __subscriptions_num = 0;
-               for (ptr=retnotice.z_message;ptr<end;ptr++)
-                       if (!*ptr)
-                               __subscriptions_num++;
-
-               __subscriptions_num = __subscriptions_num / 3;
-
-               list = (ZSubscription_t *)
-                   malloc(__subscriptions_num * sizeof(ZSubscription_t));
-               if (__subscriptions_num && !list) {
-                       ZFreeNotice(&retnotice);
-                       return (ENOMEM);
-               }
-
-               ptr = retnotice.z_message;
-               for (i = 0; i < __subscriptions_num; i++) {
-                       list[i].zsub_class = (char *)
-                           malloc(strlen(ptr) + 1);
-                       if (!list[i].zsub_class) {
-                               ZFreeNotice(&retnotice);
-                               return (ENOMEM);
-                       }
-                       strcpy(list[i].zsub_class, ptr);
-                       ptr += strlen(ptr)+1;
-                       list[i].zsub_classinst = (char *)
-                           malloc(strlen(ptr) + 1);
-                       if (!list[i].zsub_classinst) {
-                               ZFreeNotice(&retnotice);
-                               return (ENOMEM);
-                       }
-                       strcpy(list[i].zsub_classinst, ptr);
-                       ptr += strlen(ptr)+1;
-                       ptr2 = ptr;
-                       list[i].zsub_recipient = (char *)
-                           malloc(strlen(ptr2) + 2);
-                       if (!list[i].zsub_recipient) {
-                               ZFreeNotice(&retnotice);
-                               return (ENOMEM);
-                       }
-                       if (*ptr2 == '@' || *ptr2 == 0) {
-                               *list[i].zsub_recipient = '*';
-                               strcpy(list[i].zsub_recipient + 1, ptr2);
-                       } else {
-                               strcpy(list[i].zsub_recipient, ptr2);
-                       }
-                       ptr += strlen(ptr)+1;
-               }
-               ZFreeNotice(&retnotice);
-       }
-
-       __subscriptions_list = list;
-       __subscriptions_next = 0;
-       *nsubs = __subscriptions_num;
-
-       return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZSendList.c b/zephyr/lib/ZSendList.c
deleted file mode 100644 (file)
index 460cc71..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZSendList function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZSendList.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZSendList_c[] = "$Id: ZSendList.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t ZSendList(ZNotice_t *notice,
-                char *list[],
-                int nitems,
-                Z_AuthProc cert_routine)
-{
-    return(ZSrvSendList(notice, list, nitems, cert_routine, Z_XmitFragment));
-}
-
-Code_t
-ZSrvSendList(ZNotice_t *notice,
-            char *list[],
-            int nitems,
-            Z_AuthProc cert_routine,
-            Code_t (*send_routine)(ZNotice_t *, char *, int, int))
-{
-    Code_t retval;
-    ZNotice_t newnotice;
-    char *buffer;
-    int len;
-
-    if ((retval = ZFormatNoticeList(notice, list, nitems, &buffer, 
-                                   &len, cert_routine)) != ZERR_NONE)
-       return (retval);
-
-    if ((retval = ZParseNotice(buffer, len, &newnotice)) != ZERR_NONE)
-       return (retval);
-    
-    retval = Z_SendFragmentedNotice(&newnotice, len, cert_routine,
-                                   send_routine);
-
-    free(buffer);
-
-    return (retval);
-}
diff --git a/zephyr/lib/ZSendNot.c b/zephyr/lib/ZSendNot.c
deleted file mode 100644 (file)
index aae157a..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZSendNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZSendNot.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZSendNotice_c[] = "$Id: ZSendNot.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZSendNotice(ZNotice_t *notice,
-           Z_AuthProc cert_routine)
-{
-    return(ZSrvSendNotice(notice, cert_routine, Z_XmitFragment));
-}
-
-Code_t
-ZSrvSendNotice(ZNotice_t *notice,
-              Z_AuthProc cert_routine,
-              Code_t (*send_routine)(ZNotice_t *, char *, int, int))
-{    
-    Code_t retval;
-    ZNotice_t newnotice;
-    char *buffer;
-    int len;
-
-    if ((retval = ZFormatNotice(notice, &buffer, &len, 
-                               cert_routine)) != ZERR_NONE)
-       return (retval);
-
-    if ((retval = ZParseNotice(buffer, len, &newnotice)) != ZERR_NONE)
-       return (retval);
-    
-    retval = Z_SendFragmentedNotice(&newnotice, len, cert_routine,
-                                   send_routine);
-
-    free(buffer);
-
-    return (retval);
-}
diff --git a/zephyr/lib/ZSendPkt.c b/zephyr/lib/ZSendPkt.c
deleted file mode 100644 (file)
index fbeb0b1..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZSendPacket function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZSendPkt.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZSendPacket_c[] =
-    "$Zephyr: /mit/zephyr/src/lib/RCS/ZSendPacket.c,v 1.29 91/03/21 11:57:08 raeburn Exp $";
-#endif
-
-#include <internal.h>
-#include <sys/socket.h>
-
-static int wait_for_hmack(ZNotice_t *, void *);
-
-Code_t
-ZSendPacket(char *packet,
-           int len,
-           int waitforack)
-{
-    Code_t retval;
-    struct sockaddr_in dest;
-    ZNotice_t notice, acknotice;
-       
-    if (!packet || len < 0)
-       return (ZERR_ILLVAL);
-
-    if (len > Z_MAXPKTLEN)
-       return (ZERR_PKTLEN);
-    
-    if (ZGetFD() < 0)
-       if ((retval = ZOpenPort((u_short *)0)) != ZERR_NONE)
-           return (retval);
-
-    dest = ZGetDestAddr();
-       
-    if (sendto(ZGetFD(), packet, len, 0, (struct sockaddr *)&dest,
-              sizeof(dest)) < 0)
-       return (errno);
-
-    if (!waitforack)
-       return (ZERR_NONE);
-
-    if ((retval = ZParseNotice(packet, len, &notice)) != ZERR_NONE)
-       return (retval);
-    
-    retval = Z_WaitForNotice(&acknotice, wait_for_hmack, &notice.z_uid,
-                            HM_TIMEOUT);
-    if (retval == ETIMEDOUT)
-      return ZERR_HMDEAD;
-    if (retval == ZERR_NONE)
-      ZFreeNotice (&acknotice);
-    return retval;
-}
-
-static int
-wait_for_hmack(ZNotice_t *notice,
-              void *uid)
-{
-    return (notice->z_kind == HMACK && ZCompareUID(&notice->z_uid, (ZUnique_Id_t *)uid));
-}
diff --git a/zephyr/lib/ZSendRLst.c b/zephyr/lib/ZSendRLst.c
deleted file mode 100644 (file)
index e251658..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZSendRawNotice function.
- *
- *     Created by:     John T. Kohl
- *
- *     $Id: ZSendRLst.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZSendRawList_c[] = "$Id: ZSendRLst.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t ZSendRawList(ZNotice_t *notice,
-                   char *list[],
-                   int nitems)
-{
-    return(ZSrvSendRawList(notice, list, nitems, Z_XmitFragment));
-}
-
-Code_t ZSrvSendRawList(ZNotice_t *notice,
-                      char *list[],
-                      int nitems,
-                      Code_t (*send_routine)(ZNotice_t *, char *, int, int))
-{
-    Code_t retval;
-    ZNotice_t newnotice;
-    char *buffer;
-    int len;
-
-    if ((retval = ZFormatRawNoticeList(notice, list, nitems, &buffer, 
-                                      &len)) != ZERR_NONE)
-       return (retval);
-
-    if ((retval = ZParseNotice(buffer, len, &newnotice)) != ZERR_NONE)
-       return (retval);
-    
-    retval = Z_SendFragmentedNotice(&newnotice, len, NULL, send_routine);
-
-    free(buffer);
-
-    return (retval);
-}
diff --git a/zephyr/lib/ZSendRaw.c b/zephyr/lib/ZSendRaw.c
deleted file mode 100644 (file)
index 01e33ff..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZSendRawNotice function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZSendRaw.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZSendRawNotice_c[] = "$Id: ZSendRaw.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZSendRawNotice(ZNotice_t *notice)
-{
-    Code_t retval;
-    ZNotice_t newnotice;
-    char *buffer;
-    int len;
-
-    if ((retval = ZFormatRawNotice(notice, &buffer, &len)) !=
-       ZERR_NONE)
-       return (retval);
-
-    if ((retval = ZParseNotice(buffer, len, &newnotice)) != ZERR_NONE)
-       return (retval);
-    
-    retval = Z_SendFragmentedNotice(&newnotice, len, NULL, Z_XmitFragment);
-
-    free(buffer);
-
-    return (retval);
-}
diff --git a/zephyr/lib/ZSetDest.c b/zephyr/lib/ZSetDest.c
deleted file mode 100644 (file)
index 1e477f2..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZSetDestAddr function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZSetDest.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZSetDestAddr_c[] = "$Id: ZSetDest.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZSetDestAddr(struct sockaddr_in *addr)
-{
-       __HM_addr = *addr;
-
-       __HM_set = 1;
-       
-       return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZSetFD.c b/zephyr/lib/ZSetFD.c
deleted file mode 100644 (file)
index 1ec2b5e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZSetFD function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZSetFD.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZSetFD_c[] = "$Id: ZSetFD.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZSetFD(int fd)
-{
-       (void) ZClosePort();
-
-       __Zephyr_fd = fd;
-       __Zephyr_open = 0;
-       
-       return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZSetSrv.c b/zephyr/lib/ZSetSrv.c
deleted file mode 100644 (file)
index 460bc7b..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZSetServerState function.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZSetSrv.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZSetServerState_c[] = "$Id: ZSetSrv.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-Code_t
-ZSetServerState(int state)
-{
-       __Zephyr_server = state;
-       
-       return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZSubs.c b/zephyr/lib/ZSubs.c
deleted file mode 100644 (file)
index 8dff8c7..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZSubscribeTo, ZUnsubscribeTo, and
- * ZCancelSubscriptions functions.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZSubs.c 2295 2009-03-15 22:13:16Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-
-#ifndef lint
-static const char rcsid_ZSubscriptions_c[] = "$Id: ZSubs.c 2295 2009-03-15 22:13:16Z kcr $";
-#endif
-
-static Code_t Z_Subscriptions(register ZSubscription_t *sublist,
-                             int nitems, unsigned int port,
-                             char *opcode, int authit);
-static Code_t subscr_sendoff(ZNotice_t *notice, char **lyst, int num,
-                            int authit);
-
-#ifdef CMU_ZCTL_PUNT
-Code_t
-ZPunt(ZSubscription_t *sublist,
-      int nitems,
-      unsigned int port)
-{
-    return (Z_Subscriptions(sublist, nitems, port, "SUPPRESS", 1));
-}
-#endif
-
-Code_t
-ZSubscribeTo(ZSubscription_t *sublist,
-            int nitems,
-            unsigned int port)
-{
-    return (Z_Subscriptions(sublist, nitems, port, CLIENT_SUBSCRIBE, 1));
-}
-
-Code_t
-ZSubscribeToSansDefaults(ZSubscription_t *sublist,
-                        int nitems,
-                        unsigned int port)
-{
-    return (Z_Subscriptions(sublist, nitems, port, CLIENT_SUBSCRIBE_NODEFS,
-                           1));
-}
-
-Code_t
-ZUnsubscribeTo(ZSubscription_t *sublist,
-              int nitems,
-              unsigned int port)
-{
-    return (Z_Subscriptions(sublist, nitems, port, CLIENT_UNSUBSCRIBE, 1));
-}
-
-Code_t
-ZCancelSubscriptions(unsigned int port)
-{
-    return (Z_Subscriptions((ZSubscription_t *)0, 0, port,
-                           CLIENT_CANCELSUB, 0));
-}
-
-/*
- * This routine must do its own fragmentation.  Subscriptions must
- * not be broken across packet boundaries, or else the server will
- * mis-interpret them.
- */
-
-static Code_t
-Z_Subscriptions(register ZSubscription_t *sublist,
-               int nitems,
-               unsigned int port,
-               char *opcode,
-               int authit)
-{
-    register int i, j;
-    int retval;
-    ZNotice_t notice;
-    char header[Z_MAXHEADERLEN];
-    char **list;
-    char *recip;
-    int hdrlen;
-    int size_avail = Z_MAXPKTLEN-Z_FRAGFUDGE; /* space avail for data,
-                                                adjusted below */
-    int size, start, numok;
-
-    /* nitems = 0 means cancel all subscriptions; still need to allocate a */
-    /* array for one item so we can cancel, however. */
-  
-    list = (char **)malloc((unsigned)((nitems==0)?1:nitems)*3*sizeof(char *));
-    if (!list)
-        return (ENOMEM);
-
-    (void) memset((char *)&notice, 0, sizeof(notice));
-    notice.z_kind = ACKED;
-    notice.z_port = port;
-    notice.z_class = ZEPHYR_CTL_CLASS;
-    notice.z_class_inst = ZEPHYR_CTL_CLIENT;
-    notice.z_opcode = opcode;
-    notice.z_sender = 0;
-    notice.z_recipient = "";
-    notice.z_default_format = "";
-    notice.z_message_len = 0;
-
-    /* format the header to figure out how long it is */
-    retval = Z_FormatHeader(&notice, header, sizeof(header), &hdrlen, ZAUTH);
-    if (retval != ZERR_NONE && !authit)
-       retval = Z_FormatHeader(&notice, header, sizeof(header),
-                               &hdrlen, ZNOAUTH);
-    if (retval != ZERR_NONE) {
-       free((char *)list);
-       return(retval);
-    }
-
-    /* compute amount of room left */
-    size_avail -= hdrlen;
-    size = size_avail;
-
-    /* assemble subs into an array of pointers */
-    for (i=0;i<nitems;i++) {
-       list[i*3] = sublist[i].zsub_class;
-       list[i*3+1] = sublist[i].zsub_classinst;
-       recip = sublist[i].zsub_recipient;
-       if (recip && *recip == '*')
-           recip++;
-       if (!recip || (*recip != 0 && *recip != '@'))
-           recip = ZGetSender();
-       list[i*3+2] = recip;
-    }
-
-    start = -1;
-    i = 0;
-    numok = 0;
-    if (!nitems) {
-       /* there aren't really any, but we need to xmit anyway */
-       retval = subscr_sendoff(&notice, list, 0, authit);
-       free((char *)list);
-       return(retval);
-    }
-    while(i < nitems) {
-       if (start == -1) {
-           size = size_avail;
-           start = i;
-           numok = 0;
-       }
-       if ((j = strlen(list[i*3])
-            + strlen(list[i*3+1])
-            + strlen(list[i*3+2]) + 3) <= size) {
-           /* it will fit in this packet */
-           size -= j;
-           numok++;
-           i++;
-           continue;
-       }
-       if (!numok) {                   /* a single subscription won't
-                                          fit into one packet */
-           free((char *)list);
-           return(ZERR_FIELDLEN);
-       }
-       retval = subscr_sendoff(&notice, &list[start*3], numok, authit);
-       if (retval) {
-           free((char *)list);
-           return(retval);
-       }
-       start = -1;
-    }
-    if (numok)
-       retval = subscr_sendoff(&notice, &list[start*3], numok, authit);
-    free((char *)list);
-    return(retval);
-}
-
-static Code_t
-subscr_sendoff(ZNotice_t *notice,
-              char **lyst,
-              int num,
-              int authit)
-{
-    register Code_t retval;
-    ZNotice_t retnotice;
-
-    retval = ZSendList(notice, lyst, num*3, ZAUTH);
-    if (retval != ZERR_NONE && !authit)
-       retval = ZSendList(notice, lyst, num*3, ZNOAUTH);
-       
-    if (retval != ZERR_NONE)
-       return (retval);
-    if ((retval = ZIfNotice(&retnotice, (struct sockaddr_in *)0, 
-                               ZCompareUIDPred, (char *)&notice->z_uid)) !=
-       ZERR_NONE)
-       return (retval);
-    if (retnotice.z_kind == SERVNAK) {
-       ZFreeNotice(&retnotice);
-       return (ZERR_SERVNAK);
-    }
-    if (retnotice.z_kind != SERVACK) {
-       ZFreeNotice(&retnotice);
-       return (ZERR_INTERNAL);
-    }
-    ZFreeNotice(&retnotice);
-    return (ZERR_NONE);
-}
diff --git a/zephyr/lib/ZVariables.c b/zephyr/lib/ZVariables.c
deleted file mode 100644 (file)
index 6a9a73a..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZGetVariable, ZSetVariable, and ZUnsetVariable
- * functions.
- *
- *     Created by:     Robert French
- *
- *     $Id: ZVariables.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_ZVariables_c[] = "$Id: ZVariables.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-
-#include <ctype.h>
-#include <pwd.h>
-
-static int get_localvarfile(char *bfr);
-static char *get_varval(char *fn, char *val);
-static int varline(char *bfr, char *var);
-
-char *
-ZGetVariable(char *var)
-{
-    char varfile[128], *ret;
-
-    if (get_localvarfile(varfile))
-       return ((char *)0);
-
-    if ((ret = get_varval(varfile, var)) != ZERR_NONE)
-       return (ret);
-
-    sprintf(varfile, "%s/zephyr/zephyr.vars", SYSCONFDIR);
-    return (get_varval(varfile, var));
-}
-
-Code_t
-ZSetVariable(char *var, char *value)
-{
-    int written;
-    FILE *fpin, *fpout;
-    char varfile[128], varfilebackup[128], varbfr[512];
-
-    written = 0;
-       
-    if (get_localvarfile(varfile))
-       return (ZERR_INTERNAL);
-
-    (void) strcpy(varfilebackup, varfile);
-    (void) strcat(varfilebackup, ".backup");
-       
-    if (!(fpout = fopen(varfilebackup, "w")))
-       return (errno);
-    if ((fpin = fopen(varfile, "r")) != NULL) {
-       while (fgets(varbfr, sizeof varbfr, fpin) != (char *) 0) {
-           if (varbfr[strlen(varbfr)-1] < ' ')
-               varbfr[strlen(varbfr)-1] = '\0';
-           if (varline(varbfr, var)) {
-               fprintf(fpout, "%s = %s\n", var, value);
-               written = 1;
-           }
-           else
-               fprintf(fpout, "%s\n", varbfr);
-       }
-       (void) fclose(fpin);            /* don't care about errs on input */
-    } 
-    if (!written)
-       fprintf(fpout, "%s = %s\n", var, value);
-    if (fclose(fpout) == EOF)
-           return(EIO);                /* can't rely on errno */
-    if (rename(varfilebackup, varfile))
-       return (errno);
-    return (ZERR_NONE);
-}      
-
-Code_t
-ZUnsetVariable(char *var)
-{
-    FILE *fpin, *fpout;
-    char varfile[128], varfilebackup[128], varbfr[512];
-
-    if (get_localvarfile(varfile))
-       return (ZERR_INTERNAL);
-
-    (void) strcpy(varfilebackup, varfile);
-    (void) strcat(varfilebackup, ".backup");
-       
-    if (!(fpout = fopen(varfilebackup, "w")))
-       return (errno);
-    if ((fpin = fopen(varfile, "r")) != NULL) {
-       while (fgets(varbfr, sizeof varbfr, fpin) != (char *) 0) {
-           if (varbfr[strlen(varbfr)-1] < ' ')
-               varbfr[strlen(varbfr)-1] = '\0';
-           if (!varline(varbfr, var))
-               fprintf(fpout, "%s\n", varbfr);
-       }
-       (void) fclose(fpin);            /* don't care about read close errs */
-    } 
-    if (fclose(fpout) == EOF)
-           return(EIO);                /* errno isn't reliable */
-    if (rename(varfilebackup, varfile))
-       return (errno);
-    return (ZERR_NONE);
-}      
-
-static int
-get_localvarfile(char *bfr)
-{
-    char *envptr;
-    struct passwd *pwd;
-
-    envptr = getenv("ZEPHYR_VARS");
-    if (envptr)
-       (void) strcpy(bfr, envptr);
-    else {
-       envptr = getenv("HOME");
-       if (envptr)
-           (void) strcpy(bfr, envptr);
-       else {
-           if (!(pwd = getpwuid((int) getuid()))) {
-               fprintf(stderr, "Zephyr internal failure: Can't determine your home directory.\n");
-               return (1);
-           }
-           (void) strcpy(bfr, pwd->pw_dir);
-       }
-
-       (void) strcat(bfr, "/");
-       (void) strcat(bfr, ".zephyr.vars");
-    }
-    return (0);
-} 
-       
-static char *
-get_varval(char *fn, char *var)
-{
-    FILE *fp;
-    static char varbfr[512];
-    int i;
-       
-    fp = fopen(fn, "r");
-    if (!fp)
-       return ((char *)0);
-
-    while (fgets(varbfr, sizeof varbfr, fp) != (char *) 0) {
-       if (varbfr[strlen(varbfr)-1] < ' ')
-           varbfr[strlen(varbfr)-1] = '\0';
-       if (!(i = varline(varbfr, var)))
-           continue;
-       (void) fclose(fp);              /* open read-only, don't care */
-       return (varbfr+i);
-    }
-    (void) fclose(fp);                 /* open read-only, don't care */
-    return ((char *)0);
-}
-
-/* If the variable in the line bfr[] is the same as var, return index to
-   the variable value, else return 0. */
-static int
-varline(char *bfr, char *var)
-{
-    register char *cp;
-       
-
-    if (!bfr[0] || bfr[0] == '#')      /* comment or null line */
-       return (0);
-       
-    cp = bfr;
-    while (*cp && !isspace(*cp) && (*cp != '='))
-       cp++;
-
-#define max(a,b) ((a > b) ? (a) : (b))
-
-    if (strncasecmp(bfr, var, max(strlen(var),cp - bfr)))
-       return(0);                      /* var is not the var in
-                                          bfr ==> no match */
-
-    cp = strchr(bfr, '=');
-    if (!cp)
-       return(0);
-    cp++;
-    while (*cp && isspace(*cp))                /* space up to variable value */
-       cp++;
-
-    return (cp - bfr);                 /* return index */
-}
diff --git a/zephyr/lib/ZWait4Not.c b/zephyr/lib/ZWait4Not.c
deleted file mode 100644 (file)
index 56de377..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains the ZCheckIfNotice/select loop used for waiting for
- * a notice, with a timeout.
- *
- *     Created by:     <Joe Random Hacker>
- *
- *     $Id: ZWait4Not.c 2135 2008-01-21 03:39:30Z kcr $
- *
- *     Copyright (c) 1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include "mit-copyright.h"
-
-#ifndef lint
-static const char rcsid_ZWaitForNotice_c[] = "$Id: ZWait4Not.c 2135 2008-01-21 03:39:30Z kcr $";
-#endif
-
-#include <internal.h>
-#include <sys/socket.h>
-
-Code_t
-Z_WaitForNotice(ZNotice_t *notice,
-               int (*pred) __P((ZNotice_t *, void *)),
-               void *arg,
-               int timeout)
-{
-  Code_t retval;
-  struct timeval tv, t0;
-  fd_set fdmask;
-  int i, fd;
-
-  retval = ZCheckIfNotice (notice, (struct sockaddr_in *) 0, pred,
-                          (char *) arg);
-  if (retval == ZERR_NONE)
-    return ZERR_NONE;
-  if (retval != ZERR_NONOTICE)
-    return retval;
-
-  fd = ZGetFD ();
-  FD_ZERO (&fdmask);
-  tv.tv_sec = timeout;
-  tv.tv_usec = 0;
-  gettimeofday (&t0, (struct timezone *) 0);
-  t0.tv_sec += timeout;
-  while (1) {
-    FD_SET (fd, &fdmask);
-    i = select (fd + 1, &fdmask, (fd_set *) 0, (fd_set *) 0, &tv);
-    if (i == 0)
-      return ETIMEDOUT;
-    if (i < 0 && errno != EINTR)
-      return errno;
-    if (i > 0) {
-      retval = ZCheckIfNotice (notice, (struct sockaddr_in *) 0, pred,
-                              (char *) arg);
-      if (retval != ZERR_NONOTICE) /* includes ZERR_NONE */
-       return retval;
-    }
-    gettimeofday (&tv, (struct timezone *) 0);
-    tv.tv_usec = t0.tv_usec - tv.tv_usec;
-    if (tv.tv_usec < 0) {
-      tv.tv_usec += 1000000;
-      tv.tv_sec = t0.tv_sec - tv.tv_sec - 1;
-    }
-    else
-      tv.tv_sec = t0.tv_sec - tv.tv_sec;
-  }
-  /*NOTREACHED*/
-}
diff --git a/zephyr/lib/ZhmStat.c b/zephyr/lib/ZhmStat.c
deleted file mode 100644 (file)
index dae8a46..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains the ZhmStat() function.
- *
- *      Created by:     Marc Horowitz
- *
- *      $Id: ZhmStat.c 2123 2008-01-20 19:40:42Z kcr $
- *
- *      Copyright (c) 1996 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h". 
- */
-
-#include <internal.h>
-#include <sys/socket.h>
-
-#ifndef INADDR_LOOPBACK
-#define INADDR_LOOPBACK 0x7f000001
-#endif
-
-Code_t
-ZhmStat(struct in_addr *hostaddr,
-       ZNotice_t *notice)
-{
-    struct servent *sp;
-    struct sockaddr_in sin;
-    ZNotice_t req;
-    Code_t code;
-    struct timeval tv;
-    fd_set readers;
-
-    (void) memset((char *)&sin, 0, sizeof(struct sockaddr_in));
-
-    sp = getservbyname(HM_SVCNAME, "udp");
-
-    sin.sin_port = (sp) ? sp->s_port : HM_SVC_FALLBACK;
-    sin.sin_family = AF_INET;
-
-    if (hostaddr)
-       sin.sin_addr = *hostaddr;
-    else
-       sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
-
-    (void) memset((char *)&req, 0, sizeof(req));
-    req.z_kind = STAT;
-    req.z_port = 0;
-    req.z_class = HM_STAT_CLASS;
-    req.z_class_inst = HM_STAT_CLIENT;
-    req.z_opcode = HM_GIMMESTATS;
-    req.z_sender = "";
-    req.z_recipient = "";
-    req.z_default_format = "";
-    req.z_message_len = 0;
-       
-    if ((code = ZSetDestAddr(&sin)) != ZERR_NONE)
-       return(code);
-
-    if ((code = ZSendNotice(&req, ZNOAUTH)) != ZERR_NONE)
-       return(code);
-
-    /* Wait up to ten seconds for a response. */
-    FD_ZERO(&readers);
-    FD_SET(ZGetFD(), &readers);
-    tv.tv_sec = 10;
-    tv.tv_usec = 0;
-    code = select(ZGetFD() + 1, &readers, NULL, NULL, &tv);
-    if (code < 0 && errno != EINTR)
-       return(errno);
-    if (code == 0 || (code < 0 && errno == EINTR) || ZPending() == 0)
-       return(ZERR_HMDEAD);
-
-    return(ZReceiveNotice(notice, (struct sockaddr_in *) 0));
-}
diff --git a/zephyr/lib/Zinternal.c b/zephyr/lib/Zinternal.c
deleted file mode 100644 (file)
index 75eedaf..0000000
+++ /dev/null
@@ -1,1521 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the internal Zephyr routines.
- *
- *     Created by:     Robert French
- *
- *     $Id: Zinternal.c 2343 2009-03-23 13:50:35Z kcr $
- *
- *     Copyright (c) 1987,1988,1991 by the Massachusetts Institute of
- *     Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <internal.h>
-#include <arpa/inet.h>
-#include <sys/socket.h>
-#include <utmp.h>
-
-#ifndef lint
-static const char rcsid_Zinternal_c[] =
-  "$Id: Zinternal.c 2343 2009-03-23 13:50:35Z kcr $";
-static const char copyright[] =
-  "Copyright (c) 1987,1988,1991 by the Massachusetts Institute of Technology.";
-#endif
-
-int __Zephyr_fd = -1;
-int __Zephyr_open;
-int __Zephyr_port = -1;
-struct in_addr __My_addr;
-int __Q_CompleteLength;
-int __Q_Size;
-struct _Z_InputQ *__Q_Head, *__Q_Tail;
-struct sockaddr_in __HM_addr;
-struct sockaddr_in __HM_addr_real;
-int __HM_set;
-int __Zephyr_server;
-ZLocations_t *__locate_list;
-int __locate_num;
-int __locate_next;
-ZSubscription_t *__subscriptions_list;
-int __subscriptions_num;
-int __subscriptions_next;
-int Z_discarded_packets = 0;
-
-#ifdef HAVE_KRB5
-/* This context is used throughout */
-krb5_context Z_krb5_ctx;
-
-static struct cksum_map_s {
-  krb5_enctype e;
-  krb5_cksumtype c;
-} cksum_map[] = {
-  /* per RFC1510 and draft-ietf-krb-wg-crypto-02.txt */
-  { ENCTYPE_NULL,                     CKSUMTYPE_RSA_MD5 },
-  { ENCTYPE_DES_CBC_CRC,              CKSUMTYPE_RSA_MD5_DES },
-  { ENCTYPE_DES_CBC_MD4,              CKSUMTYPE_RSA_MD4_DES },
-  { ENCTYPE_DES_CBC_MD5,              CKSUMTYPE_RSA_MD5_DES },
-
-  /* 
-   * The implementors hate us, and are inconsistent with names for
-   * most things defined after RFC1510.  Note that des3-cbc-sha1
-   * and des3-cbc-sha1-kd are listed by number to avoid confusion 
-   * caused by inconsistency between the names used in the specs
-   * and those used by implementations.
-   * -- jhutz, 30-Nov-2002
-   */
-
-  /* source lost in history (an expired internet-draft) */
-  { 5 /* des3-cbc-md5 */,             9  /* rsa-md5-des3 */ },
-  { 7 /* des3-cbc-sha1 */,            13 /* hmac-sha1-des3 */ },
-
-  /* per draft-ietf-krb-wg-crypto-02.txt */
-  { 16 /* des3-cbc-sha1-kd */,        12 /* hmac-sha1-des3-kd */ },
-
-  /* per draft-raeburn-krb-rijndael-krb-02.txt */
-  { 17 /* aes128-cts-hmac-sha1-96 */, 15 /* hmac-sha1-96-aes128 */ },
-  { 18 /* aes256-cts-hmac-sha1-96 */, 16 /* hmac-sha1-96-aes256 */ },
-
-  /* per draft-brezak-win2k-krb-rc4-hmac-04.txt */
-  { 23 /* rc4-hmac */,                -138 /* hmac-md5 */ },
-  { 24 /* rc4-hmac-exp */,            -138 /* hmac-md5 */ },
-};
-#define N_CKSUM_MAP (sizeof(cksum_map) / sizeof(struct cksum_map_s))
-
-Code_t
-Z_krb5_lookup_cksumtype(krb5_enctype e,
-                       krb5_cksumtype *c)
-{
-  int i;
-
-  for (i = 0; i < N_CKSUM_MAP; i++) {
-    if (cksum_map[i].e == e) {
-      *c = cksum_map[i].c;
-      return ZERR_NONE;
-    }
-  }
-  return KRB5_PROG_ETYPE_NOSUPP;
-}
-#endif /* HAVE_KRB5 */
-
-char __Zephyr_realm[REALM_SZ];
-
-#ifdef Z_DEBUG
-void (*__Z_debug_print)(const char *fmt, va_list args, void *closure);
-void *__Z_debug_print_closure;
-#endif
-
-#define min(a,b) ((a)<(b)?(a):(b))
-
-static int Z_AddField(char **ptr, char *field, char *end);
-static int find_or_insert_uid(ZUnique_Id_t *uid, ZNotice_Kind_t kind);
-static Code_t Z_ZcodeFormatRawHeader(ZNotice_t *, char *, int, int *, char **, 
-                                    int *, char **, char **, int cksumtype);
-
-/* Find or insert uid in the old uids buffer.  The buffer is a sorted
- * circular queue.  We make the assumption that most packets arrive in
- * order, so we can usually search for a uid or insert it into the buffer
- * by looking back just a few entries from the end.  Since this code is
- * only executed by the client, the implementation isn't microoptimized. */
-static int
-find_or_insert_uid(ZUnique_Id_t *uid,
-                  ZNotice_Kind_t kind)
-{
-    static struct _filter {
-       ZUnique_Id_t    uid;
-       ZNotice_Kind_t  kind;
-       time_t          t;
-    } *buffer;
-    static long size;
-    static long start;
-    static long num;
-
-    time_t now;
-    struct _filter *new;
-    long i, j, new_size;
-    int result;
-
-    /* Initialize the uid buffer if it hasn't been done already. */
-    if (!buffer) {
-       size = Z_INITFILTERSIZE;
-       buffer = (struct _filter *) malloc(size * sizeof(*buffer));
-       if (!buffer)
-           return 0;
-    }
-
-    /* Age the uid buffer, discarding any uids older than the clock skew. */
-    time(&now);
-    while (num && (now - buffer[start % size].t) > CLOCK_SKEW)
-       start++, num--;
-    start %= size;
-
-    /* Make room for a new uid, since we'll probably have to insert one. */
-    if (num == size) {
-       new_size = size * 2 + 2;
-       new = (struct _filter *) malloc(new_size * sizeof(*new));
-       if (!new)
-           return 0;
-       for (i = 0; i < num; i++)
-           new[i] = buffer[(start + i) % size];
-       free(buffer);
-       buffer = new;
-       size = new_size;
-       start = 0;
-    }
-
-    /* Search for this uid in the buffer, starting from the end. */
-    for (i = start + num - 1; i >= start; i--) {
-       result = memcmp(uid, &buffer[i % size].uid, sizeof(*uid));
-       if (result == 0 && buffer[i % size].kind == kind)
-           return 1;
-       if (result > 0)
-           break;
-    }
-
-    /* We didn't find it; insert the uid into the buffer after i. */
-    i++;
-    for (j = start + num; j > i; j--)
-       buffer[j % size] = buffer[(j - 1) % size];
-    buffer[i % size].uid = *uid;
-    buffer[i % size].kind = kind;
-    buffer[i % size].t = now;
-    num++;
-
-    return 0;
-}
-
-
-/* Return 1 if there is a packet waiting, 0 otherwise */
-
-int
-Z_PacketWaiting(void)
-{
-    struct timeval tv;
-    fd_set read;
-
-    tv.tv_sec = tv.tv_usec = 0;
-    FD_ZERO(&read);
-    FD_SET(ZGetFD(), &read);
-    return (select(ZGetFD() + 1, &read, NULL, NULL, &tv));
-} 
-
-
-/* Wait for a complete notice to become available */
-
-Code_t
-Z_WaitForComplete(void)
-{
-    Code_t retval;
-
-    if (__Q_CompleteLength)
-       return (Z_ReadEnqueue());
-
-    while (!__Q_CompleteLength)
-       if ((retval = Z_ReadWait()) != ZERR_NONE)
-           return (retval);
-
-    return (ZERR_NONE);
-}
-
-
-/* Read any available packets and enqueue them */
-
-Code_t
-Z_ReadEnqueue(void)
-{
-    Code_t retval;
-
-    if (ZGetFD() < 0)
-       return (ZERR_NOPORT);
-    
-    while (Z_PacketWaiting())
-       if ((retval = Z_ReadWait()) != ZERR_NONE)
-           return (retval);
-
-    return (ZERR_NONE);
-}
-
-
-/*
- * Search the queue for a notice with the proper multiuid - remove any
- * notices that haven't been touched in a while
- */
-
-struct _Z_InputQ *
-Z_SearchQueue(ZUnique_Id_t *uid,
-             ZNotice_Kind_t kind)
-{
-    register struct _Z_InputQ *qptr;
-    struct _Z_InputQ *next;
-    struct timeval tv;
-
-    (void) gettimeofday(&tv, (struct timezone *)0);
-
-    qptr = __Q_Head;
-
-    while (qptr) {
-       if (ZCompareUID(uid, &qptr->uid) && qptr->kind == kind)
-           return (qptr);
-       next = qptr->next;
-       if (qptr->timep && (qptr->timep+Z_NOTICETIMELIMIT < tv.tv_sec))
-           Z_RemQueue(qptr);
-       qptr = next;
-    }
-    return (NULL);
-}
-
-/*
- * Now we delve into really convoluted queue handling and
- * fragmentation reassembly algorithms and other stuff you probably
- * don't want to look at...
- *
- * This routine does NOT guarantee a complete packet will be ready when it
- * returns.
- */
-
-Code_t
-Z_ReadWait(void)
-{
-    register struct _Z_InputQ *qptr;
-    ZNotice_t notice;
-    ZPacket_t packet;
-    struct sockaddr_in olddest, from;
-    unsigned int from_len;
-    int packet_len, zvlen, part, partof;
-    char *slash;
-    Code_t retval;
-    fd_set fds;
-    struct timeval tv;
-
-    if (ZGetFD() < 0)
-       return (ZERR_NOPORT);
-       
-    FD_ZERO(&fds);
-    FD_SET(ZGetFD(), &fds);
-    tv.tv_sec = 60;
-    tv.tv_usec = 0;
-
-    if (select(ZGetFD() + 1, &fds, NULL, NULL, &tv) < 0)
-      return (errno);
-    if (!FD_ISSET(ZGetFD(), &fds))
-      return ETIMEDOUT;
-
-    from_len = sizeof(struct sockaddr_in);
-
-    packet_len = recvfrom(ZGetFD(), packet, sizeof(packet), 0, 
-                         (struct sockaddr *)&from, &from_len);
-
-    if (packet_len < 0)
-       return (errno);
-
-    if (!packet_len)
-       return (ZERR_EOF);
-
-    /* Ignore obviously non-Zephyr packets. */
-    zvlen = sizeof(ZVERSIONHDR) - 1;
-    if (packet_len < zvlen || memcmp(packet, ZVERSIONHDR, zvlen) != 0) {
-       Z_discarded_packets++;
-       return (ZERR_NONE);
-    }  
-
-    /* Parse the notice */
-    if ((retval = ZParseNotice(packet, packet_len, &notice)) != ZERR_NONE)
-       return (retval);
-
-    /*
-     * If we're not a server and the notice is of an appropriate kind,
-     * send back a CLIENTACK to whoever sent it to say we got it.
-     */
-    if (!__Zephyr_server) {
-       if (notice.z_kind != HMACK && notice.z_kind != SERVACK &&
-           notice.z_kind != SERVNAK && notice.z_kind != CLIENTACK) {
-           ZNotice_t tmpnotice;
-           ZPacket_t pkt;
-           int len;
-
-           tmpnotice = notice;
-           tmpnotice.z_kind = CLIENTACK;
-           tmpnotice.z_message_len = 0;
-           olddest = __HM_addr;
-           __HM_addr = from;
-           if ((retval = ZFormatSmallRawNotice(&tmpnotice, pkt, &len))
-               != ZERR_NONE)
-               return(retval);
-           if ((retval = ZSendPacket(pkt, len, 0)) != ZERR_NONE)
-               return (retval);
-           __HM_addr = olddest;
-       }
-       if (find_or_insert_uid(&notice.z_uid, notice.z_kind))
-           return(ZERR_NONE);
-
-       /* Check authentication on the notice. */
-       notice.z_checked_auth = ZCheckAuthentication(&notice, &from);
-    }
-
-
-    /*
-     * Parse apart the z_multinotice field - if the field is blank for
-     * some reason, assume this packet stands by itself.
-     */
-    slash = strchr(notice.z_multinotice, '/');
-    if (slash) {
-       part = atoi(notice.z_multinotice);
-       partof = atoi(slash+1);
-       if (part > partof || partof == 0) {
-           part = 0;
-           partof = notice.z_message_len;
-       }
-    }
-    else {
-       part = 0;
-       partof = notice.z_message_len;
-    }
-
-    /* Too big a packet...just ignore it! */
-    if (partof > Z_MAXNOTICESIZE)
-       return (ZERR_NONE);
-
-    /*
-     * If we aren't a server and we can find a notice in the queue
-     * with the same multiuid field, insert the current fragment as
-     * appropriate.
-     */
-    switch (notice.z_kind) {
-    case SERVACK:
-    case SERVNAK:
-       /* The SERVACK and SERVNAK replies shouldn't be reassembled
-          (they have no parts).  Instead, we should hold on to the reply
-          ONLY if it's the first part of a fragmented message, i.e.
-          multi_uid == uid.  This allows programs to wait for the uid
-          of the first packet, and get a response when that notice
-          arrives.  Acknowledgements of the other fragments are discarded
-          (XXX we assume here that they all carry the same information
-          regarding failure/success)
-        */
-       if (!__Zephyr_server &&
-           !ZCompareUID(&notice.z_multiuid, &notice.z_uid))
-           /* they're not the same... throw away this packet. */
-           return(ZERR_NONE);
-       /* fall thru & process it */
-    default:
-       /* for HMACK types, we assume no packet loss (local loopback
-          connections).  The other types can be fragmented and MUST
-          run through this code. */
-       if (!__Zephyr_server && (qptr = Z_SearchQueue(&notice.z_multiuid,
-                                                     notice.z_kind))) {
-           /*
-            * If this is the first fragment, and we haven't already
-            * gotten a first fragment, grab the header from it.
-            */
-           if (part == 0 && !qptr->header) {
-               qptr->header_len = packet_len-notice.z_message_len;
-               qptr->header = (char *) malloc((unsigned) qptr->header_len);
-               if (!qptr->header)
-                   return (ENOMEM);
-               (void) memcpy(qptr->header, packet, qptr->header_len);
-           }
-           return (Z_AddNoticeToEntry(qptr, &notice, part));
-       }
-    }
-
-    /*
-     * We'll have to create a new entry...make sure the queue isn't
-     * going to get too big.
-     */
-    if (__Q_Size+(__Zephyr_server ? notice.z_message_len : partof) > Z_MAXQUEUESIZE)
-       return (ZERR_NONE);
-
-    /*
-     * This is a notice we haven't heard of, so create a new queue
-     * entry for it and zero it out.
-     */
-    qptr = (struct _Z_InputQ *)malloc(sizeof(struct _Z_InputQ));
-    if (!qptr)
-       return (ENOMEM);
-    (void) memset((char *)qptr, 0, sizeof(struct _Z_InputQ));
-
-    /* Insert the entry at the end of the queue */
-    qptr->next = NULL;
-    qptr->prev = __Q_Tail;
-    if (__Q_Tail)
-       __Q_Tail->next = qptr;
-    __Q_Tail = qptr;
-
-    if (!__Q_Head)
-       __Q_Head = qptr;
-
-    
-    /* Copy the from field, multiuid, kind, and checked authentication. */
-    qptr->from = from;
-    qptr->uid = notice.z_multiuid;
-    qptr->kind = notice.z_kind;
-    qptr->auth = notice.z_checked_auth;
-    
-    /*
-     * If this is the first part of the notice, we take the header
-     * from it.  We only take it if this is the first fragment so that
-     * the Unique ID's will be predictable.
-     *
-     * If a Zephyr Server, we always take the header.
-     */
-    if (__Zephyr_server || part == 0) {
-       qptr->header_len = packet_len-notice.z_message_len;
-       qptr->header = (char *) malloc((unsigned) qptr->header_len);
-       if (!qptr->header)
-           return ENOMEM;
-       (void) memcpy(qptr->header, packet, qptr->header_len);
-    }
-
-    /*
-     * If this is not a fragmented notice, then don't bother with a
-     * hole list.
-     * If we are a Zephyr server, all notices are treated as complete.
-     */
-    if (__Zephyr_server || (part == 0 && notice.z_message_len == partof)) {
-       __Q_CompleteLength++;
-       qptr->holelist = (struct _Z_Hole *) 0;
-       qptr->complete = 1;
-       /* allocate a msg buf for this piece */
-       if (notice.z_message_len == 0)
-           qptr->msg = 0;
-       else if (!(qptr->msg = (char *) malloc((unsigned) notice.z_message_len)))
-           return(ENOMEM);
-       else
-           (void) memcpy(qptr->msg, notice.z_message, notice.z_message_len);
-       qptr->msg_len = notice.z_message_len;
-       __Q_Size += notice.z_message_len;
-       qptr->packet_len = qptr->header_len+qptr->msg_len;
-       if (!(qptr->packet = (char *) malloc((unsigned) qptr->packet_len)))
-           return (ENOMEM);
-       (void) memcpy(qptr->packet, qptr->header, qptr->header_len);
-       if(qptr->msg)
-           (void) memcpy(qptr->packet+qptr->header_len, qptr->msg,
-                          qptr->msg_len);
-       return (ZERR_NONE);
-    }
-
-    /*
-     * We know how long the message is going to be (this is better
-     * than IP fragmentation...), so go ahead and allocate it all.
-     */
-    if (!(qptr->msg = (char *) malloc((unsigned) partof)) && partof)
-       return (ENOMEM);
-    qptr->msg_len = partof;
-    __Q_Size += partof;
-
-    /*
-     * Well, it's a fragmented notice...allocate a hole list and
-     * initialize it to the full packet size.  Then insert the
-     * current fragment.
-     */
-    if (!(qptr->holelist = (struct _Z_Hole *)
-         malloc(sizeof(struct _Z_Hole))))
-       return (ENOMEM);
-    qptr->holelist->next = (struct _Z_Hole *) 0;
-    qptr->holelist->first = 0;
-    qptr->holelist->last = partof-1;
-    return (Z_AddNoticeToEntry(qptr, &notice, part));
-}
-
-
-/* Fragment management routines - compliments, more or less, of RFC815 */
-
-Code_t
-Z_AddNoticeToEntry(struct _Z_InputQ *qptr,
-                  ZNotice_t *notice,
-                  int part)
-{
-    int last, oldfirst, oldlast;
-    struct _Z_Hole *hole, *lasthole;
-    struct timeval tv;
-
-    /* Bounds check. */
-    if (part < 0 || notice->z_message_len < 0 || part > qptr->msg_len
-       || notice->z_message_len > qptr->msg_len - part)
-      return (ZERR_NONE);
-
-    /* Incorporate this notice's checked authentication. */
-    if (notice->z_checked_auth == ZAUTH_FAILED)
-       qptr->auth = ZAUTH_FAILED;
-    else if (notice->z_checked_auth == ZAUTH_NO && qptr->auth != ZAUTH_FAILED)
-       qptr->auth = ZAUTH_NO;
-
-    (void) gettimeofday(&tv, (struct timezone *)0);
-    qptr->timep = tv.tv_sec;
-    
-    last = part+notice->z_message_len-1;
-
-    hole = qptr->holelist;
-    lasthole = (struct _Z_Hole *) 0;
-
-    /* copy in the message body */
-    (void) memcpy(qptr->msg+part, notice->z_message, notice->z_message_len);
-
-    /* Search for a hole that overlaps with the current fragment */
-    while (hole) {
-       if (part <= hole->last && last >= hole->first)
-           break;
-       lasthole = hole;
-       hole = hole->next;
-    }
-
-    /* If we found one, delete it and reconstruct a new hole */
-    if (hole) {
-       oldfirst = hole->first;
-       oldlast = hole->last;
-       if (lasthole)
-           lasthole->next = hole->next;
-       else
-           qptr->holelist = hole->next;
-       free((char *)hole);
-       /*
-        * Now create a new hole that is the original hole without the
-        * current fragment.
-        */
-       if (part > oldfirst) {
-           /* Search for the end of the hole list */
-           hole = qptr->holelist;
-           lasthole = (struct _Z_Hole *) 0;
-           while (hole) {
-               lasthole = hole;
-               hole = hole->next;
-           }
-           if (lasthole) {
-               if (!(lasthole->next = (struct _Z_Hole *)
-                     malloc(sizeof(struct _Z_InputQ))))
-                   return (ENOMEM);
-               hole = lasthole->next;
-           }
-           else {
-               if (!(qptr->holelist = (struct _Z_Hole *)
-                     malloc(sizeof(struct _Z_InputQ))))
-                   return (ENOMEM);
-               hole = qptr->holelist;
-           }
-           hole->next = NULL;
-           hole->first = oldfirst;
-           hole->last = part-1;
-       }
-       if (last < oldlast) {
-           /* Search for the end of the hole list */
-           hole = qptr->holelist;
-           lasthole = (struct _Z_Hole *) 0;
-           while (hole) {
-               lasthole = hole;
-               hole = hole->next;
-           }
-           if (lasthole) {
-               if (!(lasthole->next = (struct _Z_Hole *)
-                     malloc(sizeof(struct _Z_InputQ))))
-                   return (ENOMEM);
-               hole = lasthole->next;
-           }
-           else {
-               if (!(qptr->holelist = (struct _Z_Hole *)
-                     malloc(sizeof(struct _Z_InputQ))))
-                   return (ENOMEM);
-               hole = qptr->holelist;
-           }
-           hole->next = (struct _Z_Hole *) 0;
-           hole->first = last+1;
-           hole->last = oldlast;
-       }
-    }
-
-    if (!qptr->holelist) {
-       if (!qptr->complete)
-           __Q_CompleteLength++;
-       qptr->complete = 1;
-       qptr->timep = 0;                /* don't time out anymore */
-       qptr->packet_len = qptr->header_len+qptr->msg_len;
-       if (!(qptr->packet = (char *) malloc((unsigned) qptr->packet_len)))
-           return (ENOMEM);
-       (void) memcpy(qptr->packet, qptr->header, qptr->header_len);
-       (void) memcpy(qptr->packet+qptr->header_len, qptr->msg,
-                      qptr->msg_len);
-    }
-    
-    return (ZERR_NONE);
-}
-
-void
-Z_gettimeofday(struct _ZTimeval *ztv,
-              struct timezone *tz)
-{
-        struct timeval tv;
-        (void) gettimeofday(&tv, tz); /* yeah, yeah, I know */
-        ztv->tv_sec=tv.tv_sec;
-        ztv->tv_usec=tv.tv_usec;
-}
-
-Code_t
-Z_FormatHeader(ZNotice_t *notice,
-              char *buffer,
-              int buffer_len,
-              int *len,
-              Z_AuthProc cert_routine)
-{
-    Code_t retval;
-    static char version[BUFSIZ]; /* default init should be all \0 */
-    struct sockaddr_in name;
-    unsigned int namelen = sizeof(name);
-
-    if (!notice->z_sender)
-       notice->z_sender = ZGetSender();
-
-    if (notice->z_port == 0) {
-       if (ZGetFD() < 0) {
-           retval = ZOpenPort((u_short *)0);
-           if (retval != ZERR_NONE)
-               return (retval);
-       }
-       retval = getsockname(ZGetFD(), (struct sockaddr *) &name, &namelen);
-       if (retval != 0)
-           return (retval);
-       notice->z_port = name.sin_port;
-    }
-
-    notice->z_multinotice = "";
-    
-    (void) Z_gettimeofday(&notice->z_uid.tv, (struct timezone *)0);
-    notice->z_uid.tv.tv_sec = htonl((u_long) notice->z_uid.tv.tv_sec);
-    notice->z_uid.tv.tv_usec = htonl((u_long) notice->z_uid.tv.tv_usec);
-    
-    (void) memcpy(&notice->z_uid.zuid_addr, &__My_addr, sizeof(__My_addr));
-
-    if (notice->z_sender_sockaddr.ip4.sin_family == 0) {
-       (void) memset(&notice->z_sender_sockaddr, 0, sizeof(notice->z_sender_sockaddr));
-       notice->z_sender_sockaddr.ip4.sin_family = AF_INET; /*XXX*/
-       notice->z_sender_sockaddr.ip4.sin_port = notice->z_port;
-       (void) memcpy(&notice->z_sender_sockaddr.ip4.sin_addr, &__My_addr, sizeof(__My_addr));
-    }
-       
-    notice->z_multiuid = notice->z_uid;
-
-    if (!version[0])
-           (void) sprintf(version, "%s%d.%d", ZVERSIONHDR, ZVERSIONMAJOR,
-                          ZVERSIONMINOR);
-    notice->z_version = version;
-
-    return Z_FormatAuthHeader(notice, buffer, buffer_len, len, cert_routine);
-}
-
-Code_t
-Z_NewFormatHeader(ZNotice_t *notice,
-                 char *buffer,
-                 int buffer_len,
-                 int *len,
-                 Z_AuthProc cert_routine)
-{
-    Code_t retval;
-    static char version[BUFSIZ]; /* default init should be all \0 */
-    struct sockaddr_in name;
-    struct timeval tv;
-    unsigned int namelen = sizeof(name);
-
-    if (!notice->z_sender)
-       notice->z_sender = ZGetSender();
-
-    if (notice->z_port == 0) {
-       if (ZGetFD() < 0) {
-           retval = ZOpenPort((u_short *)0);
-           if (retval != ZERR_NONE)
-               return (retval);
-       }
-       retval = getsockname(ZGetFD(), (struct sockaddr *) &name, &namelen);
-       if (retval != 0)
-           return (retval);
-       notice->z_port = name.sin_port;
-    }
-
-    notice->z_multinotice = "";
-    
-    (void) gettimeofday(&tv, (struct timezone *)0);
-    notice->z_uid.tv.tv_sec = htonl((u_long) tv.tv_sec);
-    notice->z_uid.tv.tv_usec = htonl((u_long) tv.tv_usec);
-    
-    (void) memcpy(&notice->z_uid.zuid_addr, &__My_addr, sizeof(__My_addr));
-
-    (void) memset(&notice->z_sender_sockaddr, 0, sizeof(notice->z_sender_sockaddr));
-    notice->z_sender_sockaddr.ip4.sin_family = AF_INET; /*XXX*/
-    notice->z_sender_sockaddr.ip4.sin_port = notice->z_port;
-    (void) memcpy(&notice->z_sender_sockaddr.ip4.sin_addr, &__My_addr, sizeof(__My_addr));
-
-    notice->z_multiuid = notice->z_uid;
-
-    if (!version[0])
-           (void) sprintf(version, "%s%d.%d", ZVERSIONHDR, ZVERSIONMAJOR,
-                          ZVERSIONMINOR);
-    notice->z_version = version;
-
-    return Z_NewFormatAuthHeader(notice, buffer, buffer_len, len, cert_routine);
-}
-
-Code_t
-Z_FormatAuthHeader(ZNotice_t *notice,
-                  char *buffer,
-                  int buffer_len,
-                  int *len,
-                  Z_AuthProc cert_routine)
-{
-    if (!cert_routine) {
-       notice->z_auth = 0;
-       notice->z_authent_len = 0;
-       notice->z_ascii_authent = "";
-       notice->z_checksum = 0;
-       return (Z_FormatRawHeader(notice, buffer, buffer_len,
-                                 len, NULL, NULL));
-    }
-    
-    return ((*cert_routine)(notice, buffer, buffer_len, len));
-}
-
-Code_t
-Z_NewFormatAuthHeader(ZNotice_t *notice,
-                     char *buffer,
-                     int buffer_len,
-                     int *len,
-                     Z_AuthProc cert_routine)
-{
-    if (!cert_routine) {
-       notice->z_auth = 0;
-       notice->z_authent_len = 0;
-       notice->z_ascii_authent = "";
-       notice->z_checksum = 0;
-       return (Z_FormatRawHeader(notice, buffer, buffer_len,
-                                 len, NULL, NULL));
-    }
-    
-    return ((*cert_routine)(notice, buffer, buffer_len, len));
-} 
-       
-Code_t
-Z_NewFormatRawHeader(ZNotice_t *notice,
-                    char *buffer,
-                    int buffer_len,
-                    int *hdr_len,
-                    char **cksum_start,
-                    int *cksum_len,
-                    char **cstart,
-                    char **cend)
-{
-   return(Z_ZcodeFormatRawHeader(notice, buffer, buffer_len, hdr_len,
-                                cksum_start, cksum_len, cstart, cend, 0));
-}
-
-Code_t
-Z_AsciiFormatRawHeader(ZNotice_t *notice,
-                      char *buffer,
-                      int buffer_len,
-                      int *hdr_len,
-                      char **cksum_start,
-                      int *cksum_len,
-                      char **cstart,
-                      char **cend)
-{
-   return(Z_ZcodeFormatRawHeader(notice, buffer, buffer_len, hdr_len,
-                                cksum_start, cksum_len, cstart, cend, 1));
-}
-
-static Code_t
-Z_ZcodeFormatRawHeader(ZNotice_t *notice,
-                      char *buffer,
-                      int buffer_len,
-                      int *hdr_len,
-                      char **cksum_start,
-                      int *cksum_len,
-                      char **cstart,
-                      char **cend,
-                      int cksumstyle)
-{
-    static char version_nogalaxy[BUFSIZ]; /* default init should be all \0 */
-    char newrecip[BUFSIZ];
-    char *ptr, *end;
-    int i;
-    int addrlen = 0;
-    unsigned char *addraddr = NULL;
-
-    if (!(notice->z_sender_sockaddr.sa.sa_family == AF_INET ||
-         notice->z_sender_sockaddr.sa.sa_family == AF_INET6))
-       return ZERR_ILLVAL;
-
-    if (!notice->z_class)
-            notice->z_class = "";
-
-    if (!notice->z_class_inst)
-            notice->z_class_inst = "";
-
-    if (!notice->z_opcode)
-            notice->z_opcode = "";
-
-    if (!notice->z_recipient)
-            notice->z_recipient = "";
-
-    if (!notice->z_default_format)
-            notice->z_default_format = "";
-
-    ptr = buffer;
-    end = buffer+buffer_len;
-
-    if (cksum_start)
-        *cksum_start = ptr;
-
-    (void) sprintf(version_nogalaxy, "%s%d.%d", ZVERSIONHDR,
-                  ZVERSIONMAJOR, ZVERSIONMINOR);
-
-    notice->z_version = version_nogalaxy;
-
-    if (Z_AddField(&ptr, version_nogalaxy, end))
-        return (ZERR_HEADERLEN);
-
-    if (ZMakeAscii32(ptr, end-ptr,
-                     Z_NUMFIELDS + notice->z_num_other_fields)
-        == ZERR_FIELDLEN)
-        return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (ZMakeAscii32(ptr, end-ptr, notice->z_kind) == ZERR_FIELDLEN)
-        return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (ZMakeAscii(ptr, end-ptr, (unsigned char *)&notice->z_uid, 
-                   sizeof(ZUnique_Id_t)) == ZERR_FIELDLEN)
-        return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (ZMakeAscii16(ptr, end-ptr, ntohs(notice->z_port)) == ZERR_FIELDLEN)
-        return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (ZMakeAscii32(ptr, end-ptr, notice->z_auth) == ZERR_FIELDLEN)
-        return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (ZMakeAscii32(ptr, end-ptr, notice->z_authent_len) == ZERR_FIELDLEN)
-        return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (Z_AddField(&ptr, notice->z_ascii_authent, end))
-        return (ZERR_HEADERLEN);
-    if (Z_AddField(&ptr, notice->z_class, end))
-        return (ZERR_HEADERLEN);
-    if (Z_AddField(&ptr, notice->z_class_inst, end))
-        return (ZERR_HEADERLEN);
-    if (Z_AddField(&ptr, notice->z_opcode, end))
-        return (ZERR_HEADERLEN);
-    if (Z_AddField(&ptr, notice->z_sender, end))
-        return (ZERR_HEADERLEN);
-    if (strchr(notice->z_recipient, '@') || !*notice->z_recipient) {
-        if (Z_AddField(&ptr, notice->z_recipient, end))
-            return (ZERR_HEADERLEN);
-    }
-    else {
-       if (strlen(notice->z_recipient) + strlen(__Zephyr_realm) + 2 >
-            sizeof(newrecip))
-            return (ZERR_HEADERLEN);
-        (void) sprintf(newrecip, "%s@%s", notice->z_recipient, __Zephyr_realm);
-        if (Z_AddField(&ptr, newrecip, end))
-            return (ZERR_HEADERLEN);
-    }           
-    if (Z_AddField(&ptr, notice->z_default_format, end))
-        return (ZERR_HEADERLEN);
-
-    /* copy back the end pointer location for crypto checksum */
-    if (cstart)
-        *cstart = ptr;
-    if (cksumstyle == 1) {
-      if (Z_AddField(&ptr, notice->z_ascii_checksum, end))
-        return (ZERR_HEADERLEN);
-    } else {
-#ifdef xZCODE_K4SUM
-    if (ZMakeZcode32(ptr, end-ptr, notice->z_checksum) == ZERR_FIELDLEN)
-        return ZERR_HEADERLEN;
-#else
-    if (ZMakeAscii32(ptr, end-ptr, notice->z_checksum) == ZERR_FIELDLEN)
-        return (ZERR_HEADERLEN);
-#endif
-    ptr += strlen(ptr)+1;
-    }
-    if (cend)
-        *cend = ptr;
-
-    if (Z_AddField(&ptr, notice->z_multinotice, end))
-        return (ZERR_HEADERLEN);
-
-    if (ZMakeAscii(ptr, end-ptr, (unsigned char *)&notice->z_multiuid, 
-                   sizeof(ZUnique_Id_t)) == ZERR_FIELDLEN)
-        return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-        
-    if (notice->z_sender_sockaddr.sa.sa_family == AF_INET) {
-       addrlen = sizeof(notice->z_sender_sockaddr.ip4.sin_addr);
-       addraddr = (unsigned char *)&notice->z_sender_sockaddr.ip4.sin_addr;
-    } else if (notice->z_sender_sockaddr.sa.sa_family == AF_INET6) {
-       addrlen = sizeof(notice->z_sender_sockaddr.ip6.sin6_addr);
-       addraddr = (unsigned char *)&notice->z_sender_sockaddr.ip6.sin6_addr;
-    }
-
-    if (ZMakeZcode(ptr, end-ptr, addraddr, addrlen) == ZERR_FIELDLEN)
-       return ZERR_HEADERLEN;
-    ptr += strlen(ptr) + 1;
-
-    if (ZMakeAscii16(ptr, end-ptr, ntohs(notice->z_charset)) == ZERR_FIELDLEN)
-       return ZERR_HEADERLEN;
-    ptr += strlen(ptr) + 1;
-       
-    for (i=0;i<notice->z_num_other_fields;i++)
-        if (Z_AddField(&ptr, notice->z_other_fields[i], end))
-            return (ZERR_HEADERLEN);
-    
-    if (cksum_len)
-        *cksum_len = ptr-*cksum_start;
-
-    *hdr_len = ptr-buffer;
-
-    return (ZERR_NONE);
-}
-
-Code_t
-Z_FormatRawHeader(ZNotice_t *notice,
-                 char *buffer,
-                 int buffer_len,
-                 int *len,
-                 char **cstart,
-                 char **cend)
-{
-    char newrecip[BUFSIZ];
-    char *ptr, *end;
-    int i;
-    int addrlen = 0;
-    unsigned char *addraddr = NULL;
-
-    if (!(notice->z_sender_sockaddr.sa.sa_family == AF_INET ||
-         notice->z_sender_sockaddr.sa.sa_family == AF_INET6))
-       notice->z_sender_sockaddr.sa.sa_family = AF_INET; /* \/\/hatever *//*XXX*/
-
-    if (!notice->z_class)
-           notice->z_class = "";
-
-    if (!notice->z_class_inst)
-           notice->z_class_inst = "";
-
-    if (!notice->z_opcode)
-           notice->z_opcode = "";
-
-    if (!notice->z_recipient)
-           notice->z_recipient = "";
-
-    if (!notice->z_default_format)
-           notice->z_default_format = "";
-
-    ptr = buffer;
-    end = buffer+buffer_len;
-
-    if (buffer_len < strlen(notice->z_version)+1)
-       return (ZERR_HEADERLEN);
-
-    (void) strcpy(ptr, notice->z_version);
-    ptr += strlen(ptr)+1;
-
-    if (ZMakeAscii32(ptr, end-ptr, Z_NUMFIELDS + notice->z_num_other_fields)
-       == ZERR_FIELDLEN)
-       return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (ZMakeAscii32(ptr, end-ptr, notice->z_kind) == ZERR_FIELDLEN)
-       return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (ZMakeAscii(ptr, end-ptr, (unsigned char *)&notice->z_uid, 
-                  sizeof(ZUnique_Id_t)) == ZERR_FIELDLEN)
-       return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (ZMakeAscii16(ptr, end-ptr, ntohs(notice->z_port)) == ZERR_FIELDLEN)
-        return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (ZMakeAscii32(ptr, end-ptr, notice->z_auth) == ZERR_FIELDLEN)
-       return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (ZMakeAscii32(ptr, end-ptr, notice->z_authent_len) == ZERR_FIELDLEN)
-       return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (Z_AddField(&ptr, notice->z_ascii_authent, end))
-       return (ZERR_HEADERLEN);
-    if (Z_AddField(&ptr, notice->z_class, end))
-       return (ZERR_HEADERLEN);
-    if (Z_AddField(&ptr, notice->z_class_inst, end))
-       return (ZERR_HEADERLEN);
-    if (Z_AddField(&ptr, notice->z_opcode, end))
-       return (ZERR_HEADERLEN);
-    if (Z_AddField(&ptr, notice->z_sender, end))
-       return (ZERR_HEADERLEN);
-    if (strchr(notice->z_recipient, '@') || !*notice->z_recipient) {
-       if (Z_AddField(&ptr, notice->z_recipient, end))
-           return (ZERR_HEADERLEN);
-    }
-    else {
-       if (strlen(notice->z_recipient) + strlen(__Zephyr_realm) + 2 >
-           sizeof(newrecip))
-           return (ZERR_HEADERLEN);
-       (void) sprintf(newrecip, "%s@%s", notice->z_recipient, __Zephyr_realm);
-       if (Z_AddField(&ptr, newrecip, end))
-           return (ZERR_HEADERLEN);
-    }          
-    if (Z_AddField(&ptr, notice->z_default_format, end))
-       return (ZERR_HEADERLEN);
-
-    /* copy back the end pointer location for crypto checksum */
-    if (cstart)
-       *cstart = ptr;
-    if (ZMakeAscii32(ptr, end-ptr, notice->z_checksum) == ZERR_FIELDLEN)
-        return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-    if (cend)
-       *cend = ptr;
-
-    if (Z_AddField(&ptr, notice->z_multinotice, end))
-       return (ZERR_HEADERLEN);
-
-    if (ZMakeAscii(ptr, end-ptr, (unsigned char *)&notice->z_multiuid, 
-                  sizeof(ZUnique_Id_t)) == ZERR_FIELDLEN)
-       return (ZERR_HEADERLEN);
-    ptr += strlen(ptr)+1;
-
-    if (notice->z_sender_sockaddr.sa.sa_family == AF_INET) {
-       addrlen = sizeof(notice->z_sender_sockaddr.ip4.sin_addr);
-       addraddr = (unsigned char *)&notice->z_sender_sockaddr.ip4.sin_addr;
-       if (ZMakeAscii(ptr, end - ptr, addraddr, addrlen) == ZERR_FIELDLEN)
-           return ZERR_HEADERLEN;
-    } else if (notice->z_sender_sockaddr.sa.sa_family == AF_INET6) {
-       addrlen = sizeof(notice->z_sender_sockaddr.ip6.sin6_addr);
-       addraddr = (unsigned char *)&notice->z_sender_sockaddr.ip6.sin6_addr;
-       if (ZMakeZcode(ptr, end - ptr, addraddr, addrlen) == ZERR_FIELDLEN)
-           return ZERR_HEADERLEN;
-    }
-    ptr += strlen(ptr) + 1;
-
-    if (ZMakeAscii16(ptr, end-ptr, ntohs(notice->z_charset)) == ZERR_FIELDLEN)
-       return ZERR_HEADERLEN;
-    ptr += strlen(ptr) + 1;
-       
-    for (i=0;i<notice->z_num_other_fields;i++)
-       if (Z_AddField(&ptr, notice->z_other_fields[i], end))
-           return (ZERR_HEADERLEN);
-    
-    *len = ptr-buffer;
-       
-    return (ZERR_NONE);
-}
-
-static int
-Z_AddField(char **ptr,
-          char *field,
-          char *end)
-{
-    register int len;
-
-    len = field ? strlen (field) + 1 : 1;
-
-    if (*ptr+len > end)
-       return 1;
-    if (field)
-       (void) strcpy(*ptr, field);
-    else
-       **ptr = '\0';
-    *ptr += len;
-
-    return 0;
-}
-
-struct _Z_InputQ *
-Z_GetFirstComplete(void)
-{
-    struct _Z_InputQ *qptr;
-
-    qptr = __Q_Head;
-
-    while (qptr) {
-       if (qptr->complete)
-           return (qptr);
-       qptr = qptr->next;
-    }
-
-    return ((struct _Z_InputQ *)0);
-}
-
-struct _Z_InputQ *
-Z_GetNextComplete(struct _Z_InputQ *qptr)
-{
-    qptr = qptr->next;
-    while (qptr) {
-       if (qptr->complete)
-           return (qptr);
-       qptr = qptr->next;
-    }
-
-    return ((struct _Z_InputQ *)0);
-}
-
-void
-Z_RemQueue(struct _Z_InputQ *qptr)
-{
-    struct _Z_Hole *hole, *nexthole;
-    
-    if (qptr->complete)
-       __Q_CompleteLength--;
-
-    __Q_Size -= qptr->msg_len;
-    
-    if (qptr->header)
-       free(qptr->header);
-    if (qptr->msg)
-       free(qptr->msg);
-    if (qptr->packet)
-       free(qptr->packet);
-    
-    hole = qptr->holelist;
-    while (hole) {
-       nexthole = hole->next;
-       free((char *)hole);
-       hole = nexthole;
-    }
-    
-    if (qptr == __Q_Head && __Q_Head == __Q_Tail) {
-       free ((char *)qptr);
-       __Q_Head = (struct _Z_InputQ *)0;
-       __Q_Tail = (struct _Z_InputQ *)0;
-       return;
-    }
-    
-    if (qptr == __Q_Head) {
-       __Q_Head = qptr->next;
-       __Q_Head->prev = (struct _Z_InputQ *)0;
-       free ((char *)qptr);
-       return;
-    } 
-    if (qptr == __Q_Tail) {
-       __Q_Tail = qptr->prev;
-       __Q_Tail->next = (struct _Z_InputQ *)0;
-       free ((char *)qptr);
-       return;
-    }
-    qptr->prev->next = qptr->next;
-    qptr->next->prev = qptr->prev;
-    free ((char *)qptr);
-    return;
-}
-
-Code_t
-Z_SendFragmentedNotice(ZNotice_t *notice,
-                      int len,
-                      Z_AuthProc cert_func,
-                      Z_SendProc send_func)
-{
-    ZNotice_t partnotice;
-    ZPacket_t buffer;
-    char multi[64];
-    int offset, hdrsize, fragsize, ret_len, message_len, waitforack;
-    Code_t retval;
-    
-    hdrsize = len-notice->z_message_len;
-    fragsize = Z_MAXPKTLEN-hdrsize-Z_FRAGFUDGE;
-    
-    offset = 0;
-
-    waitforack = ((notice->z_kind == UNACKED || notice->z_kind == ACKED)
-                 && !__Zephyr_server);
-    
-    partnotice = *notice;
-
-    while (offset < notice->z_message_len || !notice->z_message_len) {
-       (void) sprintf(multi, "%d/%d", offset, notice->z_message_len);
-       partnotice.z_multinotice = multi;
-       if (offset > 0) {
-           (void) Z_gettimeofday(&partnotice.z_uid.tv,
-                                 (struct timezone *)0);
-           partnotice.z_uid.tv.tv_sec =
-               htonl((u_long) partnotice.z_uid.tv.tv_sec);
-           partnotice.z_uid.tv.tv_usec =
-               htonl((u_long) partnotice.z_uid.tv.tv_usec);
-           (void) memcpy((char *)&partnotice.z_uid.zuid_addr, &__My_addr, 
-                         sizeof(__My_addr));
-           (void) memset(&notice->z_sender_sockaddr, 0, sizeof(notice->z_sender_sockaddr));
-           notice->z_sender_sockaddr.ip4.sin_family = AF_INET; /*XXX*/
-           notice->z_sender_sockaddr.ip4.sin_port = notice->z_port;
-           (void) memcpy(&notice->z_sender_sockaddr.ip4.sin_addr, &__My_addr, sizeof(__My_addr));
-       }
-       message_len = min(notice->z_message_len-offset, fragsize);
-       partnotice.z_message = notice->z_message+offset;
-       partnotice.z_message_len = message_len;
-       if ((retval = Z_FormatAuthHeader(&partnotice, buffer, Z_MAXHEADERLEN,
-                                        &ret_len, cert_func)) != ZERR_NONE) {
-           return (retval);
-       }
-       memcpy(buffer + ret_len, partnotice.z_message, message_len);
-       if ((retval = (*send_func)(&partnotice, buffer, ret_len+message_len,
-                                  waitforack)) != ZERR_NONE) {
-           return (retval);
-       }
-       offset += fragsize;
-       if (!notice->z_message_len)
-           break;
-    }
-
-    return (ZERR_NONE);
-}
-
-/*ARGSUSED*/
-Code_t Z_XmitFragment(ZNotice_t *notice,
-                     char *buf,
-                     int len,
-                     int wait)
-{
-    return(ZSendPacket(buf, len, wait));
-}
-
-#ifdef Z_DEBUG
-/* For debugging printing */
-const char *const ZNoticeKinds[] = {
-    "UNSAFE", "UNACKED", "ACKED", "HMACK", "HMCTL", "SERVACK", "SERVNAK",
-    "CLIENTACK", "STAT"
-};
-#endif
-
-#ifdef Z_DEBUG
-
-#undef Z_debug
-void
-Z_debug(const char *format, ...)
-{
-    va_list pvar;
-    if (!__Z_debug_print)
-      return;
-    va_start (pvar, format);
-    (*__Z_debug_print) (format, pvar, __Z_debug_print_closure);
-    va_end (pvar);
-}
-
-void
-Z_debug_stderr(const char *format,
-              va_list args,
-              void *closure)
-{
-#ifdef HAVE_VPRINTF
-    vfprintf (stderr, format, args);
-#else
-    _doprnt (format, args, stderr);
-#endif
-    putc ('\n', stderr);
-}
-
-#undef ZSetDebug
-void
-ZSetDebug(void (*proc) __P((const char *, va_list, void *)),
-         char *arg)
-{
-    __Z_debug_print = proc;
-    __Z_debug_print_closure = arg;
-}
-#endif /* Z_DEBUG */
-
-#ifdef HAVE_KRB5
-Code_t
-Z_Checksum(krb5_data *cksumbuf,
-          krb5_keyblock *keyblock, 
-          krb5_cksumtype cksumtype, 
-          char **asn1_data,
-          unsigned int *asn1_len)
-{
-    krb5_error_code result;
-    unsigned char *data;
-    int len;
-#ifndef HAVE_KRB5_CRYPTO_INIT
-    krb5_checksum checksum;
-#else
-    Checksum checksum;
-    krb5_crypto cryptctx;
-#endif
-    
-#ifndef HAVE_KRB5_CRYPTO_INIT
-    /* Create the checksum -- MIT crypto API */
-    result = krb5_c_make_checksum(Z_krb5_ctx, cksumtype,
-                                 keyblock, Z_KEYUSAGE_CLT_CKSUM,
-                                 cksumbuf, &checksum);
-    if (result)
-       return result;
-    /* HOLDING: checksum */
-
-    data = checksum.contents;
-    len = checksum.length;
-#else
-    /* Create the checksum -- heimdal crypto API */
-    result = krb5_crypto_init(Z_krb5_ctx, keyblock, keyblock->keytype, 
-                              &cryptctx);
-    if (result)
-       return result;
-
-    /* HOLDING: cryptctx */
-    result = krb5_create_checksum(Z_krb5_ctx, cryptctx,
-                                 Z_KEYUSAGE_CLT_CKSUM, cksumtype,
-                                 cksumbuf->data, cksumbuf->length,
-                                 &checksum);
-    krb5_crypto_destroy(Z_krb5_ctx, cryptctx);
-    if (result)
-       return result;
-
-    len = checksum.checksum.length;
-    data = checksum.checksum.data;
-    /* HOLDING: checksum */
-#endif
-
-    *asn1_data = malloc(len);
-    if (*asn1_data == NULL)
-       return errno;
-    memcpy(*asn1_data, data, len);
-    *asn1_len = len;
-
-#ifndef HAVE_KRB5_CRYPTO_INIT
-    krb5_free_checksum_contents(Z_krb5_ctx, &checksum);
-#else
-    free_Checksum(&checksum);
-#endif
-
-    return 0;
-}
-
-Code_t
-Z_InsertZcodeChecksum(krb5_keyblock *keyblock,
-                     ZNotice_t *notice, 
-                      char *buffer,
-                     char *cksum_start,
-                     int cksum_len, 
-                      char *cstart,
-                     char *cend,
-                     int buffer_len, 
-                      int *length_adjust)
-{
-     int plain_len;   /* length of part not to be checksummed */
-     int cksum0_len;  /* length of part before checksum */
-     int cksum1_len;  /* length of part after checksum */
-     krb5_data cksumbuf;
-     krb5_data cksum;
-     unsigned char *key_data;
-     int key_len;
-     krb5_enctype enctype;
-     krb5_cksumtype cksumtype;
-     Code_t result;
-     
-     key_data = Z_keydata(keyblock);
-     key_len = Z_keylen(keyblock);
-     result = Z_ExtractEncCksum(keyblock, &enctype, &cksumtype);
-     if (result)
-          return (ZAUTH_FAILED);
-     
-     /* Assemble the things to be checksummed */
-     plain_len  = cksum_start - buffer;
-     cksum0_len = cstart - cksum_start;
-     cksum1_len = (cksum_start + cksum_len) - cend;
-     memset(&cksumbuf, 0, sizeof(cksumbuf));
-     cksumbuf.length = cksum0_len + cksum1_len + notice->z_message_len;
-     cksumbuf.data = malloc(cksumbuf.length);
-     if (!cksumbuf.data)
-          return ENOMEM;
-     memcpy(cksumbuf.data, cksum_start, cksum0_len);
-     memcpy(cksumbuf.data + cksum0_len, cend, cksum1_len);
-     memcpy(cksumbuf.data + cksum0_len + cksum1_len,
-            notice->z_message, notice->z_message_len);
-     /* compute the checksum */
-     result = Z_Checksum(&cksumbuf, keyblock, cksumtype, 
-                        (char **)&cksum.data, &cksum.length);
-     if (result) {
-          free(cksumbuf.data);
-          return result;
-     }
-     
-     /*
-      * OK....  we can zcode to a space starting at 'cstart',
-      * with a length of buffer_len - (plain_len + cksum_len).
-      * Then we tack on the end part, which is located at
-      * cksumbuf.data + cksum0_len and has length cksum1_len
-      */
-     
-     result = ZMakeZcode(cstart, buffer_len - (plain_len + cksum_len),
-                         (unsigned char *)cksum.data, cksum.length);
-     free(cksum.data);
-     if (!result) {
-          int zcode_len = strlen(cstart) + 1;
-          memcpy(cstart + zcode_len, cksumbuf.data + cksum0_len, cksum1_len);
-          *length_adjust = zcode_len - cksum_len + (cksum0_len + cksum1_len);
-     }
-     free(cksumbuf.data);
-     return result;
-}
-
-Code_t
-Z_ExtractEncCksum(krb5_keyblock *keyblock,
-                 krb5_enctype *enctype, 
-                  krb5_cksumtype *cksumtype)
-{
-    *enctype  = Z_enctype(keyblock); 
-    return Z_krb5_lookup_cksumtype(*enctype, cksumtype); 
-}
-#endif
-
-#ifdef HAVE_KRB5
-/* returns 0 if invalid or losing, 1 if valid, *sigh* */
-int
-Z_krb5_verify_cksum(krb5_keyblock *keyblock,
-                   krb5_data *cksumbuf, 
-                    krb5_cksumtype cksumtype,
-                   unsigned char *asn1_data, 
-                    int asn1_len)
-{
-    krb5_error_code result;
-#ifndef HAVE_KRB5_CRYPTO_INIT
-    krb5_checksum checksum;
-    krb5_boolean valid;
-#else
-    krb5_crypto cryptctx;
-    Checksum checksum;
-    size_t xlen;
-#endif
-
-    memset(&checksum, 0, sizeof(checksum));
-#ifndef HAVE_KRB5_CRYPTO_INIT
-    /* Verify the checksum -- MIT crypto API */
-    checksum.length = asn1_len;
-    checksum.contents = asn1_data;
-    checksum.checksum_type = cksumtype;
-    result = krb5_c_verify_checksum(Z_krb5_ctx,
-                                   keyblock, Z_KEYUSAGE_SRV_CKSUM,
-                                   cksumbuf, &checksum, &valid);
-    if (!result && valid)
-       return 1;
-    else
-       return 0;
-#else
-    checksum.checksum.length = asn1_len;
-    checksum.checksum.data = asn1_data;
-    checksum.cksumtype = cksumtype;
-
-    result = krb5_crypto_init(Z_krb5_ctx, keyblock, keyblock->keytype, &cryptctx);
-    if (result)
-       return result;
-    
-    /* HOLDING: cryptctx */
-    result = krb5_verify_checksum(Z_krb5_ctx, cryptctx,
-                                 Z_KEYUSAGE_SRV_CKSUM,
-                                 cksumbuf->data, cksumbuf->length,
-                                 &checksum);
-    krb5_crypto_destroy(Z_krb5_ctx, cryptctx);
-    if (result)
-       return 0;
-    else
-       return 1;
-#endif
-}
-#endif
diff --git a/zephyr/lib/charset.c b/zephyr/lib/charset.c
deleted file mode 100644 (file)
index d1f64fc..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains source for the ZGetCharset function.
- *
- *     Created by:     Karl Ramm
- *
- *     $Id$
- *
- *     Copyright (c) 2009 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef lint
-static const char rcsid_charset_c[] = "$Id$";
-#endif /* lint */
-
-#include <internal.h>
-#include <string.h>
-#include <locale.h>
-#include <langinfo.h>
-#include <ctype.h>
-
-unsigned short
-ZGetCharset(char *charset)
-{
-    char *p;
-    short retval;
-    static int once = 1;
-       
-    if (charset == NULL)
-       charset = getenv("ZEPHYR_CHARSET");
-
-    if (charset == NULL) {
-       if (once) {
-           setlocale(LC_ALL, "");
-           once = 0;
-       }
-       charset = nl_langinfo(CODESET);
-    }
-
-    if (charset == NULL)
-       return ZCHARSET_UNKNOWN;
-
-    charset = strdup(charset);
-
-    for (p = charset; *p; p++)
-       *p = toupper(*p);
-
-    if (!strcmp(charset, "NONE") || !strcmp(charset, "UNKNOWN"))
-       retval = ZCHARSET_UNKNOWN;
-    else if (!strcmp(charset, "ANSI_X3.4-1968"))
-       retval = ZCHARSET_ISO_8859_1; /* A hack. */
-    else if (!strcmp(charset, "ISO-8859-1"))
-       retval = ZCHARSET_ISO_8859_1;
-    else if (!strcmp(charset, "UTF-8"))
-       retval = ZCHARSET_UTF_8;
-    else
-       retval = ZCHARSET_UNKNOWN;
-
-    free(charset);
-    return retval;
-}
-
-const char *
-ZCharsetToString(unsigned short charset)
-{
-    if (charset == ZCHARSET_UNKNOWN)
-       return "UNKNOWN";
-    else if (charset == ZCHARSET_ISO_8859_1)
-       return "ISO-8859-1";
-    else if (charset == ZCHARSET_UTF_8)
-       return "UTF-8";
-    return "UNKNOWN";
-}
-       
diff --git a/zephyr/lib/mit-copyright.h b/zephyr/lib/mit-copyright.h
deleted file mode 100644 (file)
index 73059b3..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-
-Copyright 1987,1988 by the Massachusetts Institute of Technology
-
-All rights reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of the Massachusetts
-Institute of Technology (M.I.T.) not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.
-
-M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-*/
diff --git a/zephyr/lib/quad_cksum.c b/zephyr/lib/quad_cksum.c
deleted file mode 100644 (file)
index dc43e46..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/* Lifted from the krb5 1.6 source tree and hacked slightly to fit in here
-   Karl Ramm 12/21/08 */
-/*
- * lib/des425/quad_cksum.c
- *
- * Copyright 1985, 1986, 1987, 1988,1990 by the Massachusetts Institute
- * of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- *   require a specific license from the United States Government.
- *   It is the responsibility of any person or organization contemplating
- *   export to obtain such a license before exporting.
- * 
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission.  Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose.  It is provided "as is" without express
- * or implied warranty.
- *
- *
- * This routine does not implement:
- *
- *
- * Quadratic Congruential Manipulation Dectection Code
- *
- * ref: "Message Authentication"
- *             R.R. Jueneman, S. M. Matyas, C.H. Meyer
- *             IEEE Communications Magazine,
- *             Sept 1985 Vol 23 No 9 p 29-40
- *
- * This routine, part of the Athena DES library built for the Kerberos
- * authentication system, calculates a manipulation detection code for
- * a message.  It is a much faster alternative to the DES-checksum
- * method. No guarantees are offered for its security.
- *
- * Implementation for 4.2bsd
- * by S.P. Miller      Project Athena/MIT
- */
-
-/*
- * Algorithm (per paper):
- *             define:
- *             message to be composed of n m-bit blocks X1,...,Xn
- *             optional secret seed S in block X1
- *             MDC in block Xn+1
- *             prime modulus N
- *             accumulator Z
- *             initial (secret) value of accumulator C
- *             N, C, and S are known at both ends
- *             C and , optionally, S, are hidden from the end users
- *             then
- *                     (read array references as subscripts over time)
- *                     Z[0] = c;
- *                     for i = 1...n
- *                             Z[i] = (Z[i+1] + X[i])**2 modulo N
- *                     X[n+1] = Z[n] = MDC
- *
- *             Then pick
- *                     N = 2**31 -1
- *                     m = 16
- *                     iterate 4 times over plaintext, also use Zn
- *                     from iteration j as seed for iteration j+1,
- *                     total MDC is then a 128 bit array of the four
- *                     Zn;
- *
- *                     return the last Zn and optionally, all
- *                     four as output args.
- *
- * Modifications:
- *     To inhibit brute force searches of the seed space, this
- *     implementation is modified to have
- *     Z       = 64 bit accumulator
- *     C       = 64 bit C seed
- *     N       = 2**63 - 1
- *  S  = S seed is not implemented here
- *     arithmetic is not quite real double integer precision, since we
- *     cant get at the carry or high order results from multiply,
- *     but nontheless is 64 bit arithmetic.
- */
-/*
- * This code purports to implement the above algorithm, but fails.
- *
- * First of all, there was an implicit mod 2**32 being done on the
- * machines where this was developed because of their word sizes, and
- * for compabitility this has to be done on machines with 64-bit
- * words, so we make it explicit.
- *
- * Second, in the squaring operation, I really doubt the carry-over
- * from the low 31-bit half of the accumulator is being done right,
- * and using a modulus of 0x7fffffff on the low half of the
- * accumulator seems completely wrong.  And I challenge anyone to
- * explain where the number 83653421 comes from.
- *
- * --Ken Raeburn  2001-04-06
- */
-
-
-/* System include files */
-#include <sys/types.h>
-#include <stdio.h>
-#include <errno.h>
-
-#include <internal.h>
-
-/* Definitions for byte swapping */
-
-/* vax byte order is LSB first. This is not performance critical, and
-   is far more readable this way. */
-#define four_bytes_vax_to_nets(x) ((((((x[3]<<8)|x[2])<<8)|x[1])<<8)|x[0])
-#define vaxtohl(x) four_bytes_vax_to_nets(((const unsigned char *)(x)))
-#define two_bytes_vax_to_nets(x) ((x[1]<<8)|x[0])
-#define vaxtohs(x) two_bytes_vax_to_nets(((const unsigned char *)(x)))
-
-/*** Routines ***************************************************** */
-#ifdef HAVE_KRB5
-unsigned long
-z_quad_cksum(const unsigned char *in,  /* input block */
-            u_int32_t *out,            /* optional longer output */
-            long length,               /* original length in bytes */
-            int out_count,             /* number of iterations */
-            unsigned char *c_seed      /* secret seed, 8 bytes */
-            )
-{
-
-    /*
-     * this routine both returns the low order of the final (last in
-     * time) 32bits of the checksum, and if "out" is not a null
-     * pointer, a longer version, up to entire 32 bytes of the
-     * checksum is written unto the address pointed to.
-     */
-
-    register u_int32_t z;
-    register u_int32_t z2;
-    register u_int32_t x;
-    register u_int32_t x2;
-    const unsigned char *p;
-    register int32_t len;
-    register int i;
-
-    /* use all 8 bytes of seed */
-
-    z = vaxtohl(c_seed);
-    z2 = vaxtohl((const char *)c_seed+4);
-    if (out == NULL)
-       out_count = 1;          /* default */
-
-    /* This is repeated n times!! */
-    for (i = 1; i <=4 && i<= out_count; i++) {
-       len = length;
-       p = in;
-       while (len) {
-           /*
-            * X = Z + Input ... sort of.  Carry out from low half
-            * isn't done, so we're using all 32 bits of x now.
-            */
-           if (len > 1) {
-               x = (z + vaxtohs(p));
-               p += 2;
-               len -= 2;
-           }
-           else {
-               x = (z + *(const unsigned char *)p++);
-               len = 0;
-           }
-           x2 = z2;
-           /*
-            * I think this is supposed to be a squaring operation.
-            * What it really is, I haven't figured out yet.
-            *
-            * Explicit mod 2**32 is for backwards compatibility.  Why
-            * mod 0x7fffffff and not 0x80000000 on the low half of
-            * the (supposed) accumulator?  And where does the number
-            * 83653421 come from??
-            */
-           z  = (((x * x) + (x2 * x2)) & 0xffffffff) % 0x7fffffff;
-           z2 = ((x * (x2+83653421)) & 0xffffffff) % 0x7fffffff; /* modulo */
-       }
-
-       if (out != NULL) {
-           *out++ = z;
-           *out++ = z2;
-       }
-    }
-    /* return final z value as 32 bit version of checksum */
-    return z;
-}
-#endif
diff --git a/zephyr/lib/smwgc.c b/zephyr/lib/smwgc.c
deleted file mode 100644 (file)
index 2289654..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*     Copyright (c) 1988 by the Massachusetts Institute of Technology.
- *     All Rights Reserved.
- */
-#include <zephyr/zephyr.h>
-
-main()
-{
-    FILE *fp;
-    char buf[512],*ptr;
-    int auth,retval;
-    u_short port;
-    ZNotice_t notice;
-    ZSubscription_t sub;
-    struct sockaddr_in from;
-       
-    if ((retval = ZInitialize()) != ZERR_NONE) {
-       com_err("foo",retval,"initing");
-       exit(1);
-    } 
-
-    port = 0;
-    if ((retval = ZOpenPort(&port)) != ZERR_NONE) {
-       com_err("foo",retval,"opening port");
-       exit(1);
-    }
-    printf("Using port %d\n",(int)port);
-    sprintf(buf,"/tmp/wg.%d",getuid());
-    fp = fopen(buf,"w");
-    if (!fp) {
-       com_err("foo",errno,"opening file");
-       exit(1);
-    } 
-    fprintf(fp,"%d\n",(int)port);
-    fclose(fp);
-
-    printf("All ready...\n");
-
-    sub.class = "MESSAGE";
-    sub.classinst = "PERSONAL";
-    sub.recipient = ZGetSender();
-
-    if ((retval = ZSubscribeTo(&sub,1,port)) != ZERR_NONE) {
-       com_err("foo",retval,"subscribing");
-       exit(1);
-    } 
-    for (;;) {
-       if ((retval = ZReceiveNotice(&notice,&from)) != ZERR_NONE) {
-           com_err("foo",retval,"receiving packet");
-           continue;
-       }
-       auth = ZCheckAuthentication(&notice,&from);
-       printf("Class = %s Instance = %s Sender = %s\nTime = %s Auth = %d\n",
-              notice.z_class,notice.z_class_inst,notice.z_sender,
-              ctime(&notice.z_time.tv_sec),auth);
-       printf("Len = %d\n",notice.z_message_len);
-/*     ptr = notice.z_message;
-       for (;ptr<notice.z_message+notice.z_message_len;) {
-           printf("%s\n",ptr);
-           ptr += strlen(ptr)+1;
-       }
-       printf("\n");*/
-       ZFreeNotice(&notice);
-    }
-}
diff --git a/zephyr/lib/zephyr.1 b/zephyr/lib/zephyr.1
deleted file mode 100644 (file)
index c65b5cb..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-.\"    $Id: zephyr.1 2091 2007-12-20 01:17:23Z kcr $
-.\"
-.\" Copyright 1987,1988 by the Massachusetts Institute of Technology
-.\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
-.\" specifies the terms and conditions for redistribution.
-.\"
-.TH ZEPHYR 1 "July 1, 1988" "MIT Project Athena"
-.ds ]W MIT Project Athena
-.SH NAME
-zephyr \- Zephyr Notification Service
-.SH DESCRIPTION
-.PP
-Zephyr is a notice transport and delivery system developed at MIT
-which runs under 4.3BSD Unix.
-.PP
-A Notice Transport and Delivery system is a method of getting small
-quantities of time sensitive information efficiently from one client
-(or server) on a network to another.  The object is to accomplish this
-with the highest possible fan-out (i.e., client to server ratio) while
-maintaining both network and server performance.  Zephyr is a
-multi-cast notice transport and delivery system based upon an
-authenticated datagram protocol.  Localized Zephyr servers provide
-routing, queueing and dispatching services to clients which
-communicate with them via the Zephyr Client Library.  Two special
-purpose Zephyr clients, the WindowGram client and the HostManager
-client provide user and client host communication support.
-.PP
-.I Zephyrd(8)
-servers run on designated server machines.  These servers maintain a
-database of subscriptions and locations for every user using Zephyr.
-The servers stay in contact with one another, and provide a reliable
-backup system (via duplication) in the event of network failures.
-.PP
-Each client machine on the network runs a
-.I zhm(8)
-HostManager client program which is the link between the Zephyr
-servers and the users.  User programs send notices to the HostManager,
-and the HostManager forwards these notices to the nearest server for
-action.  The HostManager is responsible for ensuring that the notices
-reach a server, and for finding a new one if its server fails to respond.
-.PP
-Each user on the network usually runs a WindowGram client program
-automatically upon login.
-.I Zwgc(1)
-displays notices to the user, and handles user
-responses.  Only notices to which the user has subscribed will be sent
-to the WindowGram client.
-.PP
-Subscriptions are handled through the
-.I zctl(1)
-program.  This program allows the user to add or delete subscriptions
-from Zephyr, to add the subscriptions to a file, and to perform other
-miscellaneous functions.
-.SH SEE ALSO
-kerberosintro(1)
-.br
-zaway(1), zctl(1), zleave(1), zlocate(1), znol(1), zwgc(1),
-zwrite(1), zmailnotify(1)
-.br
-zhm(8), zephyrd(8), zinit(8), zstat(8),  zpopnotify(8),
-zshutdown_notify(8), syslogd(8)
-.br
-Project Athena Technical Plan Section E.4.1, `Zephyr Notification
-Service'
-.SH AUTHORS
-.PP
-.br
-Tony Della Fera (MIT-Project Athena, DEC),
-Mark W. Eichin (MIT-Project Athena),
-Robert S. French (MIT-Project Athena),
-David C. Jedlinsky (MIT-Project Athena),
-John T. Kohl (MIT-Project Athena, DEC),
-William E. Sommerfeld (MIT-Project Athena).
-.SH RESTRICTIONS
-Copyright (c) 1987,1988,1989 by the Massachusetts Institute of Technology.
-All Rights Reserved.
-.br
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of the Massachusetts
-Institute of Technology not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.
-.br
-M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
diff --git a/zephyr/lib/zephyr_err.et b/zephyr/lib/zephyr_err.et
deleted file mode 100644 (file)
index 272bd4e..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#      Copyright 1987,1988 Massachusetts Institute of Technology
-#
-#      For copying and distribution information, see the file
-#      "mit-copyright.h".
-# 
-#      $Id: zephyr_err.et 2091 2007-12-20 01:17:23Z kcr $
-#
-       et      zeph
-
-ec  ZERR_PKTLEN,
-       "Packet too long or buffer too small"
-ec  ZERR_HEADERLEN,
-       "Notice header too large"
-ec  ZERR_ILLVAL,
-       "Illegal value in notice"
-ec  ZERR_HMPORT,
-       "Can't get host manager port"
-ec  ZERR_PORTINUSE,
-       "Can't assign port"
-ec  ZERR_BADPKT,
-       "Bad packet format"
-ec  ZERR_VERS,
-       "Incompatible version numbers"
-ec  ZERR_NOPORT,
-       "No port opened"
-ec  ZERR_NONOTICE,
-       "No notices match criteria"
-ec  ZERR_QLEN,
-       "Input queue too long"
-ec  ZERR_HMDEAD,
-       "Hostmanager not responding"
-ec  ZERR_INTERNAL,
-       "Internal error"
-ec  ZERR_NOLOCATIONS,
-       "No previous call to ZLocateUser"
-ec  ZERR_NOMORELOCS,
-       "No more locations available"
-ec  ZERR_FIELDLEN,
-       "Field too long for buffer"
-ec  ZERR_BADFIELD,
-       "Improperly formatted field"
-ec  ZERR_SERVNAK,
-       "SERVNAK received"
-ec  ZERR_AUTHFAIL,
-       "Server could not verify authentication"
-ec  ZERR_LOGINFAIL,
-       "Not logged-in"
-ec  ZERR_NOSUBSCRIPTIONS,
-       "No previous call to ZRetrieveSubscriptions"
-ec  ZERR_NOMORESUBSCRIPTIONS,
-       "No more subscriptions available"
-ec  ZERR_TOOMANYSUBS,
-       "Too many subscriptions to transmit"
-ec  ZERR_EOF,
-       "End of file detected during read"
-
-       end
diff --git a/zephyr/libdyn/Makefile.in b/zephyr/libdyn/Makefile.in
deleted file mode 100644 (file)
index 6589f93..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=..
-VPATH=@srcdir@
-CC=@CC@
-RANLIB=@RANLIB@
-
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -I${top_srcdir}/h -I${BUILDTOP}/h ${CPPFLAGS}
-
-OBJS = dyn_append.o dyn_create.o dyn_debug.o dyn_delete.o dyn_insert.o \
-       dyn_paranoid.o dyn_put.o dyn_realloc.o dyn_size.o
-
-all: libdyn.a dyntest
-
-libdyn.a: ${OBJS}
-       ar cru $@ ${OBJS}
-       ${RANLIB} $@
-
-dyntest: libdyn.a dyntest.o
-       ${CC} ${LDFLAGS} -o $@ dyntest.o libdyn.a
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install:
-
-clean:
-       rm -f ${OBJS} libdyn.a dyntest.o dyntest
-
-${OBJS} dyntest.o: dynP.h ${top_srcdir}/h/dyn.h ${top_srcdir}/h/sysdep.h
-${OBJS} dyntest.o: ${BUILDTOP}/h/config.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/libdyn/README b/zephyr/libdyn/README
deleted file mode 100644 (file)
index 0c08ac5..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-libdyn.a -- Release 1.0
-
-A C Dynamic Object is an array that takes care of resizing itself as
-elements are added and deleted from it.  It can be of any type for
-which sizeof is defined and for which an address of a variable of that
-type can be passed to a function.
-
-To build libdyn.a, simply type "make depend all" (if you don't have
-the program makedepend, of course, leave out the "depend" part).  If
-your system's bcopy() cannot handle overlapping regions, you'll need
-to write one that can.  (Left as an excercise for the reader..)
-
-The library should compile and work without modification on a vast
-number of systems.  It only uses 5 external functions: malloc,
-realloc, free, bcopy, and fprintf (to stderr).  Of these, only bcopy
-should need to be changed for other systems (such as MS-DOS) and it
-could probably be done with a -D flag to the compiler.
-
-The test/demo program is built by "make all".  This program produces
-the library's debugging output (to stderr) as well as some of its own
-output (to stdout).
-
-The library has been tested (with test.c) on a VAX VSII, VAXstation
-3100, DECstation 3100, and IBM RT all running BSD4.3 (except for the
-DECstation, which was running Ultrix V2.1).
-
-An earlier version of this library was posted to alt.sources.  This
-version contains one new function (DynInsert) and slightly cleaner
-code, but no bugfixes (no bugs were found).
-
-Author: Barr3y Jaspan, Student Information Processing Board (SIPB) and
-MIT-Project Athena, bjaspan@athena.mit.edu, 1990
diff --git a/zephyr/libdyn/dyn.3 b/zephyr/libdyn/dyn.3
deleted file mode 100644 (file)
index 0376b2f..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-.TH DYN 3M "15 March 1990"
-
-.SH NAME
-dyn \- the C Dynamic Object library
-
-.SH DESCRIPTION
-
-A C Dynamic Object is an array that takes care of resizing
-itself as you add and delete elements from it.  It can be of any type
-for which sizeof is defined and for which an address of a variable of
-that type can be passed to a function.  The library containing the
-functions described below is called 
-.IR libdyn.a ,
-and the necessary declarations to use them are in
-.RI < dyn.h >.
-.PP
-A DynObject is actually a structure that contains an array and a
-couple of integers to maintain necessary state information.  When a
-Dyn function is said to operate on "the object" or "the array", it is
-operating on the array stored in the structure while at the same time
-updating internal state information.
-
-.SH LIST OF FUNCTIONS 
-.nf
-DynObject DynCreate(size, increment)
-       int size, increment;
-.fi
-.PP
-.IR Requires :
-.I size
-and
-.I increment
-are greater than zero.
-.PP
-.IR Effects :
-Creates a new DynObject that will store elements of size
-.I size
-and will allocate memory in blocks large enough to hold exactly
-.I increment
-elements.  For example, if you are storing 8-byte double
-precision numbers and
-.I increment
-is 5, each 5th element you add to the object will cause it to request
-40 more bytes (8 * 5) from the operating system.  If
-.I increment
-is zero, a default value is used (currently 100).  This is the only
-time the programmer deals with a dynamic object's memory allocation.
-.PP
-.IR Returns :
-.B DynCreate
-returns the new DynObject, or NULL if there is insufficient memory.
-.PP
-.nf
-int DynDestroy(obj)
-       DynObject obj;
-.fi
-.PP
-.IR Modifies :
-obj
-.PP
-.IR Effects :
-Frees all memory associated with
-.IR obj .
-The results of calling any Dyn function on a destroyed object are
-undefined (except for DynCreate, which resets the object).
-.PP
-.IR Returns :
-.B DynDestroy
-returns DYN_OK.
-.PP
-.nf
-int DynAdd(obj, el)
-       DynObject obj;
-       DynPtr el;
-.fi
-.PP
-.IR Modifies :
-obj
-.PP
-.IR Effects :
-Adds the element pointed to by
-.I el
-to the object
-.IR obj ,
-resizing the object if necessary.
-The new element becomes the last element in obj's array.
-.PP
-.IR Returns :
-.B DynAdd
-returns DYN_OK on success or DYN_NOMEM if there is insufficient
-memory.
-.PP
-.nf
-int DynInsert(obj, index, els, num)
-        DynObject obj;
-        DynPtr els;
-        int index, num;
-.fi
-.PP
-.IR Modifies :
-obj
-.PP
-.IR Effects :
-Inserts the array of
-.I num
-elements, pointed to by
-.IR els,
-into the object
-.I obj
-starting at the array location
-.IR index ,
-resizing the object if necessary.  Order is preserved; if you have the
-array "1 2 3 4 5" and insert "10 11 12" at the third position, you
-will have the array "1 2 10 11 12 3 4 5".
-.PP
-.IR Returns :
-.B DynInsert
-returns DYN_BADINDEX if
-.I index
-is not between 0 and
-.BR DynSize ( obj ) ;
-DYN_BADVALUE if
-.I num
-is less than 1; DYN_NOMEM if there is insufficient memory.
-.PP
-.nf
-int DynGet(obj, index)
-       DynObject obj;
-       int index;
-.fi
-.PP
-.IR Effects :
-Returns the address of the element
-.I index
-in the array of
-.IR obj .
-This pointer can be treated as a normal array of the type specified to
-.BR DynCreate .
-The order of elements in this array is the order in which they were
-added to the object.  The returned pointer is guaranteed to be valid
-only until obj is modified.
-.PP
-.IR Returns :
-.B DynGet
-returns NULL if 
-.I index
-is larger than the number of elements in the array of less than zero.
-.PP
-.nf
-int DynDelete(obj, index)
-       DynObject obj;
-       int index;
-.fi
-.PP
-.IR Modifies :
-obj
-.PP
-.IR Effects :
-The element
-.I index
-is deleted from the object
-.IR obj .
-Note that the element is actually removed permanently from the array.
-If you have the array "1 2 3 4 5" and delete the third element, you
-will have the array "1 2 4 5".  The order of elements in not affected.
-.PP
-.IR Returns :
-.B DynDelete
-will return DYN_OK on success or DYN_BADINDEX if the element
-.I index
-does not exist in the array or is less than zero.
-.PP
-.nf
-int DynSize(obj)
-       DynObject obj;
-.fi
-.PP
-.IR Effects :
-Returns the number of elements in the object
-.IR obj .
-.PP
-.nf
-int DynHigh(obj)
-       DynObject obj;
-.fi
-.PP
-.IR Effects :
-Returns the index of the highest element in the object
-.IR obj .
-In this version,
-.B DynHigh
-is macro that expands to
-.B DynSize
-- 1.
-.PP
-.nf
-int DynLow(obj)
-       DynObject obj;
-.fi
-.PP
-.IR Effects :
-Returns the index of the lowest element in the object
-.IR obj .
-In this version,
-.B DynLow
-is macro that expands to 0.
-.PP
-.nf
-int DynDebug(obj, state)
-       DynObject obj;
-       int state;
-.fi
-.PP
-.IR Modifies :
-obj
-.PP
-.IR Effects :
-Sets the debugging state of
-.I obj
-to 
-.I state
-and prints a message on stderr saying what state debugging was set to.
-Any non-zero value for
-.I state
-turns debugging ``on''.  When debugging is on, all Dyn functions will 
-produce (hopefully useful) output to stderr describing what is going on.
-.PP
-.IR Returns :
-.B DynDebug 
-returns DYN_OK.
-.SH AUTHOR
-Barr3y Jaspan, Student Information Processing Board (SIPB) and
-MIT-Project Athena, bjaspan@athena.mit.edu
diff --git a/zephyr/libdyn/dynP.h b/zephyr/libdyn/dynP.h
deleted file mode 100644 (file)
index 26ef10f..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the private header file.
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-
-/*
- * dynP.h -- private header file included by source files for libdyn.a.
- */
-
-#ifndef _DynP_h
-#define _DynP_h
-
-#include <sysdep.h>
-#include <dyn.h>
-
-/*
- * Rep invariant:
- * 1) el_size is the number of bytes per element in the object
- * 2) num_el is the number of elements currently in the object.  It is
- * one higher than the highest index at which an element lives.
- * 3) size is the number of elements the object can hold without
- * resizing.  num_el <= index.
- * 4) inc is a multiple of the number of elements the object grows by
- * each time it is reallocated.
- */
-
-typedef struct _DynObject {
-     DynPtr    array;
-     int       el_size, num_el, size, inc;
-     char      debug, paranoid;
-} DynObjectRec;
-
-/* Internal functions */
-int _DynRealloc __P((DynObject obj, int num_incs));
-
-#define _DynResize(obj, req) \
-     ((obj)->size > (req) ? DYN_OK : \
-     (_DynRealloc((obj), (((req) - (obj)->size) / (obj)->inc) + 1)))
-
-#endif /* _DynP_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/zephyr/libdyn/dyn_append.c b/zephyr/libdyn/dyn_append.c
deleted file mode 100644 (file)
index 541aa0c..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the source code for the function DynAppend().
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-#include <stdio.h>
-
-#include "dynP.h"
-
-int
-DynAppend(DynObject obj,
-         DynPtr els,
-         int num)
-{
-     if (obj->debug)
-         fprintf(stderr, "dyn: append: Writing %d bytes from %p to %p + %d\n",
-                 obj->el_size*num, els, obj->array, obj->num_el*obj->el_size);
-
-     if (obj->size < obj->num_el + num) {
-         int num_incs, ret;
-
-         num_incs = ((obj->num_el + num - obj->size) / obj->inc) + 1;
-         if ((ret = _DynRealloc(obj, num_incs)) != DYN_OK)
-              return ret;
-     }
-
-     (void) memmove(obj->array + obj->num_el*obj->el_size, els,
-                   obj->el_size*num);
-
-     obj->num_el += num;
-
-     if (obj->debug)
-         fprintf(stderr, "dyn: append: done.\n");
-
-     return DYN_OK;
-}
-
diff --git a/zephyr/libdyn/dyn_create.c b/zephyr/libdyn/dyn_create.c
deleted file mode 100644 (file)
index e5bce99..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the source code for the functions DynCreate() and
- * DynDestroy().
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-#include <stdio.h>
-
-#include "dynP.h"
-
-#ifndef DEFAULT_INC
-#define DEFAULT_INC    100
-#endif
-
-static int default_increment = DEFAULT_INC;
-
-DynObject
-DynCreate(int el_size,
-         int inc)
-{
-     DynObject obj;
-
-     obj = (DynObject) malloc(sizeof(DynObjectRec));
-     if (obj == NULL)
-         return NULL;
-
-     obj->array = (DynPtr) malloc(0);
-     obj->el_size = el_size;
-     obj->num_el = obj->size = 0;
-     obj->debug = obj->paranoid = 0;
-     obj->inc = (!! inc) ? inc : default_increment;
-
-     return obj;
-}
-
-int
-DynDestroy(DynObject obj)
-{
-     free(obj->array);
-     free(obj);
-     return DYN_OK;
-}
diff --git a/zephyr/libdyn/dyn_debug.c b/zephyr/libdyn/dyn_debug.c
deleted file mode 100644 (file)
index 95440be..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the source code for the function DynDebug().
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-#include <stdio.h>
-
-#include "dynP.h"
-
-int
-DynDebug(DynObject obj,
-        int state)
-{
-     obj->debug = state;
-
-     fprintf(stderr, "dyn: debug: Debug state set to %d.\n", state);
-     return DYN_OK;
-}
diff --git a/zephyr/libdyn/dyn_delete.c b/zephyr/libdyn/dyn_delete.c
deleted file mode 100644 (file)
index 256f49e..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the source code for the function DynDelete().
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-#include <stdio.h>
-
-#include "dynP.h"
-
-/*
- * Checkers!  Get away from that "hard disk erase" button!
- *    (Stupid dog.  He almost did it to me again ...)
- */                                 
-int
-DynDelete(DynObject obj,
-         int idx)
-{
-     if (idx < 0) {
-         if (obj->debug)
-              fprintf(stderr, "dyn: delete: bad index %d\n", idx);
-         return DYN_BADINDEX;
-     }
-     
-     if (idx >= obj->num_el) {
-         if (obj->debug)
-              fprintf(stderr, "dyn: delete: Highest index is %d.\n",
-                      obj->num_el);
-         return DYN_BADINDEX;
-     }
-
-     if (idx == obj->num_el-1) {
-         if (obj->paranoid) {
-              if (obj->debug)
-                   fprintf(stderr, "dyn: delete: last element, zeroing.\n");
-              (void) memset(obj->array + idx*obj->el_size, 0, obj->el_size);
-         }
-         else {
-              if (obj->debug)
-                   fprintf(stderr, "dyn: delete: last element, punting.\n");
-         }
-     }   
-     else {
-         if (obj->debug)
-              fprintf(stderr,
-                      "dyn: delete: copying %d bytes from %p + %d to + %d.\n",
-                      obj->el_size*(obj->num_el - idx), obj->array,
-                      (idx+1)*obj->el_size, idx*obj->el_size);
-         
-         (void) memmove(obj->array + idx*obj->el_size,
-                        obj->array + (idx+1)*obj->el_size,
-                        obj->el_size*(obj->num_el - idx));
-
-         if (obj->paranoid) {
-              if (obj->debug)
-                   fprintf(stderr,
-                           "dyn: delete: zeroing %d bytes from %p + %d\n",
-                           obj->el_size, obj->array,
-                           obj->el_size*(obj->num_el - 1));
-              (void) memset(obj->array + obj->el_size*(obj->num_el - 1),
-                            0, obj->el_size);
-         }
-     }
-     
-     --obj->num_el;
-     
-     if (obj->debug)
-         fprintf(stderr, "dyn: delete: done.\n");
-
-     return DYN_OK;
-}
diff --git a/zephyr/libdyn/dyn_header.c b/zephyr/libdyn/dyn_header.c
deleted file mode 100644 (file)
index ffe2c92..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the source code for the function xxx.
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
diff --git a/zephyr/libdyn/dyn_insert.c b/zephyr/libdyn/dyn_insert.c
deleted file mode 100644 (file)
index 4445e02..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the source code for the function DynInsert().
- * 
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-#include "dynP.h"
-
-int
-DynInsert(DynObject obj,
-         int idx,
-         DynPtr els,
-         int num)
-     
-{
-     int ret;
-     
-     if (idx < 0 || idx > obj->num_el) {
-         if (obj->debug)
-              fprintf(stderr, "dyn: insert: index %d is not in [0,%d]\n",
-                      idx, obj->num_el);
-         return DYN_BADINDEX;
-     }
-
-     if (num < 1) {
-         if (obj->debug)
-              fprintf(stderr, "dyn: insert: cannot insert %d elements\n",
-                      num);
-         return DYN_BADVALUE;
-     }
-
-     if (obj->debug)
-         fprintf(stderr,"dyn: insert: Moving %d bytes from %p + %d to + %d\n",
-                 (obj->num_el-idx)*obj->el_size, obj->array,
-                 obj->el_size*idx, obj->el_size*(idx+num));
-
-     if ((ret = _DynResize(obj, obj->num_el + num)) != DYN_OK)
-         return ret;
-
-     (void) memmove(obj->array + (idx + num), obj->array + idx, 
-                   (obj->num_el-idx)*obj->el_size);
-
-     if (obj->debug)
-         fprintf(stderr, "dyn: insert: Copying %d bytes from %p to %p + %d\n",
-                 obj->el_size*num, els, obj->array, obj->el_size*idx);
-
-     (void) memmove(obj->array + obj->el_size*idx, els, obj->el_size*num);
-
-     obj->num_el += num;
-
-     if (obj->debug)
-         fprintf(stderr, "dyn: insert: done.\n");
-
-     return DYN_OK;
-}
diff --git a/zephyr/libdyn/dyn_paranoid.c b/zephyr/libdyn/dyn_paranoid.c
deleted file mode 100644 (file)
index 1c7b81c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the source code for the function DynDebug().
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-#include <stdio.h>
-
-#include "dynP.h"
-
-int
-DynParanoid(DynObject obj, int state)
-{
-     obj->paranoid = state;
-
-     if (obj->debug)
-         fprintf(stderr, "dyn: paranoid: Paranoia set to %d.\n", state);
-     return DYN_OK;
-}
diff --git a/zephyr/libdyn/dyn_put.c b/zephyr/libdyn/dyn_put.c
deleted file mode 100644 (file)
index addeadd..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the source code for the functions DynGet() and DynAdd().
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-#include "dynP.h"
-
-static int DynPut __P((DynObject obj, DynPtr el, int index));
-
-DynPtr
-DynGet(DynObject obj,
-       int num)
-{
-     if (num < 0) {
-         if (obj->debug)
-              fprintf(stderr, "dyn: get: bad index %d\n", num);
-         return NULL;
-     }
-     
-     if (num >= obj->num_el) {
-         if (obj->debug)
-              fprintf(stderr, "dyn: get: highest element is %d.\n",
-                      obj->num_el);
-         return NULL;
-     }
-     
-     if (obj->debug)
-         fprintf(stderr, "dyn: get: Returning address %p + %d.\n",
-                 obj->array, obj->el_size*num);
-     
-     return (DynPtr) obj->array + obj->el_size*num;
-}
-
-int
-DynAdd(DynObject obj,
-       DynPtr el)
-{
-     int       ret;
-
-     ret = DynPut(obj, el, obj->num_el);
-     if (ret != DYN_OK)
-         return ret;
-
-     ++obj->num_el;
-     return ret;
-}
-
-/*
- * WARNING!  There is a reason this function is not documented in the
- * man page.  If DynPut used to mutate already existing elements,
- * everything will go fine.  If it is used to add new elements
- * directly, however, the state within the object (such as
- * obj->num_el) will not be updated properly and many other functions
- * in the library will lose.  Have a nice day.
- */
-static int
-DynPut(DynObject obj,
-       DynPtr el,
-       int index)
-{
-     int ret;
-     
-     if (obj->debug)
-         fprintf(stderr, "dyn: put: Writing %d bytes from %p to %p + %d\n",
-                 obj->el_size, el, obj->array, index*obj->el_size);
-
-     if ((ret = _DynResize(obj, index)) != DYN_OK)
-         return ret;
-     
-     (void) memmove(obj->array + index*obj->el_size, el, obj->el_size);
-
-     if (obj->debug)
-         fprintf(stderr, "dyn: put: done.\n");
-     
-     return DYN_OK;
-}
diff --git a/zephyr/libdyn/dyn_realloc.c b/zephyr/libdyn/dyn_realloc.c
deleted file mode 100644 (file)
index 25cf20d..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the source code for the internal function _DynRealloc().
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-#include <stdio.h>
-
-#include "dynP.h"
-
-/*
- * Ideally, this function should not be called from outside the
- * library.  However, nothing will break if it is.
- */
-int
-_DynRealloc(DynObject obj,
-           int num_incs)
-{
-     DynPtr temp;
-     int new_size_in_bytes;
-     
-     new_size_in_bytes = obj->el_size*(obj->size + obj->inc*num_incs);
-
-     if (obj->debug)
-         fprintf(stderr,
-                 "dyn: alloc: Increasing object by %d bytes (%d incs).\n",
-                 obj->el_size*obj->inc*num_incs, num_incs);
-     
-     temp = (DynPtr) realloc(obj->array, new_size_in_bytes);
-     if (temp == NULL) {
-         if (obj->debug)
-              fprintf(stderr, "dyn: alloc: Out of memory.\n");
-         return DYN_NOMEM;
-     }
-     else {
-         obj->array = temp;
-         obj->size += obj->inc*num_incs;
-     }
-
-     if (obj->debug)
-         fprintf(stderr, "dyn: alloc: done.\n");
-         
-     return DYN_OK;
-}
diff --git a/zephyr/libdyn/dyn_size.c b/zephyr/libdyn/dyn_size.c
deleted file mode 100644 (file)
index ea1cc38..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * This file is part of libdyn.a, the C Dynamic Object library.  It
- * contains the source code for the function DynSize().
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-#include <stdio.h>
-
-#include "dynP.h"
-
-int
-DynSize(DynObject obj)
-{
-     if (obj->debug)
-         fprintf(stderr, "dyn: size: returning size %d.\n", obj->num_el);
-
-     return obj->num_el;
-}
diff --git a/zephyr/libdyn/dyntest.c b/zephyr/libdyn/dyntest.c
deleted file mode 100644 (file)
index 009a3d9..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * This file is a (rather silly) demonstration of the use of the
- * C Dynamic Object library.  It is a also reasonably thorough test
- * of the library (except that it only tests it with one data size).
- *
- * There are no restrictions on this code; however, if you make any
- * changes, I request that you document them so that I do not get
- * credit or blame for your modifications.
- *
- * Written by Barr3y Jaspan, Student Information Processing Board (SIPB)
- * and MIT-Project Athena, 1989.
- */
-
-#include <stdio.h>
-#include <string.h>
-
-#include "dyn.h"
-
-static char random_string[] = "This is a random string.";
-static char insert1[] = "This will be put at the beginning.";
-static char insert2[] = "(parenthetical remark!) ";
-static char insert3[] = "  This follows the random string.";
-
-int
-main(int argc,
-     char **argv)
-{
-     DynObject obj;
-     int       i, s;
-     char      d, *data;
-
-     obj = DynCreate(sizeof(char), 8);
-     if (! obj) {
-         fprintf(stderr, "test: create failed.\n");
-         exit(1);
-     }
-     
-     DynDebug(obj, 1);
-     DynParanoid(obj, 1);
-
-     if (DynGet(obj, -5) || DynGet(obj, 0) || DynGet(obj, 1000)) {
-         fprintf(stderr, "test: Get did not fail when it should have.\n");
-         exit(1);
-     }
-
-     if (DynDelete(obj, -1) != DYN_BADINDEX ||
-        DynDelete(obj, 0) != DYN_BADINDEX ||
-        DynDelete(obj, 100) != DYN_BADINDEX) {
-         fprintf(stderr, "test: Delete did not fail when it should have.\n");
-         exit(1);
-     }
-
-     printf("Size of empty object: %d\n", DynSize(obj));
-
-     for (i=0; i<14; i++) {
-         d = (char) i;
-         if (DynAdd(obj, &d) != DYN_OK) {
-              fprintf(stderr, "test: Adding %d failed.\n", i);
-              exit(1);
-         }
-     }
-
-     if (DynAppend(obj, random_string, strlen(random_string)+1) != DYN_OK) {
-         fprintf(stderr, "test: appending array failed.\n");
-         exit(1);
-     }
-     
-     if (DynDelete(obj, DynHigh(obj) / 2) != DYN_OK) {
-         fprintf(stderr, "test: deleting element failed.\n");
-         exit(1);
-     }
-
-     if (DynDelete(obj, DynHigh(obj) * 2) == DYN_OK) {
-         fprintf(stderr, "test: delete should have failed here.\n");
-         exit(1);
-     }
-
-     d = 200;
-     if (DynAdd(obj, &d) != DYN_OK) {
-         fprintf(stderr, "test: Adding %d failed.\n", i);
-         exit(1);
-     }
-
-     data = (char *) DynGet(obj, 0);
-     s = DynSize(obj);
-     for (i=0; i < s; i++)
-         printf("Element %d is %d.\n", i, (unsigned char) data[i]);
-
-     data = (char *) DynGet(obj, 13);
-     printf("Element 13 is %d.\n", (unsigned char) *data);
-
-     data = (char *) DynGet(obj, DynSize(obj));
-     if (data) {
-         fprintf(stderr, "DynGet did not return NULL when it should have.\n");
-         exit(1);
-     }
-
-     printf("This should be the random string: \"%s\"\n",
-           (char *) DynGet(obj, 14));
-
-     if (DynInsert(obj, -1, "foo", 4) != DYN_BADINDEX ||
-        DynInsert(obj, DynSize(obj) + 1, "foo", 4) != DYN_BADINDEX ||
-        DynInsert(obj, 0, "foo", -1) != DYN_BADVALUE) {
-         fprintf(stderr, "DynInsert did not fail when it should have.\n");
-         exit(1);
-     }
-
-     if (DynInsert(obj, DynSize(obj) - 2, insert3, strlen(insert3) +
-                  1) != DYN_OK) {
-         fprintf(stderr, "DynInsert to end failed.\n");
-         exit(1);
-     }  
-
-     if (DynInsert(obj, 19, insert2, strlen(insert2)) != DYN_OK) {
-         fprintf(stderr, "DynInsert to middle failed.\n");
-         exit(1);
-     }
-     
-     if (DynInsert(obj, 0, insert1, strlen(insert1)+1) != DYN_OK) {
-         fprintf(stderr, "DynInsert to start failed.\n");
-         exit(1);
-     } 
-
-     printf("A new random string: \"%s\"\n",
-           (char *) DynGet(obj, 14 + strlen(insert1) + 1));
-     printf("This was put at the beginning: \"%s\"\n",
-           (char *) DynGet(obj, 0));
-
-     DynDestroy(obj);
-
-     return 0;
-}
diff --git a/zephyr/ltmain.sh b/zephyr/ltmain.sh
deleted file mode 100644 (file)
index f924d30..0000000
+++ /dev/null
@@ -1,6938 +0,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun configure.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007  Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-basename="s,^.*/,,g"
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-# The name of this program:
-progname=`echo "$progpath" | $SED $basename`
-modename="$progname"
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION="1.5.24 Debian 1.5.24-1"
-TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)"
-
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell, and then maybe $echo will work.
-  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit $EXIT_SUCCESS
-fi
-
-default_mode=
-help="Try \`$progname --help' for more information."
-magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  SP2NL='tr \040 \012'
-  NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  SP2NL='tr \100 \n'
-  NL2SP='tr \r\n \100\100'
-  ;;
-esac
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-# We save the old values to restore during execute mode.
-for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
-  eval "if test \"\${$lt_var+set}\" = set; then
-         save_$lt_var=\$$lt_var
-         $lt_var=C
-         export $lt_var
-       fi"
-done
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS="  $lt_nl"
-
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  $echo "$modename: not configured to build any kind of library" 1>&2
-  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit $EXIT_FAILURE
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-duplicate_deps=no
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
-
-#####################################
-# Shell function definitions:
-# This seems to be the best place for them
-
-# func_mktempdir [string]
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible.  If
-# given, STRING is the basename for that directory.
-func_mktempdir ()
-{
-    my_template="${TMPDIR-/tmp}/${1-$progname}"
-
-    if test "$run" = ":"; then
-      # Return a directory name, but don't create it in dry-run mode
-      my_tmpdir="${my_template}-$$"
-    else
-
-      # If mktemp works, use that first and foremost
-      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-
-      if test ! -d "$my_tmpdir"; then
-       # Failing that, at least try and use $RANDOM to avoid a race
-       my_tmpdir="${my_template}-${RANDOM-0}$$"
-
-       save_mktempdir_umask=`umask`
-       umask 0077
-       $mkdir "$my_tmpdir"
-       umask $save_mktempdir_umask
-      fi
-
-      # If we're not in dry-run mode, bomb out on failure
-      test -d "$my_tmpdir" || {
-        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
-       exit $EXIT_FAILURE
-      }
-    fi
-
-    $echo "X$my_tmpdir" | $Xsed
-}
-
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-func_win32_libid ()
-{
-  win32_libid_type="unknown"
-  win32_fileres=`file -L $1 2>/dev/null`
-  case $win32_fileres in
-  *ar\ archive\ import\ library*) # definitely import
-    win32_libid_type="x86 archive import"
-    ;;
-  *ar\ archive*) # could be an import, or static
-    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
-      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 | \
-       $SED -n -e '1,100{
-               / I /{
-                       s,.*,import,
-                       p
-                       q
-                       }
-               }'`
-      case $win32_nmres in
-      import*)  win32_libid_type="x86 archive import";;
-      *)        win32_libid_type="x86 archive static";;
-      esac
-    fi
-    ;;
-  *DLL*)
-    win32_libid_type="x86 DLL"
-    ;;
-  *executable*) # but shell scripts are "executable" too...
-    case $win32_fileres in
-    *MS\ Windows\ PE\ Intel*)
-      win32_libid_type="x86 DLL"
-      ;;
-    esac
-    ;;
-  esac
-  $echo $win32_libid_type
-}
-
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
-    if test -n "$available_tags" && test -z "$tagname"; then
-      CC_quoted=
-      for arg in $CC; do
-       case $arg in
-         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
-         arg="\"$arg\""
-         ;;
-       esac
-       CC_quoted="$CC_quoted $arg"
-      done
-      case $@ in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
-      # Blanks at the start of $base_compile will cause this to fail
-      # if we don't check for them as well.
-      *)
-       for z in $available_tags; do
-         if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
-           # Evaluate the configuration.
-           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
-           CC_quoted=
-           for arg in $CC; do
-           # Double-quote args containing other shell metacharacters.
-           case $arg in
-             *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
-             arg="\"$arg\""
-             ;;
-           esac
-           CC_quoted="$CC_quoted $arg"
-         done
-           case "$@ " in
-             " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
-             # The compiler in the base compile command matches
-             # the one in the tagged configuration.
-             # Assume this is the tagged configuration we want.
-             tagname=$z
-             break
-             ;;
-           esac
-         fi
-       done
-       # If $tagname still isn't set, then no tagged configuration
-       # was found and let the user know that the "--tag" command
-       # line option must be used.
-       if test -z "$tagname"; then
-         $echo "$modename: unable to infer tagged configuration"
-         $echo "$modename: specify a tag with \`--tag'" 1>&2
-         exit $EXIT_FAILURE
-#        else
-#          $echo "$modename: using $tagname tagged configuration"
-       fi
-       ;;
-      esac
-    fi
-}
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
-    f_ex_an_ar_dir="$1"; shift
-    f_ex_an_ar_oldlib="$1"
-
-    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
-    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
-    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
-     :
-    else
-      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
-      exit $EXIT_FAILURE
-    fi
-}
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
-    my_gentop="$1"; shift
-    my_oldlibs=${1+"$@"}
-    my_oldobjs=""
-    my_xlib=""
-    my_xabs=""
-    my_xdir=""
-    my_status=""
-
-    $show "${rm}r $my_gentop"
-    $run ${rm}r "$my_gentop"
-    $show "$mkdir $my_gentop"
-    $run $mkdir "$my_gentop"
-    my_status=$?
-    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
-      exit $my_status
-    fi
-
-    for my_xlib in $my_oldlibs; do
-      # Extract the objects.
-      case $my_xlib in
-       [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
-       *) my_xabs=`pwd`"/$my_xlib" ;;
-      esac
-      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
-      my_xlib_u=$my_xlib
-      while :; do
-        case " $extracted_archives " in
-       *" $my_xlib_u "*)
-         extracted_serial=`expr $extracted_serial + 1`
-         my_xlib_u=lt$extracted_serial-$my_xlib ;;
-       *) break ;;
-       esac
-      done
-      extracted_archives="$extracted_archives $my_xlib_u"
-      my_xdir="$my_gentop/$my_xlib_u"
-
-      $show "${rm}r $my_xdir"
-      $run ${rm}r "$my_xdir"
-      $show "$mkdir $my_xdir"
-      $run $mkdir "$my_xdir"
-      exit_status=$?
-      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
-       exit $exit_status
-      fi
-      case $host in
-      *-darwin*)
-       $show "Extracting $my_xabs"
-       # Do not bother doing anything if just a dry run
-       if test -z "$run"; then
-         darwin_orig_dir=`pwd`
-         cd $my_xdir || exit $?
-         darwin_archive=$my_xabs
-         darwin_curdir=`pwd`
-         darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
-         darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
-         if test -n "$darwin_arches"; then 
-           darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
-           darwin_arch=
-           $show "$darwin_base_archive has multiple architectures $darwin_arches"
-           for darwin_arch in  $darwin_arches ; do
-             mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-             lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-             cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-             func_extract_an_archive "`pwd`" "${darwin_base_archive}"
-             cd "$darwin_curdir"
-             $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
-           done # $darwin_arches
-      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
-           darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
-           darwin_file=
-           darwin_files=
-           for darwin_file in $darwin_filelist; do
-             darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
-             lipo -create -output "$darwin_file" $darwin_files
-           done # $darwin_filelist
-           ${rm}r unfat-$$
-           cd "$darwin_orig_dir"
-         else
-           cd "$darwin_orig_dir"
-           func_extract_an_archive "$my_xdir" "$my_xabs"
-         fi # $darwin_arches
-       fi # $run
-       ;;
-      *)
-        func_extract_an_archive "$my_xdir" "$my_xabs"
-        ;;
-      esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-    done
-    func_extract_archives_result="$my_oldobjs"
-}
-# End of Shell function definitions
-#####################################
-
-# Darwin sucks
-eval std_shrext=\"$shrext_cmds\"
-
-disable_libs=no
-
-# Parse our command line options once, thoroughly.
-while test "$#" -gt 0
-do
-  arg="$1"
-  shift
-
-  case $arg in
-  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$prev"; then
-    case $prev in
-    execute_dlfiles)
-      execute_dlfiles="$execute_dlfiles $arg"
-      ;;
-    tag)
-      tagname="$arg"
-      preserve_args="${preserve_args}=$arg"
-
-      # Check whether tagname contains only valid characters
-      case $tagname in
-      *[!-_A-Za-z0-9,/]*)
-       $echo "$progname: invalid tag name: $tagname" 1>&2
-       exit $EXIT_FAILURE
-       ;;
-      esac
-
-      case $tagname in
-      CC)
-       # Don't test for the "default" C tag, as we know, it's there, but
-       # not specially marked.
-       ;;
-      *)
-       if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
-         taglist="$taglist $tagname"
-         # Evaluate the configuration.
-         eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
-       else
-         $echo "$progname: ignoring unknown tag $tagname" 1>&2
-       fi
-       ;;
-      esac
-      ;;
-    *)
-      eval "$prev=\$arg"
-      ;;
-    esac
-
-    prev=
-    prevopt=
-    continue
-  fi
-
-  # Have we seen a non-optional argument yet?
-  case $arg in
-  --help)
-    show_help=yes
-    ;;
-
-  --version)
-    echo "\
-$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
-
-Copyright (C) 2007  Free Software Foundation, Inc.
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-    exit $?
-    ;;
-
-  --config)
-    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
-    # Now print the configurations for the tags.
-    for tagname in $taglist; do
-      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
-    done
-    exit $?
-    ;;
-
-  --debug)
-    $echo "$progname: enabling shell trace mode"
-    set -x
-    preserve_args="$preserve_args $arg"
-    ;;
-
-  --dry-run | -n)
-    run=:
-    ;;
-
-  --features)
-    $echo "host: $host"
-    if test "$build_libtool_libs" = yes; then
-      $echo "enable shared libraries"
-    else
-      $echo "disable shared libraries"
-    fi
-    if test "$build_old_libs" = yes; then
-      $echo "enable static libraries"
-    else
-      $echo "disable static libraries"
-    fi
-    exit $?
-    ;;
-
-  --finish) mode="finish" ;;
-
-  --mode) prevopt="--mode" prev=mode ;;
-  --mode=*) mode="$optarg" ;;
-
-  --preserve-dup-deps) duplicate_deps="yes" ;;
-
-  --quiet | --silent)
-    show=:
-    preserve_args="$preserve_args $arg"
-    ;;
-
-  --tag)
-    prevopt="--tag"
-    prev=tag
-    preserve_args="$preserve_args --tag"
-    ;;
-  --tag=*)
-    set tag "$optarg" ${1+"$@"}
-    shift
-    prev=tag
-    preserve_args="$preserve_args --tag"
-    ;;
-
-  -dlopen)
-    prevopt="-dlopen"
-    prev=execute_dlfiles
-    ;;
-
-  -*)
-    $echo "$modename: unrecognized option \`$arg'" 1>&2
-    $echo "$help" 1>&2
-    exit $EXIT_FAILURE
-    ;;
-
-  *)
-    nonopt="$arg"
-    break
-    ;;
-  esac
-done
-
-if test -n "$prevopt"; then
-  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
-  $echo "$help" 1>&2
-  exit $EXIT_FAILURE
-fi
-
-case $disable_libs in
-no) 
-  ;;
-shared)
-  build_libtool_libs=no
-  build_old_libs=yes
-  ;;
-static)
-  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-  ;;
-esac
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end.  This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-if test -z "$show_help"; then
-
-  # Infer the operation mode.
-  if test -z "$mode"; then
-    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
-    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
-    case $nonopt in
-    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
-      mode=link
-      for arg
-      do
-       case $arg in
-       -c)
-          mode=compile
-          break
-          ;;
-       esac
-      done
-      ;;
-    *db | *dbx | *strace | *truss)
-      mode=execute
-      ;;
-    *install*|cp|mv)
-      mode=install
-      ;;
-    *rm)
-      mode=uninstall
-      ;;
-    *)
-      # If we have no mode, but dlfiles were specified, then do execute mode.
-      test -n "$execute_dlfiles" && mode=execute
-
-      # Just use the default operation mode.
-      if test -z "$mode"; then
-       if test -n "$nonopt"; then
-         $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
-       else
-         $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
-       fi
-      fi
-      ;;
-    esac
-  fi
-
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
-    $echo "$help" 1>&2
-    exit $EXIT_FAILURE
-  fi
-
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$modename --help --mode=$mode' for more information."
-
-  # These modes are in order of execution frequency so that they run quickly.
-  case $mode in
-  # libtool compile mode
-  compile)
-    modename="$modename: compile"
-    # Get the compilation command and the source file.
-    base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
-    suppress_opt=yes
-    suppress_output=
-    arg_mode=normal
-    libobj=
-    later=
-
-    for arg
-    do
-      case $arg_mode in
-      arg  )
-       # do not "continue".  Instead, add this to base_compile
-       lastarg="$arg"
-       arg_mode=normal
-       ;;
-
-      target )
-       libobj="$arg"
-       arg_mode=normal
-       continue
-       ;;
-
-      normal )
-       # Accept any command-line options.
-       case $arg in
-       -o)
-         if test -n "$libobj" ; then
-           $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-           exit $EXIT_FAILURE
-         fi
-         arg_mode=target
-         continue
-         ;;
-
-       -static | -prefer-pic | -prefer-non-pic)
-         later="$later $arg"
-         continue
-         ;;
-
-       -no-suppress)
-         suppress_opt=no
-         continue
-         ;;
-
-       -Xcompiler)
-         arg_mode=arg  #  the next one goes into the "base_compile" arg list
-         continue      #  The current "srcfile" will either be retained or
-         ;;            #  replaced later.  I would guess that would be a bug.
-
-       -Wc,*)
-         args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
-         lastarg=
-         save_ifs="$IFS"; IFS=','
-         for arg in $args; do
-           IFS="$save_ifs"
-
-           # Double-quote args containing other shell metacharacters.
-           # Many Bourne shells cannot handle close brackets correctly
-           # in scan sets, so we specify it separately.
-           case $arg in
-             *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
-             arg="\"$arg\""
-             ;;
-           esac
-           lastarg="$lastarg $arg"
-         done
-         IFS="$save_ifs"
-         lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
-
-         # Add the arguments to base_compile.
-         base_compile="$base_compile $lastarg"
-         continue
-         ;;
-
-       * )
-         # Accept the current argument as the source file.
-         # The previous "srcfile" becomes the current argument.
-         #
-         lastarg="$srcfile"
-         srcfile="$arg"
-         ;;
-       esac  #  case $arg
-       ;;
-      esac    #  case $arg_mode
-
-      # Aesthetically quote the previous argument.
-      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
-      case $lastarg in
-      # Double-quote args containing other shell metacharacters.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, and some SunOS ksh mistreat backslash-escaping
-      # in scan sets (worked around with variable expansion),
-      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
-      # at all, so we specify them separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-       lastarg="\"$lastarg\""
-       ;;
-      esac
-
-      base_compile="$base_compile $lastarg"
-    done # for arg
-
-    case $arg_mode in
-    arg)
-      $echo "$modename: you must specify an argument for -Xcompile"
-      exit $EXIT_FAILURE
-      ;;
-    target)
-      $echo "$modename: you must specify a target with \`-o'" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    *)
-      # Get the name of the library object.
-      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
-      ;;
-    esac
-
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSifmso]'
-    case $libobj in
-    *.ada) xform=ada ;;
-    *.adb) xform=adb ;;
-    *.ads) xform=ads ;;
-    *.asm) xform=asm ;;
-    *.c++) xform=c++ ;;
-    *.cc) xform=cc ;;
-    *.ii) xform=ii ;;
-    *.class) xform=class ;;
-    *.cpp) xform=cpp ;;
-    *.cxx) xform=cxx ;;
-    *.[fF][09]?) xform=[fF][09]. ;;
-    *.for) xform=for ;;
-    *.java) xform=java ;;
-    *.obj) xform=obj ;;
-    esac
-
-    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
-    case $libobj in
-    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
-    *)
-      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    esac
-
-    func_infer_tag $base_compile
-
-    for arg in $later; do
-      case $arg in
-      -static)
-       build_old_libs=yes
-       continue
-       ;;
-
-      -prefer-pic)
-       pic_mode=yes
-       continue
-       ;;
-
-      -prefer-non-pic)
-       pic_mode=no
-       continue
-       ;;
-      esac
-    done
-
-    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
-    case $qlibobj in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-       qlibobj="\"$qlibobj\"" ;;
-    esac
-    test "X$libobj" != "X$qlibobj" \
-       && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"'  &()|`$[]' \
-       && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
-    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$xdir" = "X$obj"; then
-      xdir=
-    else
-      xdir=$xdir/
-    fi
-    lobj=${xdir}$objdir/$objname
-
-    if test -z "$base_compile"; then
-      $echo "$modename: you must specify a compilation command" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
-      removelist="$obj $lobj $libobj ${libobj}T"
-    else
-      removelist="$lobj $libobj ${libobj}T"
-    fi
-
-    $run $rm $removelist
-    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
-
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
-
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-      removelist="$removelist $output_obj $lockfile"
-      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
-    else
-      output_obj=
-      need_locks=no
-      lockfile=
-    fi
-
-    # Lock this critical section if it is needed
-    # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
-      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
-       $show "Waiting for $lockfile to be removed"
-       sleep 2
-      done
-    elif test "$need_locks" = warn; then
-      if test -f "$lockfile"; then
-       $echo "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-       $run $rm $removelist
-       exit $EXIT_FAILURE
-      fi
-      $echo "$srcfile" > "$lockfile"
-    fi
-
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
-    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
-    case $qsrcfile in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-      qsrcfile="\"$qsrcfile\"" ;;
-    esac
-
-    $run $rm "$libobj" "${libobj}T"
-
-    # Create a libtool object file (analogous to a ".la" file),
-    # but don't create it if we're doing a dry run.
-    test -z "$run" && cat > ${libobj}T <<EOF
-# $libobj - a libtool object file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-EOF
-
-    # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
-      # Without this assignment, base_compile gets emptied.
-      fbsd_hideous_sh_bug=$base_compile
-
-      if test "$pic_mode" != no; then
-       command="$base_compile $qsrcfile $pic_flag"
-      else
-       # Don't build PIC code
-       command="$base_compile $qsrcfile"
-      fi
-
-      if test ! -d "${xdir}$objdir"; then
-       $show "$mkdir ${xdir}$objdir"
-       $run $mkdir ${xdir}$objdir
-       exit_status=$?
-       if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
-         exit $exit_status
-       fi
-      fi
-
-      if test -z "$output_obj"; then
-       # Place PIC objects in $objdir
-       command="$command -o $lobj"
-      fi
-
-      $run $rm "$lobj" "$output_obj"
-
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-       test -n "$output_obj" && $run $rm $removelist
-       exit $EXIT_FAILURE
-      fi
-
-      if test "$need_locks" = warn &&
-        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-       $echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-       $run $rm $removelist
-       exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed, then go on to compile the next one
-      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
-       $show "$mv $output_obj $lobj"
-       if $run $mv $output_obj $lobj; then :
-       else
-         error=$?
-         $run $rm $removelist
-         exit $error
-       fi
-      fi
-
-      # Append the name of the PIC object to the libtool object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object='$objdir/$objname'
-
-EOF
-
-      # Allow error messages only from the first compilation.
-      if test "$suppress_opt" = yes; then
-        suppress_output=' >/dev/null 2>&1'
-      fi
-    else
-      # No PIC object so indicate it doesn't exist in the libtool
-      # object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object=none
-
-EOF
-    fi
-
-    # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
-       # Don't build PIC code
-       command="$base_compile $qsrcfile"
-      else
-       command="$base_compile $qsrcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-       command="$command -o $obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
-      $run $rm "$obj" "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-       $run $rm $removelist
-       exit $EXIT_FAILURE
-      fi
-
-      if test "$need_locks" = warn &&
-        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-       $echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-       $run $rm $removelist
-       exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed
-      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
-       $show "$mv $output_obj $obj"
-       if $run $mv $output_obj $obj; then :
-       else
-         error=$?
-         $run $rm $removelist
-         exit $error
-       fi
-      fi
-
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object='$objname'
-
-EOF
-    else
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object=none
-
-EOF
-    fi
-
-    $run $mv "${libobj}T" "${libobj}"
-
-    # Unlock the critical section if it was locked
-    if test "$need_locks" != no; then
-      $run $rm "$lockfile"
-    fi
-
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool link mode
-  link | relink)
-    modename="$modename: link"
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-      # It is impossible to link a dll without this setting, and
-      # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
-      # flag for every libtool invocation.
-      # allow_undefined=no
-
-      # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
-      # even a static library is built.  For now, we need to specify
-      # -no-undefined on the libtool link line when we can be certain
-      # that all symbols are satisfied, otherwise we get a static library.
-      allow_undefined=yes
-      ;;
-    *)
-      allow_undefined=yes
-      ;;
-    esac
-    libtool_args="$nonopt"
-    base_compile="$nonopt $@"
-    compile_command="$nonopt"
-    finalize_command="$nonopt"
-
-    compile_rpath=
-    finalize_rpath=
-    compile_shlibpath=
-    finalize_shlibpath=
-    convenience=
-    old_convenience=
-    deplibs=
-    old_deplibs=
-    compiler_flags=
-    linker_flags=
-    dllsearchpath=
-    lib_search_path=`pwd`
-    inst_prefix_dir=
-
-    avoid_version=no
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    notinst_path= # paths that contain not-installed libtool libraries
-    precious_files_regex=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-    vinfo_number=no
-
-    func_infer_tag $base_compile
-
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -all-static | -static | -static-libtool-libs)
-       case $arg in
-       -all-static)
-         if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-           $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
-         fi
-         if test -n "$link_static_flag"; then
-           dlopen_self=$dlopen_self_static
-         fi
-         prefer_static_libs=yes
-         ;;
-       -static)
-         if test -z "$pic_flag" && test -n "$link_static_flag"; then
-           dlopen_self=$dlopen_self_static
-         fi
-         prefer_static_libs=built
-         ;;
-       -static-libtool-libs)
-         if test -z "$pic_flag" && test -n "$link_static_flag"; then
-           dlopen_self=$dlopen_self_static
-         fi
-         prefer_static_libs=yes
-         ;;
-       esac
-       build_libtool_libs=no
-       build_old_libs=yes
-       break
-       ;;
-      esac
-    done
-
-    # See if our shared archives depend on static archives.
-    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
-    # Go through the arguments, transforming them on the way.
-    while test "$#" -gt 0; do
-      arg="$1"
-      shift
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-       qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
-       ;;
-      *) qarg=$arg ;;
-      esac
-      libtool_args="$libtool_args $qarg"
-
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-       case $prev in
-       output)
-         compile_command="$compile_command @OUTPUT@"
-         finalize_command="$finalize_command @OUTPUT@"
-         ;;
-       esac
-
-       case $prev in
-       dlfiles|dlprefiles)
-         if test "$preload" = no; then
-           # Add the symbol object into the linking commands.
-           compile_command="$compile_command @SYMFILE@"
-           finalize_command="$finalize_command @SYMFILE@"
-           preload=yes
-         fi
-         case $arg in
-         *.la | *.lo) ;;  # We handle these cases below.
-         force)
-           if test "$dlself" = no; then
-             dlself=needless
-             export_dynamic=yes
-           fi
-           prev=
-           continue
-           ;;
-         self)
-           if test "$prev" = dlprefiles; then
-             dlself=yes
-           elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-             dlself=yes
-           else
-             dlself=needless
-             export_dynamic=yes
-           fi
-           prev=
-           continue
-           ;;
-         *)
-           if test "$prev" = dlfiles; then
-             dlfiles="$dlfiles $arg"
-           else
-             dlprefiles="$dlprefiles $arg"
-           fi
-           prev=
-           continue
-           ;;
-         esac
-         ;;
-       expsyms)
-         export_symbols="$arg"
-         if test ! -f "$arg"; then
-           $echo "$modename: symbol file \`$arg' does not exist"
-           exit $EXIT_FAILURE
-         fi
-         prev=
-         continue
-         ;;
-       expsyms_regex)
-         export_symbols_regex="$arg"
-         prev=
-         continue
-         ;;
-       inst_prefix)
-         inst_prefix_dir="$arg"
-         prev=
-         continue
-         ;;
-       precious_regex)
-         precious_files_regex="$arg"
-         prev=
-         continue
-         ;;
-       release)
-         release="-$arg"
-         prev=
-         continue
-         ;;
-       objectlist)
-         if test -f "$arg"; then
-           save_arg=$arg
-           moreargs=
-           for fil in `cat $save_arg`
-           do
-#            moreargs="$moreargs $fil"
-             arg=$fil
-             # A libtool-controlled object.
-
-             # Check to see that this really is a libtool object.
-             if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-               pic_object=
-               non_pic_object=
-
-               # Read the .lo file
-               # If there is no directory component, then add one.
-               case $arg in
-               */* | *\\*) . $arg ;;
-               *) . ./$arg ;;
-               esac
-
-               if test -z "$pic_object" || \
-                  test -z "$non_pic_object" ||
-                  test "$pic_object" = none && \
-                  test "$non_pic_object" = none; then
-                 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-                 exit $EXIT_FAILURE
-               fi
-
-               # Extract subdirectory from the argument.
-               xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-               if test "X$xdir" = "X$arg"; then
-                 xdir=
-               else
-                 xdir="$xdir/"
-               fi
-
-               if test "$pic_object" != none; then
-                 # Prepend the subdirectory the object is found in.
-                 pic_object="$xdir$pic_object"
-
-                 if test "$prev" = dlfiles; then
-                   if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-                     dlfiles="$dlfiles $pic_object"
-                     prev=
-                     continue
-                   else
-                     # If libtool objects are unsupported, then we need to preload.
-                     prev=dlprefiles
-                   fi
-                 fi
-
-                 # CHECK ME:  I think I busted this.  -Ossama
-                 if test "$prev" = dlprefiles; then
-                   # Preload the old-style object.
-                   dlprefiles="$dlprefiles $pic_object"
-                   prev=
-                 fi
-
-                 # A PIC object.
-                 libobjs="$libobjs $pic_object"
-                 arg="$pic_object"
-               fi
-
-               # Non-PIC object.
-               if test "$non_pic_object" != none; then
-                 # Prepend the subdirectory the object is found in.
-                 non_pic_object="$xdir$non_pic_object"
-
-                 # A standard non-PIC object
-                 non_pic_objects="$non_pic_objects $non_pic_object"
-                 if test -z "$pic_object" || test "$pic_object" = none ; then
-                   arg="$non_pic_object"
-                 fi
-               else
-                 # If the PIC object exists, use it instead.
-                 # $xdir was prepended to $pic_object above.
-                 non_pic_object="$pic_object"
-                 non_pic_objects="$non_pic_objects $non_pic_object"
-               fi
-             else
-               # Only an error if not doing a dry-run.
-               if test -z "$run"; then
-                 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-                 exit $EXIT_FAILURE
-               else
-                 # Dry-run case.
-
-                 # Extract subdirectory from the argument.
-                 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-                 if test "X$xdir" = "X$arg"; then
-                   xdir=
-                 else
-                   xdir="$xdir/"
-                 fi
-
-                 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-                 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-                 libobjs="$libobjs $pic_object"
-                 non_pic_objects="$non_pic_objects $non_pic_object"
-               fi
-             fi
-           done
-         else
-           $echo "$modename: link input file \`$save_arg' does not exist"
-           exit $EXIT_FAILURE
-         fi
-         arg=$save_arg
-         prev=
-         continue
-         ;;
-       rpath | xrpath)
-         # We need an absolute path.
-         case $arg in
-         [\\/]* | [A-Za-z]:[\\/]*) ;;
-         *)
-           $echo "$modename: only absolute run-paths are allowed" 1>&2
-           exit $EXIT_FAILURE
-           ;;
-         esac
-         if test "$prev" = rpath; then
-           case "$rpath " in
-           *" $arg "*) ;;
-           *) rpath="$rpath $arg" ;;
-           esac
-         else
-           case "$xrpath " in
-           *" $arg "*) ;;
-           *) xrpath="$xrpath $arg" ;;
-           esac
-         fi
-         prev=
-         continue
-         ;;
-       xcompiler)
-         compiler_flags="$compiler_flags $qarg"
-         prev=
-         compile_command="$compile_command $qarg"
-         finalize_command="$finalize_command $qarg"
-         continue
-         ;;
-       xlinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $wl$qarg"
-         prev=
-         compile_command="$compile_command $wl$qarg"
-         finalize_command="$finalize_command $wl$qarg"
-         continue
-         ;;
-       xcclinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $qarg"
-         prev=
-         compile_command="$compile_command $qarg"
-         finalize_command="$finalize_command $qarg"
-         continue
-         ;;
-       shrext)
-         shrext_cmds="$arg"
-         prev=
-         continue
-         ;;
-       darwin_framework|darwin_framework_skip)
-         test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
-         compile_command="$compile_command $arg"
-         finalize_command="$finalize_command $arg"
-         prev=
-         continue
-         ;;
-       *)
-         eval "$prev=\"\$arg\""
-         prev=
-         continue
-         ;;
-       esac
-      fi # test -n "$prev"
-
-      prevarg="$arg"
-
-      case $arg in
-      -all-static)
-       if test -n "$link_static_flag"; then
-         compile_command="$compile_command $link_static_flag"
-         finalize_command="$finalize_command $link_static_flag"
-       fi
-       continue
-       ;;
-
-      -allow-undefined)
-       # FIXME: remove this flag sometime in the future.
-       $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
-       continue
-       ;;
-
-      -avoid-version)
-       avoid_version=yes
-       continue
-       ;;
-
-      -dlopen)
-       prev=dlfiles
-       continue
-       ;;
-
-      -dlpreopen)
-       prev=dlprefiles
-       continue
-       ;;
-
-      -export-dynamic)
-       export_dynamic=yes
-       continue
-       ;;
-
-      -export-symbols | -export-symbols-regex)
-       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-         $echo "$modename: more than one -exported-symbols argument is not allowed"
-         exit $EXIT_FAILURE
-       fi
-       if test "X$arg" = "X-export-symbols"; then
-         prev=expsyms
-       else
-         prev=expsyms_regex
-       fi
-       continue
-       ;;
-
-      -framework|-arch|-isysroot)
-       case " $CC " in
-         *" ${arg} ${1} "* | *" ${arg} ${1} "*) 
-               prev=darwin_framework_skip ;;
-         *) compiler_flags="$compiler_flags $arg"
-            prev=darwin_framework ;;
-       esac
-       compile_command="$compile_command $arg"
-       finalize_command="$finalize_command $arg"
-       continue
-       ;;
-
-      -inst-prefix-dir)
-       prev=inst_prefix
-       continue
-       ;;
-
-      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
-      # so, if we see these flags be careful not to treat them like -L
-      -L[A-Z][A-Z]*:*)
-       case $with_gcc/$host in
-       no/*-*-irix* | /*-*-irix*)
-         compile_command="$compile_command $arg"
-         finalize_command="$finalize_command $arg"
-         ;;
-       esac
-       continue
-       ;;
-
-      -L*)
-       dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
-       # We need an absolute path.
-       case $dir in
-       [\\/]* | [A-Za-z]:[\\/]*) ;;
-       *)
-         absdir=`cd "$dir" && pwd`
-         if test -z "$absdir"; then
-           $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-           absdir="$dir"
-           notinst_path="$notinst_path $dir"
-         fi
-         dir="$absdir"
-         ;;
-       esac
-       case "$deplibs " in
-       *" -L$dir "*) ;;
-       *)
-         deplibs="$deplibs -L$dir"
-         lib_search_path="$lib_search_path $dir"
-         ;;
-       esac
-       case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-         testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
-         case :$dllsearchpath: in
-         *":$dir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$dir";;
-         esac
-         case :$dllsearchpath: in
-         *":$testbindir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
-         esac
-         ;;
-       esac
-       continue
-       ;;
-
-      -l*)
-       if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-         case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
-           # These systems don't actually have a C or math library (as such)
-           continue
-           ;;
-         *-*-os2*)
-           # These systems don't actually have a C library (as such)
-           test "X$arg" = "X-lc" && continue
-           ;;
-         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-           # Do not include libc due to us having libc/libc_r.
-           test "X$arg" = "X-lc" && continue
-           ;;
-         *-*-rhapsody* | *-*-darwin1.[012])
-           # Rhapsody C and math libraries are in the System framework
-           deplibs="$deplibs -framework System"
-           continue
-           ;;
-         *-*-sco3.2v5* | *-*-sco5v6*)
-           # Causes problems with __ctype
-           test "X$arg" = "X-lc" && continue
-           ;;
-         *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-           # Compiler inserts libc in the correct place for threads to work
-           test "X$arg" = "X-lc" && continue
-           ;;
-         esac
-       elif test "X$arg" = "X-lc_r"; then
-        case $host in
-        *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-          # Do not include libc_r directly, use -pthread flag.
-          continue
-          ;;
-        esac
-       fi
-       deplibs="$deplibs $arg"
-       continue
-       ;;
-
-      # Tru64 UNIX uses -model [arg] to determine the layout of C++
-      # classes, name mangling, and exception handling.
-      -model)
-       compile_command="$compile_command $arg"
-       compiler_flags="$compiler_flags $arg"
-       finalize_command="$finalize_command $arg"
-       prev=xcompiler
-       continue
-       ;;
-
-     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-       compiler_flags="$compiler_flags $arg"
-       compile_command="$compile_command $arg"
-       finalize_command="$finalize_command $arg"
-       continue
-       ;;
-
-      -module)
-       module=yes
-       continue
-       ;;
-
-      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
-      # -r[0-9][0-9]* specifies the processor on the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
-      # +DA*, +DD* enable 64-bit mode on the HP compiler
-      # -q* pass through compiler args for the IBM compiler
-      # -m* pass through architecture-specific compiler args for GCC
-      # -m*, -t[45]*, -txscale* pass through architecture-specific
-      # compiler args for GCC
-      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
-      # -F/path gives path to uninstalled frameworks, gcc on darwin
-      # @file GCC response files
-      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
-
-       # Unknown arguments in both finalize_command and compile_command need
-       # to be aesthetically quoted because they are evaled later.
-       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-       case $arg in
-       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
-         arg="\"$arg\""
-         ;;
-       esac
-        compile_command="$compile_command $arg"
-        finalize_command="$finalize_command $arg"
-        compiler_flags="$compiler_flags $arg"
-        continue
-        ;;
-
-      -shrext)
-       prev=shrext
-       continue
-       ;;
-
-      -no-fast-install)
-       fast_install=no
-       continue
-       ;;
-
-      -no-install)
-       case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
-         # The PATH hackery in wrapper scripts is required on Windows
-         # and Darwin in order for the loader to find any dlls it needs.
-         $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
-         $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
-         fast_install=no
-         ;;
-       *) no_install=yes ;;
-       esac
-       continue
-       ;;
-
-      -no-undefined)
-       allow_undefined=no
-       continue
-       ;;
-
-      -objectlist)
-       prev=objectlist
-       continue
-       ;;
-
-      -o) prev=output ;;
-
-      -precious-files-regex)
-       prev=precious_regex
-       continue
-       ;;
-
-      -release)
-       prev=release
-       continue
-       ;;
-
-      -rpath)
-       prev=rpath
-       continue
-       ;;
-
-      -R)
-       prev=xrpath
-       continue
-       ;;
-
-      -R*)
-       dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
-       # We need an absolute path.
-       case $dir in
-       [\\/]* | [A-Za-z]:[\\/]*) ;;
-       *)
-         $echo "$modename: only absolute run-paths are allowed" 1>&2
-         exit $EXIT_FAILURE
-         ;;
-       esac
-       case "$xrpath " in
-       *" $dir "*) ;;
-       *) xrpath="$xrpath $dir" ;;
-       esac
-       continue
-       ;;
-
-      -static | -static-libtool-libs)
-       # The effects of -static are defined in a previous loop.
-       # We used to do the same as -all-static on platforms that
-       # didn't have a PIC flag, but the assumption that the effects
-       # would be equivalent was wrong.  It would break on at least
-       # Digital Unix and AIX.
-       continue
-       ;;
-
-      -thread-safe)
-       thread_safe=yes
-       continue
-       ;;
-
-      -version-info)
-       prev=vinfo
-       continue
-       ;;
-      -version-number)
-       prev=vinfo
-       vinfo_number=yes
-       continue
-       ;;
-
-      -Wc,*)
-       args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
-       arg=
-       save_ifs="$IFS"; IFS=','
-       for flag in $args; do
-         IFS="$save_ifs"
-         case $flag in
-           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
-           flag="\"$flag\""
-           ;;
-         esac
-         arg="$arg $wl$flag"
-         compiler_flags="$compiler_flags $flag"
-       done
-       IFS="$save_ifs"
-       arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-       ;;
-
-      -Wl,*)
-       args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
-       arg=
-       save_ifs="$IFS"; IFS=','
-       for flag in $args; do
-         IFS="$save_ifs"
-         case $flag in
-           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
-           flag="\"$flag\""
-           ;;
-         esac
-         arg="$arg $wl$flag"
-         compiler_flags="$compiler_flags $wl$flag"
-         linker_flags="$linker_flags $flag"
-       done
-       IFS="$save_ifs"
-       arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-       ;;
-
-      -Xcompiler)
-       prev=xcompiler
-       continue
-       ;;
-
-      -Xlinker)
-       prev=xlinker
-       continue
-       ;;
-
-      -XCClinker)
-       prev=xcclinker
-       continue
-       ;;
-
-      # Some other compiler flag.
-      -* | +*)
-       # Unknown arguments in both finalize_command and compile_command need
-       # to be aesthetically quoted because they are evaled later.
-       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-       case $arg in
-       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
-         arg="\"$arg\""
-         ;;
-       esac
-       ;;
-
-      *.$objext)
-       # A standard object.
-       objs="$objs $arg"
-       ;;
-
-      *.lo)
-       # A libtool-controlled object.
-
-       # Check to see that this really is a libtool object.
-       if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         pic_object=
-         non_pic_object=
-
-         # Read the .lo file
-         # If there is no directory component, then add one.
-         case $arg in
-         */* | *\\*) . $arg ;;
-         *) . ./$arg ;;
-         esac
-
-         if test -z "$pic_object" || \
-            test -z "$non_pic_object" ||
-            test "$pic_object" = none && \
-            test "$non_pic_object" = none; then
-           $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-           exit $EXIT_FAILURE
-         fi
-
-         # Extract subdirectory from the argument.
-         xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-         if test "X$xdir" = "X$arg"; then
-           xdir=
-         else
-           xdir="$xdir/"
-         fi
-
-         if test "$pic_object" != none; then
-           # Prepend the subdirectory the object is found in.
-           pic_object="$xdir$pic_object"
-
-           if test "$prev" = dlfiles; then
-             if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-               dlfiles="$dlfiles $pic_object"
-               prev=
-               continue
-             else
-               # If libtool objects are unsupported, then we need to preload.
-               prev=dlprefiles
-             fi
-           fi
-
-           # CHECK ME:  I think I busted this.  -Ossama
-           if test "$prev" = dlprefiles; then
-             # Preload the old-style object.
-             dlprefiles="$dlprefiles $pic_object"
-             prev=
-           fi
-
-           # A PIC object.
-           libobjs="$libobjs $pic_object"
-           arg="$pic_object"
-         fi
-
-         # Non-PIC object.
-         if test "$non_pic_object" != none; then
-           # Prepend the subdirectory the object is found in.
-           non_pic_object="$xdir$non_pic_object"
-
-           # A standard non-PIC object
-           non_pic_objects="$non_pic_objects $non_pic_object"
-           if test -z "$pic_object" || test "$pic_object" = none ; then
-             arg="$non_pic_object"
-           fi
-         else
-           # If the PIC object exists, use it instead.
-           # $xdir was prepended to $pic_object above.
-           non_pic_object="$pic_object"
-           non_pic_objects="$non_pic_objects $non_pic_object"
-         fi
-       else
-         # Only an error if not doing a dry-run.
-         if test -z "$run"; then
-           $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-           exit $EXIT_FAILURE
-         else
-           # Dry-run case.
-
-           # Extract subdirectory from the argument.
-           xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-           if test "X$xdir" = "X$arg"; then
-             xdir=
-           else
-             xdir="$xdir/"
-           fi
-
-           pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-           non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-           libobjs="$libobjs $pic_object"
-           non_pic_objects="$non_pic_objects $non_pic_object"
-         fi
-       fi
-       ;;
-
-      *.$libext)
-       # An archive.
-       deplibs="$deplibs $arg"
-       old_deplibs="$old_deplibs $arg"
-       continue
-       ;;
-
-      *.la)
-       # A libtool-controlled library.
-
-       if test "$prev" = dlfiles; then
-         # This library was specified with -dlopen.
-         dlfiles="$dlfiles $arg"
-         prev=
-       elif test "$prev" = dlprefiles; then
-         # The library was specified with -dlpreopen.
-         dlprefiles="$dlprefiles $arg"
-         prev=
-       else
-         deplibs="$deplibs $arg"
-       fi
-       continue
-       ;;
-
-      # Some other compiler argument.
-      *)
-       # Unknown arguments in both finalize_command and compile_command need
-       # to be aesthetically quoted because they are evaled later.
-       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-       case $arg in
-       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
-         arg="\"$arg\""
-         ;;
-       esac
-       ;;
-      esac # arg
-
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-       compile_command="$compile_command $arg"
-       finalize_command="$finalize_command $arg"
-      fi
-    done # argument parsing loop
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
-    fi
-
-    oldlibs=
-    # calculate the name of the file, without its directory
-    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
-    libobjs_save="$libobjs"
-
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
-    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$output_objdir" = "X$output"; then
-      output_objdir="$objdir"
-    else
-      output_objdir="$output_objdir/$objdir"
-    fi
-    # Create the object directory.
-    if test ! -d "$output_objdir"; then
-      $show "$mkdir $output_objdir"
-      $run $mkdir $output_objdir
-      exit_status=$?
-      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
-       exit $exit_status
-      fi
-    fi
-
-    # Determine the type of output
-    case $output in
-    "")
-      $echo "$modename: you must specify an output file" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
-
-    case $host in
-    *cygwin* | *mingw* | *pw32*)
-      # don't eliminate duplications in $postdeps and $predeps
-      duplicate_compiler_generated_deps=yes
-      ;;
-    *)
-      duplicate_compiler_generated_deps=$duplicate_deps
-      ;;
-    esac
-    specialdeplibs=
-
-    libs=
-    # Find all interdependent deplibs by searching for libraries
-    # that are linked more than once (e.g. -la -lb -la)
-    for deplib in $deplibs; do
-      if test "X$duplicate_deps" = "Xyes" ; then
-       case "$libs " in
-       *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-       esac
-      fi
-      libs="$libs $deplib"
-    done
-
-    if test "$linkmode" = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
-       for pre_post_dep in $predeps $postdeps; do
-         case "$pre_post_deps " in
-         *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
-         esac
-         pre_post_deps="$pre_post_deps $pre_post_dep"
-       done
-      fi
-      pre_post_deps=
-    fi
-
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    case $linkmode in
-    lib)
-       passes="conv link"
-       for file in $dlfiles $dlprefiles; do
-         case $file in
-         *.la) ;;
-         *)
-           $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
-           exit $EXIT_FAILURE
-           ;;
-         esac
-       done
-       ;;
-    prog)
-       compile_deplibs=
-       finalize_deplibs=
-       alldeplibs=no
-       newdlfiles=
-       newdlprefiles=
-       passes="conv scan dlopen dlpreopen link"
-       ;;
-    *)  passes="conv"
-       ;;
-    esac
-    for pass in $passes; do
-      if test "$linkmode,$pass" = "lib,link" ||
-        test "$linkmode,$pass" = "prog,scan"; then
-       libs="$deplibs"
-       deplibs=
-      fi
-      if test "$linkmode" = prog; then
-       case $pass in
-       dlopen) libs="$dlfiles" ;;
-       dlpreopen) libs="$dlprefiles" ;;
-       link)
-         libs="$deplibs %DEPLIBS%"
-         test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
-         ;;
-       esac
-      fi
-      if test "$pass" = dlopen; then
-       # Collect dlpreopened libraries
-       save_deplibs="$deplibs"
-       deplibs=
-      fi
-      for deplib in $libs; do
-       lib=
-       found=no
-       case $deplib in
-       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-         if test "$linkmode,$pass" = "prog,link"; then
-           compile_deplibs="$deplib $compile_deplibs"
-           finalize_deplibs="$deplib $finalize_deplibs"
-         else
-           compiler_flags="$compiler_flags $deplib"
-         fi
-         continue
-         ;;
-       -l*)
-         if test "$linkmode" != lib && test "$linkmode" != prog; then
-           $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
-           continue
-         fi
-         name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
-         for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
-           for search_ext in .la $std_shrext .so .a; do
-             # Search the libtool library
-             lib="$searchdir/lib${name}${search_ext}"
-             if test -f "$lib"; then
-               if test "$search_ext" = ".la"; then
-                 found=yes
-               else
-                 found=no
-               fi
-               break 2
-             fi
-           done
-         done
-         if test "$found" != yes; then
-           # deplib doesn't seem to be a libtool library
-           if test "$linkmode,$pass" = "prog,link"; then
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           else
-             deplibs="$deplib $deplibs"
-             test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-           fi
-           continue
-         else # deplib is a libtool library
-           # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
-           # We need to do some special things here, and not later.
-           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-             case " $predeps $postdeps " in
-             *" $deplib "*)
-               if (${SED} -e '2q' $lib |
-                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-                 library_names=
-                 old_library=
-                 case $lib in
-                 */* | *\\*) . $lib ;;
-                 *) . ./$lib ;;
-                 esac
-                 for l in $old_library $library_names; do
-                   ll="$l"
-                 done
-                 if test "X$ll" = "X$old_library" ; then # only static version available
-                   found=no
-                   ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-                   test "X$ladir" = "X$lib" && ladir="."
-                   lib=$ladir/$old_library
-                   if test "$linkmode,$pass" = "prog,link"; then
-                     compile_deplibs="$deplib $compile_deplibs"
-                     finalize_deplibs="$deplib $finalize_deplibs"
-                   else
-                     deplibs="$deplib $deplibs"
-                     test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-                   fi
-                   continue
-                 fi
-               fi
-               ;;
-             *) ;;
-             esac
-           fi
-         fi
-         ;; # -l
-       -L*)
-         case $linkmode in
-         lib)
-           deplibs="$deplib $deplibs"
-           test "$pass" = conv && continue
-           newdependency_libs="$deplib $newdependency_libs"
-           newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-           ;;
-         prog)
-           if test "$pass" = conv; then
-             deplibs="$deplib $deplibs"
-             continue
-           fi
-           if test "$pass" = scan; then
-             deplibs="$deplib $deplibs"
-           else
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           fi
-           newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-           ;;
-         *)
-           $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
-           ;;
-         esac # linkmode
-         continue
-         ;; # -L
-       -R*)
-         if test "$pass" = link; then
-           dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
-           # Make sure the xrpath contains only unique directories.
-           case "$xrpath " in
-           *" $dir "*) ;;
-           *) xrpath="$xrpath $dir" ;;
-           esac
-         fi
-         deplibs="$deplib $deplibs"
-         continue
-         ;;
-       *.la) lib="$deplib" ;;
-       *.$libext)
-         if test "$pass" = conv; then
-           deplibs="$deplib $deplibs"
-           continue
-         fi
-         case $linkmode in
-         lib)
-           valid_a_lib=no
-           case $deplibs_check_method in
-             match_pattern*)
-               set dummy $deplibs_check_method
-               match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-               if eval $echo \"$deplib\" 2>/dev/null \
-                   | $SED 10q \
-                   | $EGREP "$match_pattern_regex" > /dev/null; then
-                 valid_a_lib=yes
-               fi
-               ;;
-             pass_all)
-               valid_a_lib=yes
-               ;;
-            esac
-           if test "$valid_a_lib" != yes; then
-             $echo
-             $echo "*** Warning: Trying to link with static lib archive $deplib."
-             $echo "*** I have the capability to make that library automatically link in when"
-             $echo "*** you link to this library.  But I can only do this if you have a"
-             $echo "*** shared version of the library, which you do not appear to have"
-             $echo "*** because the file extensions .$libext of this argument makes me believe"
-             $echo "*** that it is just a static archive that I should not used here."
-           else
-             $echo
-             $echo "*** Warning: Linking the shared library $output against the"
-             $echo "*** static library $deplib is not portable!"
-             deplibs="$deplib $deplibs"
-           fi
-           continue
-           ;;
-         prog)
-           if test "$pass" != link; then
-             deplibs="$deplib $deplibs"
-           else
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           fi
-           continue
-           ;;
-         esac # linkmode
-         ;; # *.$libext
-       *.lo | *.$objext)
-         if test "$pass" = conv; then
-           deplibs="$deplib $deplibs"
-         elif test "$linkmode" = prog; then
-           if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-             # If there is no dlopen support or we're linking statically,
-             # we need to preload.
-             newdlprefiles="$newdlprefiles $deplib"
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           else
-             newdlfiles="$newdlfiles $deplib"
-           fi
-         fi
-         continue
-         ;;
-       %DEPLIBS%)
-         alldeplibs=yes
-         continue
-         ;;
-       esac # case $deplib
-       if test "$found" = yes || test -f "$lib"; then :
-       else
-         $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
-         exit $EXIT_FAILURE
-       fi
-
-       # Check to see that this really is a libtool archive.
-       if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-       else
-         $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-         exit $EXIT_FAILURE
-       fi
-
-       ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-       test "X$ladir" = "X$lib" && ladir="."
-
-       dlname=
-       dlopen=
-       dlpreopen=
-       libdir=
-       library_names=
-       old_library=
-       # If the library was installed with an old release of libtool,
-       # it will not redefine variables installed, or shouldnotlink
-       installed=yes
-       shouldnotlink=no
-       avoidtemprpath=
-
-
-       # Read the .la file
-       case $lib in
-       */* | *\\*) . $lib ;;
-       *) . ./$lib ;;
-       esac
-
-       if test "$linkmode,$pass" = "lib,link" ||
-          test "$linkmode,$pass" = "prog,scan" ||
-          { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-         test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-         test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
-       fi
-
-       if test "$pass" = conv; then
-         # Only check for convenience libraries
-         deplibs="$lib $deplibs"
-         if test -z "$libdir"; then
-           if test -z "$old_library"; then
-             $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-             exit $EXIT_FAILURE
-           fi
-           # It is a libtool convenience library, so add in its objects.
-           convenience="$convenience $ladir/$objdir/$old_library"
-           old_convenience="$old_convenience $ladir/$objdir/$old_library"
-           tmp_libs=
-           for deplib in $dependency_libs; do
-             deplibs="$deplib $deplibs"
-              if test "X$duplicate_deps" = "Xyes" ; then
-               case "$tmp_libs " in
-               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-               esac
-              fi
-             tmp_libs="$tmp_libs $deplib"
-           done
-         elif test "$linkmode" != prog && test "$linkmode" != lib; then
-           $echo "$modename: \`$lib' is not a convenience library" 1>&2
-           exit $EXIT_FAILURE
-         fi
-         continue
-       fi # $pass = conv
-
-
-       # Get the name of the library we link against.
-       linklib=
-       for l in $old_library $library_names; do
-         linklib="$l"
-       done
-       if test -z "$linklib"; then
-         $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-         exit $EXIT_FAILURE
-       fi
-
-       # This library was specified with -dlopen.
-       if test "$pass" = dlopen; then
-         if test -z "$libdir"; then
-           $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
-           exit $EXIT_FAILURE
-         fi
-         if test -z "$dlname" ||
-            test "$dlopen_support" != yes ||
-            test "$build_libtool_libs" = no; then
-           # If there is no dlname, no dlopen support or we're linking
-           # statically, we need to preload.  We also need to preload any
-           # dependent libraries so libltdl's deplib preloader doesn't
-           # bomb out in the load deplibs phase.
-           dlprefiles="$dlprefiles $lib $dependency_libs"
-         else
-           newdlfiles="$newdlfiles $lib"
-         fi
-         continue
-       fi # $pass = dlopen
-
-       # We need an absolute path.
-       case $ladir in
-       [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-       *)
-         abs_ladir=`cd "$ladir" && pwd`
-         if test -z "$abs_ladir"; then
-           $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
-           $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
-           abs_ladir="$ladir"
-         fi
-         ;;
-       esac
-       laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-
-       # Find the relevant object directory and library name.
-       if test "X$installed" = Xyes; then
-         if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-           $echo "$modename: warning: library \`$lib' was moved." 1>&2
-           dir="$ladir"
-           absdir="$abs_ladir"
-           libdir="$abs_ladir"
-         else
-           dir="$libdir"
-           absdir="$libdir"
-         fi
-         test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
-       else
-         if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-           dir="$ladir"
-           absdir="$abs_ladir"
-           # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
-         else
-           dir="$ladir/$objdir"
-           absdir="$abs_ladir/$objdir"
-           # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
-         fi
-       fi # $installed = yes
-       name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-
-       # This library was specified with -dlpreopen.
-       if test "$pass" = dlpreopen; then
-         if test -z "$libdir"; then
-           $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
-           exit $EXIT_FAILURE
-         fi
-         # Prefer using a static library (so that no silly _DYNAMIC symbols
-         # are required to link).
-         if test -n "$old_library"; then
-           newdlprefiles="$newdlprefiles $dir/$old_library"
-         # Otherwise, use the dlname, so that lt_dlopen finds it.
-         elif test -n "$dlname"; then
-           newdlprefiles="$newdlprefiles $dir/$dlname"
-         else
-           newdlprefiles="$newdlprefiles $dir/$linklib"
-         fi
-       fi # $pass = dlpreopen
-
-       if test -z "$libdir"; then
-         # Link the convenience library
-         if test "$linkmode" = lib; then
-           deplibs="$dir/$old_library $deplibs"
-         elif test "$linkmode,$pass" = "prog,link"; then
-           compile_deplibs="$dir/$old_library $compile_deplibs"
-           finalize_deplibs="$dir/$old_library $finalize_deplibs"
-         else
-           deplibs="$lib $deplibs" # used for prog,scan pass
-         fi
-         continue
-       fi
-
-
-       if test "$linkmode" = prog && test "$pass" != link; then
-         newlib_search_path="$newlib_search_path $ladir"
-         deplibs="$lib $deplibs"
-
-         linkalldeplibs=no
-         if test "$link_all_deplibs" != no || test -z "$library_names" ||
-            test "$build_libtool_libs" = no; then
-           linkalldeplibs=yes
-         fi
-
-         tmp_libs=
-         for deplib in $dependency_libs; do
-           case $deplib in
-           -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
-           esac
-           # Need to link against all dependency_libs?
-           if test "$linkalldeplibs" = yes; then
-             deplibs="$deplib $deplibs"
-           else
-             # Need to hardcode shared library paths
-             # or/and link against static libraries
-             newdependency_libs="$deplib $newdependency_libs"
-           fi
-           if test "X$duplicate_deps" = "Xyes" ; then
-             case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-             esac
-           fi
-           tmp_libs="$tmp_libs $deplib"
-         done # for deplib
-         continue
-       fi # $linkmode = prog...
-
-       if test "$linkmode,$pass" = "prog,link"; then
-         if test -n "$library_names" &&
-            { { test "$prefer_static_libs" = no ||
-                test "$prefer_static_libs,$installed" = "built,yes"; } ||
-              test -z "$old_library"; }; then
-           # We need to hardcode the library path
-           if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
-             # Make sure the rpath contains only unique directories.
-             case "$temp_rpath " in
-             *" $dir "*) ;;
-             *" $absdir "*) ;;
-             *) temp_rpath="$temp_rpath $absdir" ;;
-             esac
-           fi
-
-           # Hardcode the library path.
-           # Skip directories that are in the system default run-time
-           # search path.
-           case " $sys_lib_dlsearch_path " in
-           *" $absdir "*) ;;
-           *)
-             case "$compile_rpath " in
-             *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
-             esac
-             ;;
-           esac
-           case " $sys_lib_dlsearch_path " in
-           *" $libdir "*) ;;
-           *)
-             case "$finalize_rpath " in
-             *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
-             esac
-             ;;
-           esac
-         fi # $linkmode,$pass = prog,link...
-
-         if test "$alldeplibs" = yes &&
-            { test "$deplibs_check_method" = pass_all ||
-              { test "$build_libtool_libs" = yes &&
-                test -n "$library_names"; }; }; then
-           # We only need to search for static libraries
-           continue
-         fi
-       fi
-
-       link_static=no # Whether the deplib will be linked statically
-       use_static_libs=$prefer_static_libs
-       if test "$use_static_libs" = built && test "$installed" = yes ; then
-         use_static_libs=no
-       fi
-       if test -n "$library_names" &&
-          { test "$use_static_libs" = no || test -z "$old_library"; }; then
-         if test "$installed" = no; then
-           notinst_deplibs="$notinst_deplibs $lib"
-           need_relink=yes
-         fi
-         # This is a shared library
-
-         # Warn about portability, can't link against -module's on
-         # some systems (darwin)
-         if test "$shouldnotlink" = yes && test "$pass" = link ; then
-           $echo
-           if test "$linkmode" = prog; then
-             $echo "*** Warning: Linking the executable $output against the loadable module"
-           else
-             $echo "*** Warning: Linking the shared library $output against the loadable module"
-           fi
-           $echo "*** $linklib is not portable!"
-         fi
-         if test "$linkmode" = lib &&
-            test "$hardcode_into_libs" = yes; then
-           # Hardcode the library path.
-           # Skip directories that are in the system default run-time
-           # search path.
-           case " $sys_lib_dlsearch_path " in
-           *" $absdir "*) ;;
-           *)
-             case "$compile_rpath " in
-             *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
-             esac
-             ;;
-           esac
-           case " $sys_lib_dlsearch_path " in
-           *" $libdir "*) ;;
-           *)
-             case "$finalize_rpath " in
-             *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
-             esac
-             ;;
-           esac
-         fi
-
-         if test -n "$old_archive_from_expsyms_cmds"; then
-           # figure out the soname
-           set dummy $library_names
-           realname="$2"
-           shift; shift
-           libname=`eval \\$echo \"$libname_spec\"`
-           # use dlname if we got it. it's perfectly good, no?
-           if test -n "$dlname"; then
-             soname="$dlname"
-           elif test -n "$soname_spec"; then
-             # bleh windows
-             case $host in
-             *cygwin* | mingw*)
-               major=`expr $current - $age`
-               versuffix="-$major"
-               ;;
-             esac
-             eval soname=\"$soname_spec\"
-           else
-             soname="$realname"
-           fi
-
-           # Make a new name for the extract_expsyms_cmds to use
-           soroot="$soname"
-           soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
-           newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
-
-           # If the library has no export list, then create one now
-           if test -f "$output_objdir/$soname-def"; then :
-           else
-             $show "extracting exported symbol list from \`$soname'"
-             save_ifs="$IFS"; IFS='~'
-             cmds=$extract_expsyms_cmds
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               eval cmd=\"$cmd\"
-               $show "$cmd"
-               $run eval "$cmd" || exit $?
-             done
-             IFS="$save_ifs"
-           fi
-
-           # Create $newlib
-           if test -f "$output_objdir/$newlib"; then :; else
-             $show "generating import library for \`$soname'"
-             save_ifs="$IFS"; IFS='~'
-             cmds=$old_archive_from_expsyms_cmds
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               eval cmd=\"$cmd\"
-               $show "$cmd"
-               $run eval "$cmd" || exit $?
-             done
-             IFS="$save_ifs"
-           fi
-           # make sure the library variables are pointing to the new library
-           dir=$output_objdir
-           linklib=$newlib
-         fi # test -n "$old_archive_from_expsyms_cmds"
-
-         if test "$linkmode" = prog || test "$mode" != relink; then
-           add_shlibpath=
-           add_dir=
-           add=
-           lib_linked=yes
-           case $hardcode_action in
-           immediate | unsupported)
-             if test "$hardcode_direct" = no; then
-               add="$dir/$linklib"
-               case $host in
-                 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-                 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
-                 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-                   *-*-unixware7*) add_dir="-L$dir" ;;
-                 *-*-darwin* )
-                   # if the lib is a module then we can not link against
-                   # it, someone is ignoring the new warnings I added
-                   if /usr/bin/file -L $add 2> /dev/null |
-                      $EGREP ": [^:]* bundle" >/dev/null ; then
-                     $echo "** Warning, lib $linklib is a module, not a shared library"
-                     if test -z "$old_library" ; then
-                       $echo
-                       $echo "** And there doesn't seem to be a static archive available"
-                       $echo "** The link will probably fail, sorry"
-                     else
-                       add="$dir/$old_library"
-                     fi
-                   fi
-               esac
-             elif test "$hardcode_minus_L" = no; then
-               case $host in
-               *-*-sunos*) add_shlibpath="$dir" ;;
-               esac
-               add_dir="-L$dir"
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = no; then
-               add_shlibpath="$dir"
-               add="-l$name"
-             else
-               lib_linked=no
-             fi
-             ;;
-           relink)
-             if test "$hardcode_direct" = yes; then
-               add="$dir/$linklib"
-             elif test "$hardcode_minus_L" = yes; then
-               add_dir="-L$dir"
-               # Try looking first in the location we're being installed to.
-               if test -n "$inst_prefix_dir"; then
-                 case $libdir in
-                   [\\/]*)
-                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
-                     ;;
-                 esac
-               fi
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = yes; then
-               add_shlibpath="$dir"
-               add="-l$name"
-             else
-               lib_linked=no
-             fi
-             ;;
-           *) lib_linked=no ;;
-           esac
-
-           if test "$lib_linked" != yes; then
-             $echo "$modename: configuration error: unsupported hardcode properties"
-             exit $EXIT_FAILURE
-           fi
-
-           if test -n "$add_shlibpath"; then
-             case :$compile_shlibpath: in
-             *":$add_shlibpath:"*) ;;
-             *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
-             esac
-           fi
-           if test "$linkmode" = prog; then
-             test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-             test -n "$add" && compile_deplibs="$add $compile_deplibs"
-           else
-             test -n "$add_dir" && deplibs="$add_dir $deplibs"
-             test -n "$add" && deplibs="$add $deplibs"
-             if test "$hardcode_direct" != yes && \
-                test "$hardcode_minus_L" != yes && \
-                test "$hardcode_shlibpath_var" = yes; then
-               case :$finalize_shlibpath: in
-               *":$libdir:"*) ;;
-               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-               esac
-             fi
-           fi
-         fi
-
-         if test "$linkmode" = prog || test "$mode" = relink; then
-           add_shlibpath=
-           add_dir=
-           add=
-           # Finalize command for both is simple: just hardcode it.
-           if test "$hardcode_direct" = yes; then
-             add="$libdir/$linklib"
-           elif test "$hardcode_minus_L" = yes; then
-             add_dir="-L$libdir"
-             add="-l$name"
-           elif test "$hardcode_shlibpath_var" = yes; then
-             case :$finalize_shlibpath: in
-             *":$libdir:"*) ;;
-             *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-             esac
-             add="-l$name"
-           elif test "$hardcode_automatic" = yes; then
-             if test -n "$inst_prefix_dir" &&
-                test -f "$inst_prefix_dir$libdir/$linklib" ; then
-               add="$inst_prefix_dir$libdir/$linklib"
-             else
-               add="$libdir/$linklib"
-             fi
-           else
-             # We cannot seem to hardcode it, guess we'll fake it.
-             add_dir="-L$libdir"
-             # Try looking first in the location we're being installed to.
-             if test -n "$inst_prefix_dir"; then
-               case $libdir in
-                 [\\/]*)
-                   add_dir="$add_dir -L$inst_prefix_dir$libdir"
-                   ;;
-               esac
-             fi
-             add="-l$name"
-           fi
-
-           if test "$linkmode" = prog; then
-             test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-             test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
-           else
-             test -n "$add_dir" && deplibs="$add_dir $deplibs"
-             test -n "$add" && deplibs="$add $deplibs"
-           fi
-         fi
-       elif test "$linkmode" = prog; then
-         # Here we assume that one of hardcode_direct or hardcode_minus_L
-         # is not unsupported.  This is valid on all known static and
-         # shared platforms.
-         if test "$hardcode_direct" != unsupported; then
-           test -n "$old_library" && linklib="$old_library"
-           compile_deplibs="$dir/$linklib $compile_deplibs"
-           finalize_deplibs="$dir/$linklib $finalize_deplibs"
-         else
-           compile_deplibs="-l$name -L$dir $compile_deplibs"
-           finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-         fi
-       elif test "$build_libtool_libs" = yes; then
-         # Not a shared library
-         if test "$deplibs_check_method" != pass_all; then
-           # We're trying link a shared library against a static one
-           # but the system doesn't support it.
-
-           # Just print a warning and add the library to dependency_libs so
-           # that the program can be linked against the static library.
-           $echo
-           $echo "*** Warning: This system can not link to static lib archive $lib."
-           $echo "*** I have the capability to make that library automatically link in when"
-           $echo "*** you link to this library.  But I can only do this if you have a"
-           $echo "*** shared version of the library, which you do not appear to have."
-           if test "$module" = yes; then
-             $echo "*** But as you try to build a module library, libtool will still create "
-             $echo "*** a static module, that should work as long as the dlopening application"
-             $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
-             if test -z "$global_symbol_pipe"; then
-               $echo
-               $echo "*** However, this would only work if libtool was able to extract symbol"
-               $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-               $echo "*** not find such a program.  So, this module is probably useless."
-               $echo "*** \`nm' from GNU binutils and a full rebuild may help."
-             fi
-             if test "$build_old_libs" = no; then
-               build_libtool_libs=module
-               build_old_libs=yes
-             else
-               build_libtool_libs=no
-             fi
-           fi
-         else
-           deplibs="$dir/$old_library $deplibs"
-           link_static=yes
-         fi
-       fi # link shared/static library?
-
-       if test "$linkmode" = lib; then
-         if test -n "$dependency_libs" &&
-            { test "$hardcode_into_libs" != yes ||
-              test "$build_old_libs" = yes ||
-              test "$link_static" = yes; }; then
-           # Extract -R from dependency_libs
-           temp_deplibs=
-           for libdir in $dependency_libs; do
-             case $libdir in
-             -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
-                  case " $xrpath " in
-                  *" $temp_xrpath "*) ;;
-                  *) xrpath="$xrpath $temp_xrpath";;
-                  esac;;
-             *) temp_deplibs="$temp_deplibs $libdir";;
-             esac
-           done
-           dependency_libs="$temp_deplibs"
-         fi
-
-         newlib_search_path="$newlib_search_path $absdir"
-         # Link against this library
-         test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-         # ... and its dependency_libs
-         tmp_libs=
-         for deplib in $dependency_libs; do
-           newdependency_libs="$deplib $newdependency_libs"
-           if test "X$duplicate_deps" = "Xyes" ; then
-             case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-             esac
-           fi
-           tmp_libs="$tmp_libs $deplib"
-         done
-
-         if test "$link_all_deplibs" != no; then
-           # Add the search paths of all dependency libraries
-           for deplib in $dependency_libs; do
-             case $deplib in
-             -L*) path="$deplib" ;;
-             *.la)
-               dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
-               test "X$dir" = "X$deplib" && dir="."
-               # We need an absolute path.
-               case $dir in
-               [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-               *)
-                 absdir=`cd "$dir" && pwd`
-                 if test -z "$absdir"; then
-                   $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
-                   absdir="$dir"
-                 fi
-                 ;;
-               esac
-               if grep "^installed=no" $deplib > /dev/null; then
-                 path="$absdir/$objdir"
-               else
-                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-                 if test -z "$libdir"; then
-                   $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-                   exit $EXIT_FAILURE
-                 fi
-                 if test "$absdir" != "$libdir"; then
-                   $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
-                 fi
-                 path="$absdir"
-               fi
-               depdepl=
-               case $host in
-               *-*-darwin*)
-                 # we do not want to link against static libs,
-                 # but need to link against shared
-                 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-                 if test -n "$deplibrary_names" ; then
-                   for tmp in $deplibrary_names ; do
-                     depdepl=$tmp
-                   done
-                   if test -f "$path/$depdepl" ; then
-                     depdepl="$path/$depdepl"
-                   fi
-                   # do not add paths which are already there
-                   case " $newlib_search_path " in
-                   *" $path "*) ;;
-                   *) newlib_search_path="$newlib_search_path $path";;
-                   esac
-                 fi
-                 path=""
-                 ;;
-               *)
-                 path="-L$path"
-                 ;;
-               esac
-               ;;
-             -l*)
-               case $host in
-               *-*-darwin*)
-                 # Again, we only want to link against shared libraries
-                 eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
-                 for tmp in $newlib_search_path ; do
-                   if test -f "$tmp/lib$tmp_libs.dylib" ; then
-                     eval depdepl="$tmp/lib$tmp_libs.dylib"
-                     break
-                   fi
-                 done
-                 path=""
-                 ;;
-               *) continue ;;
-               esac
-               ;;
-             *) continue ;;
-             esac
-             case " $deplibs " in
-             *" $path "*) ;;
-             *) deplibs="$path $deplibs" ;;
-             esac
-             case " $deplibs " in
-             *" $depdepl "*) ;;
-             *) deplibs="$depdepl $deplibs" ;;
-             esac
-           done
-         fi # link_all_deplibs != no
-       fi # linkmode = lib
-      done # for deplib in $libs
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
-       # Link the dlpreopened libraries before other libraries
-       for deplib in $save_deplibs; do
-         deplibs="$deplib $deplibs"
-       done
-      fi
-      if test "$pass" != dlopen; then
-       if test "$pass" != conv; then
-         # Make sure lib_search_path contains only unique directories.
-         lib_search_path=
-         for dir in $newlib_search_path; do
-           case "$lib_search_path " in
-           *" $dir "*) ;;
-           *) lib_search_path="$lib_search_path $dir" ;;
-           esac
-         done
-         newlib_search_path=
-       fi
-
-       if test "$linkmode,$pass" != "prog,link"; then
-         vars="deplibs"
-       else
-         vars="compile_deplibs finalize_deplibs"
-       fi
-       for var in $vars dependency_libs; do
-         # Add libraries to $var in reverse order
-         eval tmp_libs=\"\$$var\"
-         new_libs=
-         for deplib in $tmp_libs; do
-           # FIXME: Pedantically, this is the right thing to do, so
-           #        that some nasty dependency loop isn't accidentally
-           #        broken:
-           #new_libs="$deplib $new_libs"
-           # Pragmatically, this seems to cause very few problems in
-           # practice:
-           case $deplib in
-           -L*) new_libs="$deplib $new_libs" ;;
-           -R*) ;;
-           *)
-             # And here is the reason: when a library appears more
-             # than once as an explicit dependence of a library, or
-             # is implicitly linked in more than once by the
-             # compiler, it is considered special, and multiple
-             # occurrences thereof are not removed.  Compare this
-             # with having the same library being listed as a
-             # dependency of multiple other libraries: in this case,
-             # we know (pedantically, we assume) the library does not
-             # need to be listed more than once, so we keep only the
-             # last copy.  This is not always right, but it is rare
-             # enough that we require users that really mean to play
-             # such unportable linking tricks to link the library
-             # using -Wl,-lname, so that libtool does not consider it
-             # for duplicate removal.
-             case " $specialdeplibs " in
-             *" $deplib "*) new_libs="$deplib $new_libs" ;;
-             *)
-               case " $new_libs " in
-               *" $deplib "*) ;;
-               *) new_libs="$deplib $new_libs" ;;
-               esac
-               ;;
-             esac
-             ;;
-           esac
-         done
-         tmp_libs=
-         for deplib in $new_libs; do
-           case $deplib in
-           -L*)
-             case " $tmp_libs " in
-             *" $deplib "*) ;;
-             *) tmp_libs="$tmp_libs $deplib" ;;
-             esac
-             ;;
-           *) tmp_libs="$tmp_libs $deplib" ;;
-           esac
-         done
-         eval $var=\"$tmp_libs\"
-       done # for var
-      fi
-      # Last step: remove runtime libs from dependency_libs
-      # (they stay in deplibs)
-      tmp_libs=
-      for i in $dependency_libs ; do
-       case " $predeps $postdeps $compiler_lib_search_path " in
-       *" $i "*)
-         i=""
-         ;;
-       esac
-       if test -n "$i" ; then
-         tmp_libs="$tmp_libs $i"
-       fi
-      done
-      dependency_libs=$tmp_libs
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-      dlprefiles="$newdlprefiles"
-    fi
-
-    case $linkmode in
-    oldlib)
-      if test -n "$deplibs"; then
-       $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-       $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-       $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-       $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$release"; then
-       $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-       $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
-      fi
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      objs="$objs$old_deplibs"
-      ;;
-
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-       name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-       eval shared_ext=\"$shrext_cmds\"
-       eval libname=\"$libname_spec\"
-       ;;
-      *)
-       if test "$module" = no; then
-         $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
-         $echo "$help" 1>&2
-         exit $EXIT_FAILURE
-       fi
-       if test "$need_lib_prefix" != no; then
-         # Add the "lib" prefix for modules if required
-         name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-         eval shared_ext=\"$shrext_cmds\"
-         eval libname=\"$libname_spec\"
-       else
-         libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-       fi
-       ;;
-      esac
-
-      if test -n "$objs"; then
-       if test "$deplibs_check_method" != pass_all; then
-         $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
-         exit $EXIT_FAILURE
-       else
-         $echo
-         $echo "*** Warning: Linking the shared library $output against the non-libtool"
-         $echo "*** objects $objs is not portable!"
-         libobjs="$libobjs $objs"
-       fi
-      fi
-
-      if test "$dlself" != no; then
-       $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
-      fi
-
-      set dummy $rpath
-      if test "$#" -gt 2; then
-       $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
-      fi
-      install_libdir="$2"
-
-      oldlibs=
-      if test -z "$rpath"; then
-       if test "$build_libtool_libs" = yes; then
-         # Building a libtool convenience library.
-         # Some compilers have problems with a `.al' extension so
-         # convenience libraries should have the same extension an
-         # archive normally would.
-         oldlibs="$output_objdir/$libname.$libext $oldlibs"
-         build_libtool_libs=convenience
-         build_old_libs=yes
-       fi
-
-       if test -n "$vinfo"; then
-         $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
-       fi
-
-       if test -n "$release"; then
-         $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
-       fi
-      else
-
-       # Parse the version information argument.
-       save_ifs="$IFS"; IFS=':'
-       set dummy $vinfo 0 0 0
-       IFS="$save_ifs"
-
-       if test -n "$8"; then
-         $echo "$modename: too many parameters to \`-version-info'" 1>&2
-         $echo "$help" 1>&2
-         exit $EXIT_FAILURE
-       fi
-
-       # convert absolute version numbers to libtool ages
-       # this retains compatibility with .la files and attempts
-       # to make the code below a bit more comprehensible
-
-       case $vinfo_number in
-       yes)
-         number_major="$2"
-         number_minor="$3"
-         number_revision="$4"
-         #
-         # There are really only two kinds -- those that
-         # use the current revision as the major version
-         # and those that subtract age and use age as
-         # a minor version.  But, then there is irix
-         # which has an extra 1 added just for fun
-         #
-         case $version_type in
-         darwin|linux|osf|windows|none)
-           current=`expr $number_major + $number_minor`
-           age="$number_minor"
-           revision="$number_revision"
-           ;;
-         freebsd-aout|freebsd-elf|sunos)
-           current="$number_major"
-           revision="$number_minor"
-           age="0"
-           ;;
-         irix|nonstopux)
-           current=`expr $number_major + $number_minor`
-           age="$number_minor"
-           revision="$number_minor"
-           lt_irix_increment=no
-           ;;
-         *)
-           $echo "$modename: unknown library version type \`$version_type'" 1>&2
-           $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-           exit $EXIT_FAILURE
-           ;;
-         esac
-         ;;
-       no)
-         current="$2"
-         revision="$3"
-         age="$4"
-         ;;
-       esac
-
-       # Check that each of the things are valid numbers.
-       case $current in
-       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-       *)
-         $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit $EXIT_FAILURE
-         ;;
-       esac
-
-       case $revision in
-       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-       *)
-         $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit $EXIT_FAILURE
-         ;;
-       esac
-
-       case $age in
-       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-       *)
-         $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit $EXIT_FAILURE
-         ;;
-       esac
-
-       if test "$age" -gt "$current"; then
-         $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit $EXIT_FAILURE
-       fi
-
-       # Calculate the version variables.
-       major=
-       versuffix=
-       verstring=
-       case $version_type in
-       none) ;;
-
-       darwin)
-         # Like Linux, but with the current version available in
-         # verstring for coding it into the library header
-         major=.`expr $current - $age`
-         versuffix="$major.$age.$revision"
-         # Darwin ld doesn't like 0 for these options...
-         minor_current=`expr $current + 1`
-         xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
-         verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
-         ;;
-
-       freebsd-aout)
-         major=".$current"
-         versuffix=".$current.$revision";
-         ;;
-
-       freebsd-elf)
-         major=".$current"
-         versuffix=".$current";
-         ;;
-
-       irix | nonstopux)
-         if test "X$lt_irix_increment" = "Xno"; then
-           major=`expr $current - $age`
-         else
-           major=`expr $current - $age + 1`
-         fi
-         case $version_type in
-           nonstopux) verstring_prefix=nonstopux ;;
-           *)         verstring_prefix=sgi ;;
-         esac
-         verstring="$verstring_prefix$major.$revision"
-
-         # Add in all the interfaces that we are compatible with.
-         loop=$revision
-         while test "$loop" -ne 0; do
-           iface=`expr $revision - $loop`
-           loop=`expr $loop - 1`
-           verstring="$verstring_prefix$major.$iface:$verstring"
-         done
-
-         # Before this point, $major must not contain `.'.
-         major=.$major
-         versuffix="$major.$revision"
-         ;;
-
-       linux)
-         major=.`expr $current - $age`
-         versuffix="$major.$age.$revision"
-         ;;
-
-       osf)
-         major=.`expr $current - $age`
-         versuffix=".$current.$age.$revision"
-         verstring="$current.$age.$revision"
-
-         # Add in all the interfaces that we are compatible with.
-         loop=$age
-         while test "$loop" -ne 0; do
-           iface=`expr $current - $loop`
-           loop=`expr $loop - 1`
-           verstring="$verstring:${iface}.0"
-         done
-
-         # Make executables depend on our current version.
-         verstring="$verstring:${current}.0"
-         ;;
-
-       sunos)
-         major=".$current"
-         versuffix=".$current.$revision"
-         ;;
-
-       windows)
-         # Use '-' rather than '.', since we only want one
-         # extension on DOS 8.3 filesystems.
-         major=`expr $current - $age`
-         versuffix="-$major"
-         ;;
-
-       *)
-         $echo "$modename: unknown library version type \`$version_type'" 1>&2
-         $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-         exit $EXIT_FAILURE
-         ;;
-       esac
-
-       # Clear the version info if we defaulted, and they specified a release.
-       if test -z "$vinfo" && test -n "$release"; then
-         major=
-         case $version_type in
-         darwin)
-           # we can't check for "0.0" in archive_cmds due to quoting
-           # problems, so we reset it completely
-           verstring=
-           ;;
-         *)
-           verstring="0.0"
-           ;;
-         esac
-         if test "$need_version" = no; then
-           versuffix=
-         else
-           versuffix=".0.0"
-         fi
-       fi
-
-       # Remove version info from name if versioning should be avoided
-       if test "$avoid_version" = yes && test "$need_version" = no; then
-         major=
-         versuffix=
-         verstring=""
-       fi
-
-       # Check to see if the archive will have undefined symbols.
-       if test "$allow_undefined" = yes; then
-         if test "$allow_undefined_flag" = unsupported; then
-           $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
-           build_libtool_libs=no
-           build_old_libs=yes
-         fi
-       else
-         # Don't allow undefined symbols.
-         allow_undefined_flag="$no_undefined_flag"
-       fi
-      fi
-
-      if test "$mode" != relink; then
-       # Remove our outputs, but don't remove object files since they
-       # may have been created when compiling PIC objects.
-       removelist=
-       tempremovelist=`$echo "$output_objdir/*"`
-       for p in $tempremovelist; do
-         case $p in
-           *.$objext)
-              ;;
-           $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-              if test "X$precious_files_regex" != "X"; then
-                if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
-                then
-                  continue
-                fi
-              fi
-              removelist="$removelist $p"
-              ;;
-           *) ;;
-         esac
-       done
-       if test -n "$removelist"; then
-         $show "${rm}r $removelist"
-         $run ${rm}r $removelist
-       fi
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-       oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
-       # Transform .lo files to .o files.
-       oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
-      fi
-
-      # Eliminate all temporary directories.
-      #for path in $notinst_path; do
-      #        lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
-      #        deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
-      #        dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
-      #done
-
-      if test -n "$xrpath"; then
-       # If the user specified any rpath flags, then add them.
-       temp_xrpath=
-       for libdir in $xrpath; do
-         temp_xrpath="$temp_xrpath -R$libdir"
-         case "$finalize_rpath " in
-         *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
-         esac
-       done
-       if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-         dependency_libs="$temp_xrpath $dependency_libs"
-       fi
-      fi
-
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-       case " $dlprefiles $dlfiles " in
-       *" $lib "*) ;;
-       *) dlfiles="$dlfiles $lib" ;;
-       esac
-      done
-
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-       case "$dlprefiles " in
-       *" $lib "*) ;;
-       *) dlprefiles="$dlprefiles $lib" ;;
-       esac
-      done
-
-      if test "$build_libtool_libs" = yes; then
-       if test -n "$rpath"; then
-         case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
-           # these systems don't actually have a c library (as such)!
-           ;;
-         *-*-rhapsody* | *-*-darwin1.[012])
-           # Rhapsody C library is in the System framework
-           deplibs="$deplibs -framework System"
-           ;;
-         *-*-netbsd*)
-           # Don't link with libc until the a.out ld.so is fixed.
-           ;;
-         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-           # Do not include libc due to us having libc/libc_r.
-           ;;
-         *-*-sco3.2v5* | *-*-sco5v6*)
-           # Causes problems with __ctype
-           ;;
-         *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-           # Compiler inserts libc in the correct place for threads to work
-           ;;
-         *)
-           # Add libc to deplibs on all other systems if necessary.
-           if test "$build_libtool_need_lc" = "yes"; then
-             deplibs="$deplibs -lc"
-           fi
-           ;;
-         esac
-       fi
-
-       # Transform deplibs into only deplibs that can be linked in shared.
-       name_save=$name
-       libname_save=$libname
-       release_save=$release
-       versuffix_save=$versuffix
-       major_save=$major
-       # I'm not sure if I'm treating the release correctly.  I think
-       # release should show up in the -l (ie -lgmp5) so we don't want to
-       # add it in twice.  Is that correct?
-       release=""
-       versuffix=""
-       major=""
-       newdeplibs=
-       droppeddeps=no
-       case $deplibs_check_method in
-       pass_all)
-         # Don't check for shared/static.  Everything works.
-         # This might be a little naive.  We might want to check
-         # whether the library exists or not.  But this is on
-         # osf3 & osf4 and I'm not really sure... Just
-         # implementing what was already the behavior.
-         newdeplibs=$deplibs
-         ;;
-       test_compile)
-         # This code stresses the "libraries are programs" paradigm to its
-         # limits. Maybe even breaks it.  We compile a program, linking it
-         # against the deplibs as a proxy for the library.  Then we can check
-         # whether they linked in statically or dynamically with ldd.
-         $rm conftest.c
-         cat > conftest.c <<EOF
-         int main() { return 0; }
-EOF
-         $rm conftest
-         if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
-           ldd_output=`ldd conftest`
-           for i in $deplibs; do
-             name=`expr $i : '-l\(.*\)'`
-             # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" != "0"; then
-               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-                 case " $predeps $postdeps " in
-                 *" $i "*)
-                   newdeplibs="$newdeplibs $i"
-                   i=""
-                   ;;
-                 esac
-               fi
-               if test -n "$i" ; then
-                 libname=`eval \\$echo \"$libname_spec\"`
-                 deplib_matches=`eval \\$echo \"$library_names_spec\"`
-                 set dummy $deplib_matches
-                 deplib_match=$2
-                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                   newdeplibs="$newdeplibs $i"
-                 else
-                   droppeddeps=yes
-                   $echo
-                   $echo "*** Warning: dynamic linker does not accept needed library $i."
-                   $echo "*** I have the capability to make that library automatically link in when"
-                   $echo "*** you link to this library.  But I can only do this if you have a"
-                   $echo "*** shared version of the library, which I believe you do not have"
-                   $echo "*** because a test_compile did reveal that the linker did not use it for"
-                   $echo "*** its dynamic dependency list that programs get resolved with at runtime."
-                 fi
-               fi
-             else
-               newdeplibs="$newdeplibs $i"
-             fi
-           done
-         else
-           # Error occurred in the first compile.  Let's try to salvage
-           # the situation: Compile a separate program for each library.
-           for i in $deplibs; do
-             name=`expr $i : '-l\(.*\)'`
-             # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" != "0"; then
-               $rm conftest
-               if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
-                 ldd_output=`ldd conftest`
-                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-                   case " $predeps $postdeps " in
-                   *" $i "*)
-                     newdeplibs="$newdeplibs $i"
-                     i=""
-                     ;;
-                   esac
-                 fi
-                 if test -n "$i" ; then
-                   libname=`eval \\$echo \"$libname_spec\"`
-                   deplib_matches=`eval \\$echo \"$library_names_spec\"`
-                   set dummy $deplib_matches
-                   deplib_match=$2
-                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                     newdeplibs="$newdeplibs $i"
-                   else
-                     droppeddeps=yes
-                     $echo
-                     $echo "*** Warning: dynamic linker does not accept needed library $i."
-                     $echo "*** I have the capability to make that library automatically link in when"
-                     $echo "*** you link to this library.  But I can only do this if you have a"
-                     $echo "*** shared version of the library, which you do not appear to have"
-                     $echo "*** because a test_compile did reveal that the linker did not use this one"
-                     $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
-                   fi
-                 fi
-               else
-                 droppeddeps=yes
-                 $echo
-                 $echo "*** Warning!  Library $i is needed by this library but I was not able to"
-                 $echo "*** make it link in!  You will probably need to install it or some"
-                 $echo "*** library that it depends on before this library will be fully"
-                 $echo "*** functional.  Installing it before continuing would be even better."
-               fi
-             else
-               newdeplibs="$newdeplibs $i"
-             fi
-           done
-         fi
-         ;;
-       file_magic*)
-         set dummy $deplibs_check_method
-         file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-         for a_deplib in $deplibs; do
-           name=`expr $a_deplib : '-l\(.*\)'`
-           # If $name is empty we are operating on a -L argument.
-            if test "$name" != "" && test  "$name" != "0"; then
-             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-               case " $predeps $postdeps " in
-               *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
-                 a_deplib=""
-                 ;;
-               esac
-             fi
-             if test -n "$a_deplib" ; then
-               libname=`eval \\$echo \"$libname_spec\"`
-               for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-                 for potent_lib in $potential_libs; do
-                     # Follow soft links.
-                     if ls -lLd "$potent_lib" 2>/dev/null \
-                        | grep " -> " >/dev/null; then
-                       continue
-                     fi
-                     # The statement above tries to avoid entering an
-                     # endless loop below, in case of cyclic links.
-                     # We might still enter an endless loop, since a link
-                     # loop can be closed while we follow links,
-                     # but so what?
-                     potlib="$potent_lib"
-                     while test -h "$potlib" 2>/dev/null; do
-                       potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
-                       case $potliblink in
-                       [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-                       *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
-                       esac
-                     done
-                     if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
-                        | ${SED} 10q \
-                        | $EGREP "$file_magic_regex" > /dev/null; then
-                       newdeplibs="$newdeplibs $a_deplib"
-                       a_deplib=""
-                       break 2
-                     fi
-                 done
-               done
-             fi
-             if test -n "$a_deplib" ; then
-               droppeddeps=yes
-               $echo
-               $echo "*** Warning: linker path does not have real file for library $a_deplib."
-               $echo "*** I have the capability to make that library automatically link in when"
-               $echo "*** you link to this library.  But I can only do this if you have a"
-               $echo "*** shared version of the library, which you do not appear to have"
-               $echo "*** because I did check the linker path looking for a file starting"
-               if test -z "$potlib" ; then
-                 $echo "*** with $libname but no candidates were found. (...for file magic test)"
-               else
-                 $echo "*** with $libname and none of the candidates passed a file format test"
-                 $echo "*** using a file magic. Last file checked: $potlib"
-               fi
-             fi
-           else
-             # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
-           fi
-         done # Gone through all deplibs.
-         ;;
-       match_pattern*)
-         set dummy $deplibs_check_method
-         match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-         for a_deplib in $deplibs; do
-           name=`expr $a_deplib : '-l\(.*\)'`
-           # If $name is empty we are operating on a -L argument.
-           if test -n "$name" && test "$name" != "0"; then
-             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-               case " $predeps $postdeps " in
-               *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
-                 a_deplib=""
-                 ;;
-               esac
-             fi
-             if test -n "$a_deplib" ; then
-               libname=`eval \\$echo \"$libname_spec\"`
-               for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-                 for potent_lib in $potential_libs; do
-                   potlib="$potent_lib" # see symlink-check above in file_magic test
-                   if eval $echo \"$potent_lib\" 2>/dev/null \
-                       | ${SED} 10q \
-                       | $EGREP "$match_pattern_regex" > /dev/null; then
-                     newdeplibs="$newdeplibs $a_deplib"
-                     a_deplib=""
-                     break 2
-                   fi
-                 done
-               done
-             fi
-             if test -n "$a_deplib" ; then
-               droppeddeps=yes
-               $echo
-               $echo "*** Warning: linker path does not have real file for library $a_deplib."
-               $echo "*** I have the capability to make that library automatically link in when"
-               $echo "*** you link to this library.  But I can only do this if you have a"
-               $echo "*** shared version of the library, which you do not appear to have"
-               $echo "*** because I did check the linker path looking for a file starting"
-               if test -z "$potlib" ; then
-                 $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
-               else
-                 $echo "*** with $libname and none of the candidates passed a file format test"
-                 $echo "*** using a regex pattern. Last file checked: $potlib"
-               fi
-             fi
-           else
-             # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
-           fi
-         done # Gone through all deplibs.
-         ;;
-       none | unknown | *)
-         newdeplibs=""
-         tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
-           -e 's/ -[LR][^ ]*//g'`
-         if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-           for i in $predeps $postdeps ; do
-             # can't use Xsed below, because $i might contain '/'
-             tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
-           done
-         fi
-         if $echo "X $tmp_deplibs" | $Xsed -e 's/[     ]//g' \
-           | grep . >/dev/null; then
-           $echo
-           if test "X$deplibs_check_method" = "Xnone"; then
-             $echo "*** Warning: inter-library dependencies are not supported in this platform."
-           else
-             $echo "*** Warning: inter-library dependencies are not known to be supported."
-           fi
-           $echo "*** All declared inter-library dependencies are being dropped."
-           droppeddeps=yes
-         fi
-         ;;
-       esac
-       versuffix=$versuffix_save
-       major=$major_save
-       release=$release_save
-       libname=$libname_save
-       name=$name_save
-
-       case $host in
-       *-*-rhapsody* | *-*-darwin1.[012])
-         # On Rhapsody replace the C library is the System framework
-         newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
-         ;;
-       esac
-
-       if test "$droppeddeps" = yes; then
-         if test "$module" = yes; then
-           $echo
-           $echo "*** Warning: libtool could not satisfy all declared inter-library"
-           $echo "*** dependencies of module $libname.  Therefore, libtool will create"
-           $echo "*** a static module, that should work as long as the dlopening"
-           $echo "*** application is linked with the -dlopen flag."
-           if test -z "$global_symbol_pipe"; then
-             $echo
-             $echo "*** However, this would only work if libtool was able to extract symbol"
-             $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-             $echo "*** not find such a program.  So, this module is probably useless."
-             $echo "*** \`nm' from GNU binutils and a full rebuild may help."
-           fi
-           if test "$build_old_libs" = no; then
-             oldlibs="$output_objdir/$libname.$libext"
-             build_libtool_libs=module
-             build_old_libs=yes
-           else
-             build_libtool_libs=no
-           fi
-         else
-           $echo "*** The inter-library dependencies that have been dropped here will be"
-           $echo "*** automatically added whenever a program is linked with this library"
-           $echo "*** or is declared to -dlopen it."
-
-           if test "$allow_undefined" = no; then
-             $echo
-             $echo "*** Since this library must not contain undefined symbols,"
-             $echo "*** because either the platform does not support them or"
-             $echo "*** it was explicitly requested with -no-undefined,"
-             $echo "*** libtool will only create a static version of it."
-             if test "$build_old_libs" = no; then
-               oldlibs="$output_objdir/$libname.$libext"
-               build_libtool_libs=module
-               build_old_libs=yes
-             else
-               build_libtool_libs=no
-             fi
-           fi
-         fi
-       fi
-       # Done checking deplibs!
-       deplibs=$newdeplibs
-      fi
-
-
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-       case " $new_libs " in
-       *" -L$path/$objdir "*) ;;
-       *)
-         case " $deplibs " in
-         *" -L$path/$objdir "*)
-           new_libs="$new_libs -L$path/$objdir" ;;
-         esac
-         ;;
-       esac
-      done
-      for deplib in $deplibs; do
-       case $deplib in
-       -L*)
-         case " $new_libs " in
-         *" $deplib "*) ;;
-         *) new_libs="$new_libs $deplib" ;;
-         esac
-         ;;
-       *) new_libs="$new_libs $deplib" ;;
-       esac
-      done
-      deplibs="$new_libs"
-
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
-
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-       if test "$hardcode_into_libs" = yes; then
-         # Hardcode the library paths
-         hardcode_libdirs=
-         dep_rpath=
-         rpath="$finalize_rpath"
-         test "$mode" != relink && rpath="$compile_rpath$rpath"
-         for libdir in $rpath; do
-           if test -n "$hardcode_libdir_flag_spec"; then
-             if test -n "$hardcode_libdir_separator"; then
-               if test -z "$hardcode_libdirs"; then
-                 hardcode_libdirs="$libdir"
-               else
-                 # Just accumulate the unique libdirs.
-                 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-                 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-                   ;;
-                 *)
-                   hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-                   ;;
-                 esac
-               fi
-             else
-               eval flag=\"$hardcode_libdir_flag_spec\"
-               dep_rpath="$dep_rpath $flag"
-             fi
-           elif test -n "$runpath_var"; then
-             case "$perm_rpath " in
-             *" $libdir "*) ;;
-             *) perm_rpath="$perm_rpath $libdir" ;;
-             esac
-           fi
-         done
-         # Substitute the hardcoded libdirs into the rpath.
-         if test -n "$hardcode_libdir_separator" &&
-            test -n "$hardcode_libdirs"; then
-           libdir="$hardcode_libdirs"
-           if test -n "$hardcode_libdir_flag_spec_ld"; then
-             case $archive_cmds in
-             *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
-             *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
-             esac
-           else
-             eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-           fi
-         fi
-         if test -n "$runpath_var" && test -n "$perm_rpath"; then
-           # We should set the runpath_var.
-           rpath=
-           for dir in $perm_rpath; do
-             rpath="$rpath$dir:"
-           done
-           eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-         fi
-         test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-       fi
-
-       shlibpath="$finalize_shlibpath"
-       test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-       if test -n "$shlibpath"; then
-         eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-       fi
-
-       # Get the real and link names of the library.
-       eval shared_ext=\"$shrext_cmds\"
-       eval library_names=\"$library_names_spec\"
-       set dummy $library_names
-       realname="$2"
-       shift; shift
-
-       if test -n "$soname_spec"; then
-         eval soname=\"$soname_spec\"
-       else
-         soname="$realname"
-       fi
-       if test -z "$dlname"; then
-         dlname=$soname
-       fi
-
-       lib="$output_objdir/$realname"
-       linknames=
-       for link
-       do
-         linknames="$linknames $link"
-       done
-
-       # Use standard objects if they are pic
-       test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
-       # Prepare the list of exported symbols
-       if test -z "$export_symbols"; then
-         if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-           $show "generating symbol list for \`$libname.la'"
-           export_symbols="$output_objdir/$libname.exp"
-           $run $rm $export_symbols
-           cmds=$export_symbols_cmds
-           save_ifs="$IFS"; IFS='~'
-           for cmd in $cmds; do
-             IFS="$save_ifs"
-             eval cmd=\"$cmd\"
-             if len=`expr "X$cmd" : ".*"` &&
-              test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-               $show "$cmd"
-               $run eval "$cmd" || exit $?
-               skipped_export=false
-             else
-               # The command line is too long to execute in one step.
-               $show "using reloadable object file for export list..."
-               skipped_export=:
-               # Break out early, otherwise skipped_export may be
-               # set to false by a later but shorter cmd.
-               break
-             fi
-           done
-           IFS="$save_ifs"
-           if test -n "$export_symbols_regex"; then
-             $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
-             $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-             $show "$mv \"${export_symbols}T\" \"$export_symbols\""
-             $run eval '$mv "${export_symbols}T" "$export_symbols"'
-           fi
-         fi
-       fi
-
-       if test -n "$export_symbols" && test -n "$include_expsyms"; then
-         $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
-       fi
-
-       tmp_deplibs=
-       for test_deplib in $deplibs; do
-               case " $convenience " in
-               *" $test_deplib "*) ;;
-               *)
-                       tmp_deplibs="$tmp_deplibs $test_deplib"
-                       ;;
-               esac
-       done
-       deplibs="$tmp_deplibs"
-
-       if test -n "$convenience"; then
-         if test -n "$whole_archive_flag_spec"; then
-           save_libobjs=$libobjs
-           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-         else
-           gentop="$output_objdir/${outputname}x"
-           generated="$generated $gentop"
-
-           func_extract_archives $gentop $convenience
-           libobjs="$libobjs $func_extract_archives_result"
-         fi
-       fi
-       
-       if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-         eval flag=\"$thread_safe_flag_spec\"
-         linker_flags="$linker_flags $flag"
-       fi
-
-       # Make a backup of the uninstalled library when relinking
-       if test "$mode" = relink; then
-         $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
-       fi
-
-       # Do each of the archive commands.
-       if test "$module" = yes && test -n "$module_cmds" ; then
-         if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-           eval test_cmds=\"$module_expsym_cmds\"
-           cmds=$module_expsym_cmds
-         else
-           eval test_cmds=\"$module_cmds\"
-           cmds=$module_cmds
-         fi
-       else
-       if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-         eval test_cmds=\"$archive_expsym_cmds\"
-         cmds=$archive_expsym_cmds
-       else
-         eval test_cmds=\"$archive_cmds\"
-         cmds=$archive_cmds
-         fi
-       fi
-
-       if test "X$skipped_export" != "X:" &&
-          len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-          test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-         :
-       else
-         # The command line is too long to link in one step, link piecewise.
-         $echo "creating reloadable object files..."
-
-         # Save the value of $output and $libobjs because we want to
-         # use them later.  If we have whole_archive_flag_spec, we
-         # want to use save_libobjs as it was before
-         # whole_archive_flag_spec was expanded, because we can't
-         # assume the linker understands whole_archive_flag_spec.
-         # This may have to be revisited, in case too many
-         # convenience libraries get linked in and end up exceeding
-         # the spec.
-         if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
-           save_libobjs=$libobjs
-         fi
-         save_output=$output
-         output_la=`$echo "X$output" | $Xsed -e "$basename"`
-
-         # Clear the reloadable object creation command queue and
-         # initialize k to one.
-         test_cmds=
-         concat_cmds=
-         objlist=
-         delfiles=
-         last_robj=
-         k=1
-         output=$output_objdir/$output_la-${k}.$objext
-         # Loop over the list of objects to be linked.
-         for obj in $save_libobjs
-         do
-           eval test_cmds=\"$reload_cmds $objlist $last_robj\"
-           if test "X$objlist" = X ||
-              { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-                test "$len" -le "$max_cmd_len"; }; then
-             objlist="$objlist $obj"
-           else
-             # The command $test_cmds is almost too long, add a
-             # command to the queue.
-             if test "$k" -eq 1 ; then
-               # The first file doesn't have a previous command to add.
-               eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
-             else
-               # All subsequent reloadable object files will link in
-               # the last one created.
-               eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
-             fi
-             last_robj=$output_objdir/$output_la-${k}.$objext
-             k=`expr $k + 1`
-             output=$output_objdir/$output_la-${k}.$objext
-             objlist=$obj
-             len=1
-           fi
-         done
-         # Handle the remaining objects by creating one last
-         # reloadable object file.  All subsequent reloadable object
-         # files will link in the last one created.
-         test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-         eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
-
-         if ${skipped_export-false}; then
-           $show "generating symbol list for \`$libname.la'"
-           export_symbols="$output_objdir/$libname.exp"
-           $run $rm $export_symbols
-           libobjs=$output
-           # Append the command to create the export file.
-           eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
-          fi
-
-         # Set up a command to remove the reloadable object files
-         # after they are used.
-         i=0
-         while test "$i" -lt "$k"
-         do
-           i=`expr $i + 1`
-           delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
-         done
-
-         $echo "creating a temporary reloadable object file: $output"
-
-         # Loop through the commands generated above and execute them.
-         save_ifs="$IFS"; IFS='~'
-         for cmd in $concat_cmds; do
-           IFS="$save_ifs"
-           $show "$cmd"
-           $run eval "$cmd" || exit $?
-         done
-         IFS="$save_ifs"
-
-         libobjs=$output
-         # Restore the value of output.
-         output=$save_output
-
-         if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
-           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-         fi
-         # Expand the library linking commands again to reset the
-         # value of $libobjs for piecewise linking.
-
-         # Do each of the archive commands.
-         if test "$module" = yes && test -n "$module_cmds" ; then
-           if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-             cmds=$module_expsym_cmds
-           else
-             cmds=$module_cmds
-           fi
-         else
-         if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-           cmds=$archive_expsym_cmds
-         else
-           cmds=$archive_cmds
-           fi
-         fi
-
-         # Append the command to remove the reloadable object files
-         # to the just-reset $cmds.
-         eval cmds=\"\$cmds~\$rm $delfiles\"
-       fi
-       save_ifs="$IFS"; IFS='~'
-       for cmd in $cmds; do
-         IFS="$save_ifs"
-         eval cmd=\"$cmd\"
-         $show "$cmd"
-         $run eval "$cmd" || {
-           lt_exit=$?
-
-           # Restore the uninstalled library and exit
-           if test "$mode" = relink; then
-             $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
-           fi
-
-           exit $lt_exit
-         }
-       done
-       IFS="$save_ifs"
-
-       # Restore the uninstalled library and exit
-       if test "$mode" = relink; then
-         $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
-
-         if test -n "$convenience"; then
-           if test -z "$whole_archive_flag_spec"; then
-             $show "${rm}r $gentop"
-             $run ${rm}r "$gentop"
-           fi
-         fi
-
-         exit $EXIT_SUCCESS
-       fi
-
-       # Create links to the real library.
-       for linkname in $linknames; do
-         if test "$realname" != "$linkname"; then
-           $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
-           $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
-         fi
-       done
-
-       # If -module or -export-dynamic was specified, set the dlname.
-       if test "$module" = yes || test "$export_dynamic" = yes; then
-         # On all known operating systems, these are identical.
-         dlname="$soname"
-       fi
-      fi
-      ;;
-
-    obj)
-      if test -n "$deplibs"; then
-       $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-       $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-       $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-       $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$release"; then
-       $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
-      fi
-
-      case $output in
-      *.lo)
-       if test -n "$objs$old_deplibs"; then
-         $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-         exit $EXIT_FAILURE
-       fi
-       libobj="$output"
-       obj=`$echo "X$output" | $Xsed -e "$lo2o"`
-       ;;
-      *)
-       libobj=
-       obj="$output"
-       ;;
-      esac
-
-      # Delete the old objects.
-      $run $rm $obj $libobj
-
-      # Objects from convenience libraries.  This assumes
-      # single-version convenience libraries.  Whenever we create
-      # different ones for PIC/non-PIC, this we'll have to duplicate
-      # the extraction.
-      reload_conv_objs=
-      gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec and hope we can get by with
-      # turning comma into space..
-      wl=
-
-      if test -n "$convenience"; then
-       if test -n "$whole_archive_flag_spec"; then
-         eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-         reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
-       else
-         gentop="$output_objdir/${obj}x"
-         generated="$generated $gentop"
-
-         func_extract_archives $gentop $convenience
-         reload_conv_objs="$reload_objs $func_extract_archives_result"
-       fi
-      fi
-
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
-      output="$obj"
-      cmds=$reload_cmds
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-       IFS="$save_ifs"
-       eval cmd=\"$cmd\"
-       $show "$cmd"
-       $run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-       if test -n "$gentop"; then
-         $show "${rm}r $gentop"
-         $run ${rm}r $gentop
-       fi
-
-       exit $EXIT_SUCCESS
-      fi
-
-      if test "$build_libtool_libs" != yes; then
-       if test -n "$gentop"; then
-         $show "${rm}r $gentop"
-         $run ${rm}r $gentop
-       fi
-
-       # Create an invalid libtool object if no PIC, so that we don't
-       # accidentally link it into a program.
-       # $show "echo timestamp > $libobj"
-       # $run eval "echo timestamp > $libobj" || exit $?
-       exit $EXIT_SUCCESS
-      fi
-
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
-       # Only do commands if we really have different PIC objects.
-       reload_objs="$libobjs $reload_conv_objs"
-       output="$libobj"
-       cmds=$reload_cmds
-       save_ifs="$IFS"; IFS='~'
-       for cmd in $cmds; do
-         IFS="$save_ifs"
-         eval cmd=\"$cmd\"
-         $show "$cmd"
-         $run eval "$cmd" || exit $?
-       done
-       IFS="$save_ifs"
-      fi
-
-      if test -n "$gentop"; then
-       $show "${rm}r $gentop"
-       $run ${rm}r $gentop
-      fi
-
-      exit $EXIT_SUCCESS
-      ;;
-
-    prog)
-      case $host in
-       *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
-      esac
-      if test -n "$vinfo"; then
-       $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
-      fi
-
-      if test -n "$release"; then
-       $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
-      fi
-
-      if test "$preload" = yes; then
-       if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
-          test "$dlopen_self_static" = unknown; then
-         $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
-       fi
-      fi
-
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-       # On Rhapsody replace the C library is the System framework
-       compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-       finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-       ;;
-      esac
-
-      case $host in
-      *darwin*)
-        # Don't allow lazy linking, it breaks C++ global constructors
-        if test "$tagname" = CXX ; then
-        compile_command="$compile_command ${wl}-bind_at_load"
-        finalize_command="$finalize_command ${wl}-bind_at_load"
-        fi
-        ;;
-      esac
-
-
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-       case " $new_libs " in
-       *" -L$path/$objdir "*) ;;
-       *)
-         case " $compile_deplibs " in
-         *" -L$path/$objdir "*)
-           new_libs="$new_libs -L$path/$objdir" ;;
-         esac
-         ;;
-       esac
-      done
-      for deplib in $compile_deplibs; do
-       case $deplib in
-       -L*)
-         case " $new_libs " in
-         *" $deplib "*) ;;
-         *) new_libs="$new_libs $deplib" ;;
-         esac
-         ;;
-       *) new_libs="$new_libs $deplib" ;;
-       esac
-      done
-      compile_deplibs="$new_libs"
-
-
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
-
-      if test -n "$rpath$xrpath"; then
-       # If the user specified any rpath flags, then add them.
-       for libdir in $rpath $xrpath; do
-         # This is the magic to use -rpath.
-         case "$finalize_rpath " in
-         *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
-         esac
-       done
-      fi
-
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-       if test -n "$hardcode_libdir_flag_spec"; then
-         if test -n "$hardcode_libdir_separator"; then
-           if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
-           else
-             # Just accumulate the unique libdirs.
-             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-               ;;
-             *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-               ;;
-             esac
-           fi
-         else
-           eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
-         fi
-       elif test -n "$runpath_var"; then
-         case "$perm_rpath " in
-         *" $libdir "*) ;;
-         *) perm_rpath="$perm_rpath $libdir" ;;
-         esac
-       fi
-       case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-         testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
-         case :$dllsearchpath: in
-         *":$libdir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$libdir";;
-         esac
-         case :$dllsearchpath: in
-         *":$testbindir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
-         esac
-         ;;
-       esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-        test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
-       eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
-
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-       if test -n "$hardcode_libdir_flag_spec"; then
-         if test -n "$hardcode_libdir_separator"; then
-           if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
-           else
-             # Just accumulate the unique libdirs.
-             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-               ;;
-             *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-               ;;
-             esac
-           fi
-         else
-           eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
-         fi
-       elif test -n "$runpath_var"; then
-         case "$finalize_perm_rpath " in
-         *" $libdir "*) ;;
-         *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-         esac
-       fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-        test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
-       eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-       # Transform all the library objects into standard objects.
-       compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-       finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-      fi
-
-      dlsyms=
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       if test -n "$NM" && test -n "$global_symbol_pipe"; then
-         dlsyms="${outputname}S.c"
-       else
-         $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
-       fi
-      fi
-
-      if test -n "$dlsyms"; then
-       case $dlsyms in
-       "") ;;
-       *.c)
-         # Discover the nlist of each of the dlfiles.
-         nlist="$output_objdir/${outputname}.nm"
-
-         $show "$rm $nlist ${nlist}S ${nlist}T"
-         $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
-         # Parse the name list into a source file.
-         $show "creating $output_objdir/$dlsyms"
-
-         test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
-         if test "$dlself" = yes; then
-           $show "generating symbol list for \`$output'"
-
-           test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
-           # Add our own program objects to the symbol list.
-           progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-           for arg in $progfiles; do
-             $show "extracting global C symbols from \`$arg'"
-             $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-           done
-
-           if test -n "$exclude_expsyms"; then
-             $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-             $run eval '$mv "$nlist"T "$nlist"'
-           fi
-
-           if test -n "$export_symbols_regex"; then
-             $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-             $run eval '$mv "$nlist"T "$nlist"'
-           fi
-
-           # Prepare the list of exported symbols
-           if test -z "$export_symbols"; then
-             export_symbols="$output_objdir/$outputname.exp"
-             $run $rm $export_symbols
-             $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-              case $host in
-              *cygwin* | *mingw* )
-               $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-               $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
-                ;;
-              esac
-           else
-             $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
-             $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
-             $run eval 'mv "$nlist"T "$nlist"'
-              case $host in
-              *cygwin* | *mingw* )
-               $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-               $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
-                ;;
-              esac
-           fi
-         fi
-
-         for arg in $dlprefiles; do
-           $show "extracting global C symbols from \`$arg'"
-           name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
-           $run eval '$echo ": $name " >> "$nlist"'
-           $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-         done
-
-         if test -z "$run"; then
-           # Make sure we have at least an empty file.
-           test -f "$nlist" || : > "$nlist"
-
-           if test -n "$exclude_expsyms"; then
-             $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-             $mv "$nlist"T "$nlist"
-           fi
-
-           # Try sorting and uniquifying the output.
-           if grep -v "^: " < "$nlist" |
-               if sort -k 3 </dev/null >/dev/null 2>&1; then
-                 sort -k 3
-               else
-                 sort +2
-               fi |
-               uniq > "$nlist"S; then
-             :
-           else
-             grep -v "^: " < "$nlist" > "$nlist"S
-           fi
-
-           if test -f "$nlist"S; then
-             eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
-           else
-             $echo '/* NONE */' >> "$output_objdir/$dlsyms"
-           fi
-
-           $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr void *
-#else
-# define lt_ptr char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-"
-
-           case $host in
-           *cygwin* | *mingw* )
-         $echo >> "$output_objdir/$dlsyms" "\
-/* DATA imports from DLLs on WIN32 can't be const, because
-   runtime relocations are performed -- see ld's documentation
-   on pseudo-relocs */
-struct {
-"
-             ;;
-           * )
-         $echo >> "$output_objdir/$dlsyms" "\
-const struct {
-"
-             ;;
-           esac
-
-
-         $echo >> "$output_objdir/$dlsyms" "\
-  const char *name;
-  lt_ptr address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
-           eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
-
-           $echo >> "$output_objdir/$dlsyms" "\
-  {0, (lt_ptr) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
-         fi
-
-         pic_flag_for_symtable=
-         case $host in
-         # compiling the symbol table file with pic_flag works around
-         # a FreeBSD bug that causes programs to crash when -lm is
-         # linked before any other PIC object.  But we must not use
-         # pic_flag when linking with -static.  The problem exists in
-         # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-         *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
-           case "$compile_command " in
-           *" -static "*) ;;
-           *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
-           esac;;
-         *-*-hpux*)
-           case "$compile_command " in
-           *" -static "*) ;;
-           *) pic_flag_for_symtable=" $pic_flag";;
-           esac
-         esac
-
-         # Now compile the dynamic symbol file.
-         $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-         $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
-         # Clean up the generated files.
-         $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
-         $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
-         # Transform the symbol file into the correct name.
-          case $host in
-          *cygwin* | *mingw* )
-            if test -f "$output_objdir/${outputname}.def" ; then
-              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
-              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
-            else
-              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
-              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
-             fi
-            ;;
-          * )
-            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
-            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
-            ;;
-          esac
-         ;;
-       *)
-         $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-         exit $EXIT_FAILURE
-         ;;
-       esac
-      else
-       # We keep going just in case the user didn't refer to
-       # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-       # really was required.
-
-       # Nullify the symbol file.
-       compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
-       finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
-      fi
-
-      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-       # Replace the output file specification.
-       compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
-       link_command="$compile_command$compile_rpath"
-
-       # We have no uninstalled library dependencies, so finalize right now.
-       $show "$link_command"
-       $run eval "$link_command"
-       exit_status=$?
-
-       # Delete the generated files.
-       if test -n "$dlsyms"; then
-         $show "$rm $output_objdir/${outputname}S.${objext}"
-         $run $rm "$output_objdir/${outputname}S.${objext}"
-       fi
-
-       exit $exit_status
-      fi
-
-      if test -n "$shlibpath_var"; then
-       # We should set the shlibpath_var
-       rpath=
-       for dir in $temp_rpath; do
-         case $dir in
-         [\\/]* | [A-Za-z]:[\\/]*)
-           # Absolute path.
-           rpath="$rpath$dir:"
-           ;;
-         *)
-           # Relative path: add a thisdir entry.
-           rpath="$rpath\$thisdir/$dir:"
-           ;;
-         esac
-       done
-       temp_rpath="$rpath"
-      fi
-
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-       compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-       finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
-
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-       if test -n "$perm_rpath"; then
-         # We should set the runpath_var.
-         rpath=
-         for dir in $perm_rpath; do
-           rpath="$rpath$dir:"
-         done
-         compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-       fi
-       if test -n "$finalize_perm_rpath"; then
-         # We should set the runpath_var.
-         rpath=
-         for dir in $finalize_perm_rpath; do
-           rpath="$rpath$dir:"
-         done
-         finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-       fi
-      fi
-
-      if test "$no_install" = yes; then
-       # We don't need to create a wrapper script.
-       link_command="$compile_var$compile_command$compile_rpath"
-       # Replace the output file specification.
-       link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-       # Delete the old output file.
-       $run $rm $output
-       # Link the executable and exit
-       $show "$link_command"
-       $run eval "$link_command" || exit $?
-       exit $EXIT_SUCCESS
-      fi
-
-      if test "$hardcode_action" = relink; then
-       # Fast installation is not supported
-       link_command="$compile_var$compile_command$compile_rpath"
-       relink_command="$finalize_var$finalize_command$finalize_rpath"
-
-       $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
-       $echo "$modename: \`$output' will be relinked during installation" 1>&2
-      else
-       if test "$fast_install" != no; then
-         link_command="$finalize_var$compile_command$finalize_rpath"
-         if test "$fast_install" = yes; then
-           relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
-         else
-           # fast_install is set to needless
-           relink_command=
-         fi
-       else
-         link_command="$compile_var$compile_command$compile_rpath"
-         relink_command="$finalize_var$finalize_command$finalize_rpath"
-       fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
-      $show "$link_command"
-      $run eval "$link_command" || exit $?
-
-      # Now create the wrapper script.
-      $show "creating $output"
-
-      # Quote the relink command for shipping.
-      if test -n "$relink_command"; then
-       # Preserve any variables that may affect compiler behavior
-       for var in $variables_saved_for_relink; do
-         if eval test -z \"\${$var+set}\"; then
-           relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-         elif eval var_value=\$$var; test -z "$var_value"; then
-           relink_command="$var=; export $var; $relink_command"
-         else
-           var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-           relink_command="$var=\"$var_value\"; export $var; $relink_command"
-         fi
-       done
-       relink_command="(cd `pwd`; $relink_command)"
-       relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
-      fi
-
-      # Quote $echo for shipping.
-      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
-       case $progpath in
-       [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
-       *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
-       esac
-       qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-       qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Only actually do things if our run command is non-null.
-      if test -z "$run"; then
-       # win32 will think the script is a binary if it has
-       # a .exe suffix, so we strip it off here.
-       case $output in
-         *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
-       esac
-       # test for cygwin because mv fails w/o .exe extensions
-       case $host in
-         *cygwin*)
-           exeext=.exe
-           outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
-         *) exeext= ;;
-       esac
-       case $host in
-         *cygwin* | *mingw* )
-            output_name=`basename $output`
-            output_path=`dirname $output`
-            cwrappersource="$output_path/$objdir/lt-$output_name.c"
-            cwrapper="$output_path/$output_name.exe"
-            $rm $cwrappersource $cwrapper
-            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
-           cat > $cwrappersource <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-
-   The $output program cannot be directly executed until all the libtool
-   libraries that it depends on are installed.
-
-   This wrapper executable should never be moved out of the build directory.
-   If it is, it will not operate correctly.
-
-   Currently, it simply execs the wrapper *script* "/bin/sh $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
-*/
-EOF
-           cat >> $cwrappersource<<"EOF"
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <sys/stat.h>
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# ifndef DIR_SEPARATOR_2
-#  define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-#  define PATH_SEPARATOR_2 ';'
-# endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
-        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
-
-#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-/* -DDEBUG is fairly common in CFLAGS.  */
-#undef DEBUG
-#if defined DEBUGWRAPPER
-# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
-#else
-# define DEBUG(format, ...)
-#endif
-
-const char *program_name = NULL;
-
-void * xmalloc (size_t num);
-char * xstrdup (const char *string);
-const char * base_name (const char *name);
-char * find_executable(const char *wrapper);
-int    check_executable(const char *path);
-char * strendzap(char *str, const char *pat);
-void lt_fatal (const char *message, ...);
-
-int
-main (int argc, char *argv[])
-{
-  char **newargz;
-  int i;
-
-  program_name = (char *) xstrdup (base_name (argv[0]));
-  DEBUG("(main) argv[0]      : %s\n",argv[0]);
-  DEBUG("(main) program_name : %s\n",program_name);
-  newargz = XMALLOC(char *, argc+2);
-EOF
-
-            cat >> $cwrappersource <<EOF
-  newargz[0] = (char *) xstrdup("$SHELL");
-EOF
-
-            cat >> $cwrappersource <<"EOF"
-  newargz[1] = find_executable(argv[0]);
-  if (newargz[1] == NULL)
-    lt_fatal("Couldn't find %s", argv[0]);
-  DEBUG("(main) found exe at : %s\n",newargz[1]);
-  /* we know the script has the same name, without the .exe */
-  /* so make sure newargz[1] doesn't end in .exe */
-  strendzap(newargz[1],".exe");
-  for (i = 1; i < argc; i++)
-    newargz[i+1] = xstrdup(argv[i]);
-  newargz[argc+1] = NULL;
-
-  for (i=0; i<argc+1; i++)
-  {
-    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
-    ;
-  }
-
-EOF
-
-            case $host_os in
-              mingw*)
-                cat >> $cwrappersource <<EOF
-  execv("$SHELL",(char const **)newargz);
-EOF
-              ;;
-              *)
-                cat >> $cwrappersource <<EOF
-  execv("$SHELL",newargz);
-EOF
-              ;;
-            esac
-
-            cat >> $cwrappersource <<"EOF"
-  return 127;
-}
-
-void *
-xmalloc (size_t num)
-{
-  void * p = (void *) malloc (num);
-  if (!p)
-    lt_fatal ("Memory exhausted");
-
-  return p;
-}
-
-char *
-xstrdup (const char *string)
-{
-  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
-;
-}
-
-const char *
-base_name (const char *name)
-{
-  const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
-    name += 2;
-#endif
-
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-  return base;
-}
-
-int
-check_executable(const char * path)
-{
-  struct stat st;
-
-  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
-  if ((!path) || (!*path))
-    return 0;
-
-  if ((stat (path, &st) >= 0) &&
-      (
-        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
-#if defined (S_IXOTH)
-       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
-#endif
-#if defined (S_IXGRP)
-       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
-#endif
-       ((st.st_mode & S_IXUSR) == S_IXUSR))
-      )
-    return 1;
-  else
-    return 0;
-}
-
-/* Searches for the full path of the wrapper.  Returns
-   newly allocated full path name if found, NULL otherwise */
-char *
-find_executable (const char* wrapper)
-{
-  int has_slash = 0;
-  const char* p;
-  const char* p_next;
-  /* static buffer for getcwd */
-  char tmp[LT_PATHMAX + 1];
-  int tmp_len;
-  char* concat_name;
-
-  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
-
-  if ((wrapper == NULL) || (*wrapper == '\0'))
-    return NULL;
-
-  /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
-  {
-    concat_name = xstrdup (wrapper);
-    if (check_executable(concat_name))
-      return concat_name;
-    XFREE(concat_name);
-  }
-  else
-  {
-#endif
-    if (IS_DIR_SEPARATOR (wrapper[0]))
-    {
-      concat_name = xstrdup (wrapper);
-      if (check_executable(concat_name))
-        return concat_name;
-      XFREE(concat_name);
-    }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  }
-#endif
-
-  for (p = wrapper; *p; p++)
-    if (*p == '/')
-    {
-      has_slash = 1;
-      break;
-    }
-  if (!has_slash)
-  {
-    /* no slashes; search PATH */
-    const char* path = getenv ("PATH");
-    if (path != NULL)
-    {
-      for (p = path; *p; p = p_next)
-      {
-        const char* q;
-        size_t p_len;
-        for (q = p; *q; q++)
-          if (IS_PATH_SEPARATOR(*q))
-            break;
-        p_len = q - p;
-        p_next = (*q == '\0' ? q : q + 1);
-        if (p_len == 0)
-        {
-          /* empty path: current directory */
-          if (getcwd (tmp, LT_PATHMAX) == NULL)
-            lt_fatal ("getcwd failed");
-          tmp_len = strlen(tmp);
-          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
-          memcpy (concat_name, tmp, tmp_len);
-          concat_name[tmp_len] = '/';
-          strcpy (concat_name + tmp_len + 1, wrapper);
-        }
-        else
-        {
-          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
-          memcpy (concat_name, p, p_len);
-          concat_name[p_len] = '/';
-          strcpy (concat_name + p_len + 1, wrapper);
-        }
-        if (check_executable(concat_name))
-          return concat_name;
-        XFREE(concat_name);
-      }
-    }
-    /* not found in PATH; assume curdir */
-  }
-  /* Relative path | not found in path: prepend cwd */
-  if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
-  tmp_len = strlen(tmp);
-  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
-  memcpy (concat_name, tmp, tmp_len);
-  concat_name[tmp_len] = '/';
-  strcpy (concat_name + tmp_len + 1, wrapper);
-
-  if (check_executable(concat_name))
-    return concat_name;
-  XFREE(concat_name);
-  return NULL;
-}
-
-char *
-strendzap(char *str, const char *pat)
-{
-  size_t len, patlen;
-
-  assert(str != NULL);
-  assert(pat != NULL);
-
-  len = strlen(str);
-  patlen = strlen(pat);
-
-  if (patlen <= len)
-  {
-    str += len - patlen;
-    if (strcmp(str, pat) == 0)
-      *str = '\0';
-  }
-  return str;
-}
-
-static void
-lt_error_core (int exit_status, const char * mode,
-          const char * message, va_list ap)
-{
-  fprintf (stderr, "%s: %s: ", program_name, mode);
-  vfprintf (stderr, message, ap);
-  fprintf (stderr, ".\n");
-
-  if (exit_status >= 0)
-    exit (exit_status);
-}
-
-void
-lt_fatal (const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
-  va_end (ap);
-}
-EOF
-          # we should really use a build-platform specific compiler
-          # here, but OTOH, the wrappers (shell script and this C one)
-          # are only useful if you want to execute the "real" binary.
-          # Since the "real" binary is built for $host, then this
-          # wrapper might as well be built for $host, too.
-          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
-          ;;
-        esac
-        $rm $output
-        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
-
-       $echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variable:
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$echo are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    echo=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$echo works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$echo will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
-"
-       $echo >> $output "\
-
-  # Find the directory that this script lives in.
-  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
-
-    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
-  done
-
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
-       if test "$fast_install" = yes; then
-         $echo >> $output "\
-  program=lt-'$outputname'$exeext
-  progdir=\"\$thisdir/$objdir\"
-
-  if test ! -f \"\$progdir/\$program\" || \\
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
-    file=\"\$\$-\$program\"
-
-    if test ! -d \"\$progdir\"; then
-      $mkdir \"\$progdir\"
-    else
-      $rm \"\$progdir/\$file\"
-    fi"
-
-         $echo >> $output "\
-
-    # relink executable if necessary
-    if test -n \"\$relink_command\"; then
-      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
-      else
-       $echo \"\$relink_command_output\" >&2
-       $rm \"\$progdir/\$file\"
-       exit $EXIT_FAILURE
-      fi
-    fi
-
-    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $rm \"\$progdir/\$program\";
-      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $rm \"\$progdir/\$file\"
-  fi"
-       else
-         $echo >> $output "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-       fi
-
-       $echo >> $output "\
-
-  if test -f \"\$progdir/\$program\"; then"
-
-       # Export our shlibpath_var if we have one.
-       if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-         $echo >> $output "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-       fi
-
-       # fixup the dll searchpath if we need to.
-       if test -n "$dllsearchpath"; then
-         $echo >> $output "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-       fi
-
-       $echo >> $output "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
-       case $host in
-       # Backslashes separate directories on plain windows
-       *-*-mingw | *-*-os2*)
-         $echo >> $output "\
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
-         ;;
-
-       *)
-         $echo >> $output "\
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
-         ;;
-       esac
-       $echo >> $output "\
-      \$echo \"\$0: cannot exec \$program \$*\"
-      exit $EXIT_FAILURE
-    fi
-  else
-    # The program doesn't exist.
-    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
-    \$echo \"This script is just a wrapper for \$program.\" 1>&2
-    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit $EXIT_FAILURE
-  fi
-fi\
-"
-       chmod +x $output
-      fi
-      exit $EXIT_SUCCESS
-      ;;
-    esac
-
-    # See if we need to build an old-fashioned archive.
-    for oldlib in $oldlibs; do
-
-      if test "$build_libtool_libs" = convenience; then
-       oldobjs="$libobjs_save"
-       addlibs="$convenience"
-       build_libtool_libs=no
-      else
-       if test "$build_libtool_libs" = module; then
-         oldobjs="$libobjs_save"
-         build_libtool_libs=no
-       else
-         oldobjs="$old_deplibs $non_pic_objects"
-       fi
-       addlibs="$old_convenience"
-      fi
-
-      if test -n "$addlibs"; then
-       gentop="$output_objdir/${outputname}x"
-       generated="$generated $gentop"
-
-       func_extract_archives $gentop $addlibs
-       oldobjs="$oldobjs $func_extract_archives_result"
-      fi
-
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-       cmds=$old_archive_from_new_cmds
-      else
-       # POSIX demands no paths to be encoded in archives.  We have
-       # to avoid creating archives with duplicate basenames if we
-       # might have to extract them afterwards, e.g., when creating a
-       # static archive out of a convenience library, or when linking
-       # the entirety of a libtool archive into another (currently
-       # not supported by libtool).
-       if (for obj in $oldobjs
-           do
-             $echo "X$obj" | $Xsed -e 's%^.*/%%'
-           done | sort | sort -uc >/dev/null 2>&1); then
-         :
-       else
-         $echo "copying selected object files to avoid basename conflicts..."
-
-         if test -z "$gentop"; then
-           gentop="$output_objdir/${outputname}x"
-           generated="$generated $gentop"
-
-           $show "${rm}r $gentop"
-           $run ${rm}r "$gentop"
-           $show "$mkdir $gentop"
-           $run $mkdir "$gentop"
-           exit_status=$?
-           if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
-             exit $exit_status
-           fi
-         fi
-
-         save_oldobjs=$oldobjs
-         oldobjs=
-         counter=1
-         for obj in $save_oldobjs
-         do
-           objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-           case " $oldobjs " in
-           " ") oldobjs=$obj ;;
-           *[\ /]"$objbase "*)
-             while :; do
-               # Make sure we don't pick an alternate name that also
-               # overlaps.
-               newobj=lt$counter-$objbase
-               counter=`expr $counter + 1`
-               case " $oldobjs " in
-               *[\ /]"$newobj "*) ;;
-               *) if test ! -f "$gentop/$newobj"; then break; fi ;;
-               esac
-             done
-             $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-             $run ln "$obj" "$gentop/$newobj" ||
-             $run cp "$obj" "$gentop/$newobj"
-             oldobjs="$oldobjs $gentop/$newobj"
-             ;;
-           *) oldobjs="$oldobjs $obj" ;;
-           esac
-         done
-       fi
-
-       eval cmds=\"$old_archive_cmds\"
-
-       if len=`expr "X$cmds" : ".*"` &&
-            test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-         cmds=$old_archive_cmds
-       else
-         # the command line is too long to link in one step, link in parts
-         $echo "using piecewise archive linking..."
-         save_RANLIB=$RANLIB
-         RANLIB=:
-         objlist=
-         concat_cmds=
-         save_oldobjs=$oldobjs
-
-         # Is there a better way of finding the last object in the list?
-         for obj in $save_oldobjs
-         do
-           last_oldobj=$obj
-         done
-         for obj in $save_oldobjs
-         do
-           oldobjs="$objlist $obj"
-           objlist="$objlist $obj"
-           eval test_cmds=\"$old_archive_cmds\"
-           if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-              test "$len" -le "$max_cmd_len"; then
-             :
-           else
-             # the above command should be used before it gets too long
-             oldobjs=$objlist
-             if test "$obj" = "$last_oldobj" ; then
-               RANLIB=$save_RANLIB
-             fi
-             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-             eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
-             objlist=
-           fi
-         done
-         RANLIB=$save_RANLIB
-         oldobjs=$objlist
-         if test "X$oldobjs" = "X" ; then
-           eval cmds=\"\$concat_cmds\"
-         else
-           eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
-         fi
-       fi
-      fi
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-        eval cmd=\"$cmd\"
-       IFS="$save_ifs"
-       $show "$cmd"
-       $run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$generated"; then
-      $show "${rm}r$generated"
-      $run ${rm}r$generated
-    fi
-
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      $show "creating $output"
-
-      # Preserve any variables that may affect compiler behavior
-      for var in $variables_saved_for_relink; do
-       if eval test -z \"\${$var+set}\"; then
-         relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-       elif eval var_value=\$$var; test -z "$var_value"; then
-         relink_command="$var=; export $var; $relink_command"
-       else
-         var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-         relink_command="$var=\"$var_value\"; export $var; $relink_command"
-       fi
-      done
-      # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
-      if test "$hardcode_automatic" = yes ; then
-       relink_command=
-      fi
-
-
-      # Only create the output if not a dry run.
-      if test -z "$run"; then
-       for installed in no yes; do
-         if test "$installed" = yes; then
-           if test -z "$install_libdir"; then
-             break
-           fi
-           output="$output_objdir/$outputname"i
-           # Replace all uninstalled libtool libraries with the installed ones
-           newdependency_libs=
-           for deplib in $dependency_libs; do
-             case $deplib in
-             *.la)
-               name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
-               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-               if test -z "$libdir"; then
-                 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-                 exit $EXIT_FAILURE
-               fi
-               newdependency_libs="$newdependency_libs $libdir/$name"
-               ;;
-             *) newdependency_libs="$newdependency_libs $deplib" ;;
-             esac
-           done
-           dependency_libs="$newdependency_libs"
-           newdlfiles=
-           for lib in $dlfiles; do
-             name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-             eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-             if test -z "$libdir"; then
-               $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-               exit $EXIT_FAILURE
-             fi
-             newdlfiles="$newdlfiles $libdir/$name"
-           done
-           dlfiles="$newdlfiles"
-           newdlprefiles=
-           for lib in $dlprefiles; do
-             name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-             eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-             if test -z "$libdir"; then
-               $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-               exit $EXIT_FAILURE
-             fi
-             newdlprefiles="$newdlprefiles $libdir/$name"
-           done
-           dlprefiles="$newdlprefiles"
-         else
-           newdlfiles=
-           for lib in $dlfiles; do
-             case $lib in
-               [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-               *) abs=`pwd`"/$lib" ;;
-             esac
-             newdlfiles="$newdlfiles $abs"
-           done
-           dlfiles="$newdlfiles"
-           newdlprefiles=
-           for lib in $dlprefiles; do
-             case $lib in
-               [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-               *) abs=`pwd`"/$lib" ;;
-             esac
-             newdlprefiles="$newdlprefiles $abs"
-           done
-           dlprefiles="$newdlprefiles"
-         fi
-         $rm $output
-         # place dlname in correct position for cygwin
-         tdlname=$dlname
-         case $host,$output,$installed,$module,$dlname in
-           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
-         esac
-         $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
-         if test "$installed" = no && test "$need_relink" = yes; then
-           $echo >> $output "\
-relink_command=\"$relink_command\""
-         fi
-       done
-      fi
-
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
-      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
-      ;;
-    esac
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool install mode
-  install)
-    modename="$modename: install"
-
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       $echo "X$nonopt" | grep shtool > /dev/null; then
-      # Aesthetically quote it.
-      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-       arg="\"$arg\""
-       ;;
-      esac
-      install_prog="$arg "
-      arg="$1"
-      shift
-    else
-      install_prog=
-      arg=$nonopt
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-    case $arg in
-    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \      ]*|*]*|"")
-      arg="\"$arg\""
-      ;;
-    esac
-    install_prog="$install_prog$arg"
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    for arg
-    do
-      if test -n "$dest"; then
-       files="$files $dest"
-       dest=$arg
-       continue
-      fi
-
-      case $arg in
-      -d) isdir=yes ;;
-      -f) 
-       case " $install_prog " in
-       *[\\\ /]cp\ *) ;;
-       *) prev=$arg ;;
-       esac
-       ;;
-      -g | -m | -o) prev=$arg ;;
-      -s)
-       stripme=" -s"
-       continue
-       ;;
-      -*)
-       ;;
-      *)
-       # If the previous option needed an argument, then skip it.
-       if test -n "$prev"; then
-         prev=
-       else
-         dest=$arg
-         continue
-       fi
-       ;;
-      esac
-
-      # Aesthetically quote the argument.
-      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-       arg="\"$arg\""
-       ;;
-      esac
-      install_prog="$install_prog $arg"
-    done
-
-    if test -z "$install_prog"; then
-      $echo "$modename: you must specify an install program" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prev' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-       $echo "$modename: no file or destination specified" 1>&2
-      else
-       $echo "$modename: you must specify a destination" 1>&2
-      fi
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    # Strip any trailing slash from the destination.
-    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
-      test "X$destdir" = "X$dest" && destdir=.
-      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files
-      if test "$#" -gt 2; then
-       $echo "$modename: \`$dest' is not a directory" 1>&2
-       $echo "$help" 1>&2
-       exit $EXIT_FAILURE
-      fi
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-       case $file in
-       *.lo) ;;
-       *)
-         $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
-         $echo "$help" 1>&2
-         exit $EXIT_FAILURE
-         ;;
-       esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case $file in
-      *.$libext)
-       # Do the static libraries later.
-       staticlibs="$staticlibs $file"
-       ;;
-
-      *.la)
-       # Check to see that this really is a libtool archive.
-       if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-       else
-         $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
-         $echo "$help" 1>&2
-         exit $EXIT_FAILURE
-       fi
-
-       library_names=
-       old_library=
-       relink_command=
-       # If there is no directory component, then add one.
-       case $file in
-       */* | *\\*) . $file ;;
-       *) . ./$file ;;
-       esac
-
-       # Add the libdir to current_libdirs if it is the destination.
-       if test "X$destdir" = "X$libdir"; then
-         case "$current_libdirs " in
-         *" $libdir "*) ;;
-         *) current_libdirs="$current_libdirs $libdir" ;;
-         esac
-       else
-         # Note the libdir as a future libdir.
-         case "$future_libdirs " in
-         *" $libdir "*) ;;
-         *) future_libdirs="$future_libdirs $libdir" ;;
-         esac
-       fi
-
-       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
-       test "X$dir" = "X$file/" && dir=
-       dir="$dir$objdir"
-
-       if test -n "$relink_command"; then
-         # Determine the prefix the user has applied to our future dir.
-         inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
-
-         # Don't allow the user to place us outside of our expected
-         # location b/c this prevents finding dependent libraries that
-         # are installed to the same prefix.
-         # At present, this check doesn't affect windows .dll's that
-         # are installed into $libdir/../bin (currently, that works fine)
-         # but it's something to keep an eye on.
-         if test "$inst_prefix_dir" = "$destdir"; then
-           $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
-           exit $EXIT_FAILURE
-         fi
-
-         if test -n "$inst_prefix_dir"; then
-           # Stick the inst_prefix_dir data into the link command.
-           relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
-         else
-           relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
-         fi
-
-         $echo "$modename: warning: relinking \`$file'" 1>&2
-         $show "$relink_command"
-         if $run eval "$relink_command"; then :
-         else
-           $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-           exit $EXIT_FAILURE
-         fi
-       fi
-
-       # See the names of the shared library.
-       set dummy $library_names
-       if test -n "$2"; then
-         realname="$2"
-         shift
-         shift
-
-         srcname="$realname"
-         test -n "$relink_command" && srcname="$realname"T
-
-         # Install the shared library and build the symlinks.
-         $show "$install_prog $dir/$srcname $destdir/$realname"
-         $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
-         if test -n "$stripme" && test -n "$striplib"; then
-           $show "$striplib $destdir/$realname"
-           $run eval "$striplib $destdir/$realname" || exit $?
-         fi
-
-         if test "$#" -gt 0; then
-           # Delete the old symlinks, and create new ones.
-           # Try `ln -sf' first, because the `ln' binary might depend on
-           # the symlink we replace!  Solaris /bin/ln does not understand -f,
-           # so we also need to try rm && ln -s.
-           for linkname
-           do
-             if test "$linkname" != "$realname"; then
-                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
-                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
-             fi
-           done
-         fi
-
-         # Do each command in the postinstall commands.
-         lib="$destdir/$realname"
-         cmds=$postinstall_cmds
-         save_ifs="$IFS"; IFS='~'
-         for cmd in $cmds; do
-           IFS="$save_ifs"
-           eval cmd=\"$cmd\"
-           $show "$cmd"
-           $run eval "$cmd" || {
-             lt_exit=$?
-
-             # Restore the uninstalled library and exit
-             if test "$mode" = relink; then
-               $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
-             fi
-
-             exit $lt_exit
-           }
-         done
-         IFS="$save_ifs"
-       fi
-
-       # Install the pseudo-library for information purposes.
-       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-       instname="$dir/$name"i
-       $show "$install_prog $instname $destdir/$name"
-       $run eval "$install_prog $instname $destdir/$name" || exit $?
-
-       # Maybe install the static library, too.
-       test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
-       ;;
-
-      *.lo)
-       # Install (i.e. copy) a libtool object.
-
-       # Figure out destination file name, if it wasn't already specified.
-       if test -n "$destname"; then
-         destfile="$destdir/$destname"
-       else
-         destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-         destfile="$destdir/$destfile"
-       fi
-
-       # Deduce the name of the destination old-style object file.
-       case $destfile in
-       *.lo)
-         staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
-         ;;
-       *.$objext)
-         staticdest="$destfile"
-         destfile=
-         ;;
-       *)
-         $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
-         $echo "$help" 1>&2
-         exit $EXIT_FAILURE
-         ;;
-       esac
-
-       # Install the libtool object if requested.
-       if test -n "$destfile"; then
-         $show "$install_prog $file $destfile"
-         $run eval "$install_prog $file $destfile" || exit $?
-       fi
-
-       # Install the old object if enabled.
-       if test "$build_old_libs" = yes; then
-         # Deduce the name of the old-style object file.
-         staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
-         $show "$install_prog $staticobj $staticdest"
-         $run eval "$install_prog \$staticobj \$staticdest" || exit $?
-       fi
-       exit $EXIT_SUCCESS
-       ;;
-
-      *)
-       # Figure out destination file name, if it wasn't already specified.
-       if test -n "$destname"; then
-         destfile="$destdir/$destname"
-       else
-         destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-         destfile="$destdir/$destfile"
-       fi
-
-       # If the file is missing, and there is a .exe on the end, strip it
-       # because it is most likely a libtool script we actually want to
-       # install
-       stripped_ext=""
-       case $file in
-         *.exe)
-           if test ! -f "$file"; then
-             file=`$echo $file|${SED} 's,.exe$,,'`
-             stripped_ext=".exe"
-           fi
-           ;;
-       esac
-
-       # Do a test to see if this is really a libtool program.
-       case $host in
-       *cygwin*|*mingw*)
-           wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
-           ;;
-       *)
-           wrapper=$file
-           ;;
-       esac
-       if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
-         notinst_deplibs=
-         relink_command=
-
-         # Note that it is not necessary on cygwin/mingw to append a dot to
-         # foo even if both foo and FILE.exe exist: automatic-append-.exe
-         # behavior happens only for exec(3), not for open(2)!  Also, sourcing
-         # `FILE.' does not work on cygwin managed mounts.
-         #
-         # If there is no directory component, then add one.
-         case $wrapper in
-         */* | *\\*) . ${wrapper} ;;
-         *) . ./${wrapper} ;;
-         esac
-
-         # Check the variables that should have been set.
-         if test -z "$notinst_deplibs"; then
-           $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
-           exit $EXIT_FAILURE
-         fi
-
-         finalize=yes
-         for lib in $notinst_deplibs; do
-           # Check to see that each library is installed.
-           libdir=
-           if test -f "$lib"; then
-             # If there is no directory component, then add one.
-             case $lib in
-             */* | *\\*) . $lib ;;
-             *) . ./$lib ;;
-             esac
-           fi
-           libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
-           if test -n "$libdir" && test ! -f "$libfile"; then
-             $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
-             finalize=no
-           fi
-         done
-
-         relink_command=
-         # Note that it is not necessary on cygwin/mingw to append a dot to
-         # foo even if both foo and FILE.exe exist: automatic-append-.exe
-         # behavior happens only for exec(3), not for open(2)!  Also, sourcing
-         # `FILE.' does not work on cygwin managed mounts.
-         #
-         # If there is no directory component, then add one.
-         case $wrapper in
-         */* | *\\*) . ${wrapper} ;;
-         *) . ./${wrapper} ;;
-         esac
-
-         outputname=
-         if test "$fast_install" = no && test -n "$relink_command"; then
-           if test "$finalize" = yes && test -z "$run"; then
-             tmpdir=`func_mktempdir`
-             file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
-             outputname="$tmpdir/$file"
-             # Replace the output file specification.
-             relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
-
-             $show "$relink_command"
-             if $run eval "$relink_command"; then :
-             else
-               $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-               ${rm}r "$tmpdir"
-               continue
-             fi
-             file="$outputname"
-           else
-             $echo "$modename: warning: cannot relink \`$file'" 1>&2
-           fi
-         else
-           # Install the binary that we compiled earlier.
-           file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
-         fi
-       fi
-
-       # remove .exe since cygwin /usr/bin/install will append another
-       # one anyway 
-       case $install_prog,$host in
-       */usr/bin/install*,*cygwin*)
-         case $file:$destfile in
-         *.exe:*.exe)
-           # this is ok
-           ;;
-         *.exe:*)
-           destfile=$destfile.exe
-           ;;
-         *:*.exe)
-           destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
-           ;;
-         esac
-         ;;
-       esac
-       $show "$install_prog$stripme $file $destfile"
-       $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
-       test -n "$outputname" && ${rm}r "$tmpdir"
-       ;;
-      esac
-    done
-
-    for file in $staticlibs; do
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
-
-      $show "$install_prog $file $oldlib"
-      $run eval "$install_prog \$file \$oldlib" || exit $?
-
-      if test -n "$stripme" && test -n "$old_striplib"; then
-       $show "$old_striplib $oldlib"
-       $run eval "$old_striplib $oldlib" || exit $?
-      fi
-
-      # Do each command in the postinstall commands.
-      cmds=$old_postinstall_cmds
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-       IFS="$save_ifs"
-       eval cmd=\"$cmd\"
-       $show "$cmd"
-       $run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$future_libdirs"; then
-      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
-    fi
-
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
-    else
-      exit $EXIT_SUCCESS
-    fi
-    ;;
-
-  # libtool finish mode
-  finish)
-    modename="$modename: finish"
-    libdirs="$nonopt"
-    admincmds=
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-       libdirs="$libdirs $dir"
-      done
-
-      for libdir in $libdirs; do
-       if test -n "$finish_cmds"; then
-         # Do each command in the finish commands.
-         cmds=$finish_cmds
-         save_ifs="$IFS"; IFS='~'
-         for cmd in $cmds; do
-           IFS="$save_ifs"
-           eval cmd=\"$cmd\"
-           $show "$cmd"
-           $run eval "$cmd" || admincmds="$admincmds
-       $cmd"
-         done
-         IFS="$save_ifs"
-       fi
-       if test -n "$finish_eval"; then
-         # Do the single finish_eval.
-         eval cmds=\"$finish_eval\"
-         $run eval "$cmds" || admincmds="$admincmds
-       $cmds"
-       fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    test "$show" = : && exit $EXIT_SUCCESS
-
-    $echo "X----------------------------------------------------------------------" | $Xsed
-    $echo "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $echo "   $libdir"
-    done
-    $echo
-    $echo "If you ever happen to want to link against installed libraries"
-    $echo "in a given directory, LIBDIR, you must either use libtool, and"
-    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    $echo "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      $echo "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-      $echo "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
-
-      $echo "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $echo "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    $echo
-    $echo "See any operating system documentation about shared libraries for"
-    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    $echo "X----------------------------------------------------------------------" | $Xsed
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool execute mode
-  execute)
-    modename="$modename: execute"
-
-    # The first argument is the command name.
-    cmd="$nonopt"
-    if test -z "$cmd"; then
-      $echo "$modename: you must specify a COMMAND" 1>&2
-      $echo "$help"
-      exit $EXIT_FAILURE
-    fi
-
-    # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
-      if test ! -f "$file"; then
-       $echo "$modename: \`$file' is not a file" 1>&2
-       $echo "$help" 1>&2
-       exit $EXIT_FAILURE
-      fi
-
-      dir=
-      case $file in
-      *.la)
-       # Check to see that this really is a libtool archive.
-       if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-       else
-         $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-         $echo "$help" 1>&2
-         exit $EXIT_FAILURE
-       fi
-
-       # Read the libtool library.
-       dlname=
-       library_names=
-
-       # If there is no directory component, then add one.
-       case $file in
-       */* | *\\*) . $file ;;
-       *) . ./$file ;;
-       esac
-
-       # Skip this library if it cannot be dlopened.
-       if test -z "$dlname"; then
-         # Warn if it was a shared library.
-         test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
-         continue
-       fi
-
-       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-       test "X$dir" = "X$file" && dir=.
-
-       if test -f "$dir/$objdir/$dlname"; then
-         dir="$dir/$objdir"
-       else
-         if test ! -f "$dir/$dlname"; then
-           $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-           exit $EXIT_FAILURE
-         fi
-       fi
-       ;;
-
-      *.lo)
-       # Just add the directory containing the .lo file.
-       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-       test "X$dir" = "X$file" && dir=.
-       ;;
-
-      *)
-       $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
-       continue
-       ;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-       eval "$shlibpath_var=\"\$dir\""
-      else
-       eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -*) ;;
-      *)
-       # Do a test to see if this is really a libtool program.
-       if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         # If there is no directory component, then add one.
-         case $file in
-         */* | *\\*) . $file ;;
-         *) . ./$file ;;
-         esac
-
-         # Transform arg to wrapped name.
-         file="$progdir/$program"
-       fi
-       ;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
-      args="$args \"$file\""
-    done
-
-    if test -z "$run"; then
-      if test -n "$shlibpath_var"; then
-       # Export the shlibpath_var.
-       eval "export $shlibpath_var"
-      fi
-
-      # Restore saved environment variables
-      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-      do
-       eval "if test \"\${save_$lt_var+set}\" = set; then
-               $lt_var=\$save_$lt_var; export $lt_var
-             fi"
-      done
-
-      # Now prepare to actually exec the command.
-      exec_cmd="\$cmd$args"
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-       eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
-       $echo "export $shlibpath_var"
-      fi
-      $echo "$cmd$args"
-      exit $EXIT_SUCCESS
-    fi
-    ;;
-
-  # libtool clean and uninstall mode
-  clean | uninstall)
-    modename="$modename: $mode"
-    rm="$nonopt"
-    files=
-    rmforce=
-    exit_status=0
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    for arg
-    do
-      case $arg in
-      -f) rm="$rm $arg"; rmforce=yes ;;
-      -*) rm="$rm $arg" ;;
-      *) files="$files $arg" ;;
-      esac
-    done
-
-    if test -z "$rm"; then
-      $echo "$modename: you must specify an RM program" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    rmdirs=
-
-    origobjdir="$objdir"
-    for file in $files; do
-      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-      if test "X$dir" = "X$file"; then
-       dir=.
-       objdir="$origobjdir"
-      else
-       objdir="$dir/$origobjdir"
-      fi
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-      test "$mode" = uninstall && objdir="$dir"
-
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
-       case " $rmdirs " in
-         *" $objdir "*) ;;
-         *) rmdirs="$rmdirs $objdir" ;;
-       esac
-      fi
-
-      # Don't error if the file doesn't exist and rm -f was used.
-      if (test -L "$file") >/dev/null 2>&1 \
-       || (test -h "$file") >/dev/null 2>&1 \
-       || test -f "$file"; then
-       :
-      elif test -d "$file"; then
-       exit_status=1
-       continue
-      elif test "$rmforce" = yes; then
-       continue
-      fi
-
-      rmfiles="$file"
-
-      case $name in
-      *.la)
-       # Possibly a libtool archive, so verify it.
-       if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         . $dir/$name
-
-         # Delete the libtool libraries and symlinks.
-         for n in $library_names; do
-           rmfiles="$rmfiles $objdir/$n"
-         done
-         test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-
-         case "$mode" in
-         clean)
-           case "  $library_names " in
-           # "  " in the beginning catches empty $dlname
-           *" $dlname "*) ;;
-           *) rmfiles="$rmfiles $objdir/$dlname" ;;
-           esac
-            test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-           ;;
-         uninstall)
-           if test -n "$library_names"; then
-             # Do each command in the postuninstall commands.
-             cmds=$postuninstall_cmds
-             save_ifs="$IFS"; IFS='~'
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               eval cmd=\"$cmd\"
-               $show "$cmd"
-               $run eval "$cmd"
-               if test "$?" -ne 0 && test "$rmforce" != yes; then
-                 exit_status=1
-               fi
-             done
-             IFS="$save_ifs"
-           fi
-
-           if test -n "$old_library"; then
-             # Do each command in the old_postuninstall commands.
-             cmds=$old_postuninstall_cmds
-             save_ifs="$IFS"; IFS='~'
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               eval cmd=\"$cmd\"
-               $show "$cmd"
-               $run eval "$cmd"
-               if test "$?" -ne 0 && test "$rmforce" != yes; then
-                 exit_status=1
-               fi
-             done
-             IFS="$save_ifs"
-           fi
-           # FIXME: should reinstall the best remaining shared library.
-           ;;
-         esac
-       fi
-       ;;
-
-      *.lo)
-       # Possibly a libtool object, so verify it.
-       if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-
-         # Read the .lo file
-         . $dir/$name
-
-         # Add PIC object to the list of files to remove.
-         if test -n "$pic_object" \
-            && test "$pic_object" != none; then
-           rmfiles="$rmfiles $dir/$pic_object"
-         fi
-
-         # Add non-PIC object to the list of files to remove.
-         if test -n "$non_pic_object" \
-            && test "$non_pic_object" != none; then
-           rmfiles="$rmfiles $dir/$non_pic_object"
-         fi
-       fi
-       ;;
-
-      *)
-       if test "$mode" = clean ; then
-         noexename=$name
-         case $file in
-         *.exe)
-           file=`$echo $file|${SED} 's,.exe$,,'`
-           noexename=`$echo $name|${SED} 's,.exe$,,'`
-           # $file with .exe has already been added to rmfiles,
-           # add $file without .exe
-           rmfiles="$rmfiles $file"
-           ;;
-         esac
-         # Do a test to see if this is a libtool program.
-         if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-           relink_command=
-           . $dir/$noexename
-
-           # note $name still contains .exe if it was in $file originally
-           # as does the version of $file that was added into $rmfiles
-           rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
-           if test "$fast_install" = yes && test -n "$relink_command"; then
-             rmfiles="$rmfiles $objdir/lt-$name"
-           fi
-           if test "X$noexename" != "X$name" ; then
-             rmfiles="$rmfiles $objdir/lt-${noexename}.c"
-           fi
-         fi
-       fi
-       ;;
-      esac
-      $show "$rm $rmfiles"
-      $run $rm $rmfiles || exit_status=1
-    done
-    objdir="$origobjdir"
-
-    # Try to remove the ${objdir}s in the directories where we deleted files
-    for dir in $rmdirs; do
-      if test -d "$dir"; then
-       $show "rmdir $dir"
-       $run rmdir $dir >/dev/null 2>&1
-      fi
-    done
-
-    exit $exit_status
-    ;;
-
-  "")
-    $echo "$modename: you must specify a MODE" 1>&2
-    $echo "$generic_help" 1>&2
-    exit $EXIT_FAILURE
-    ;;
-  esac
-
-  if test -z "$exec_cmd"; then
-    $echo "$modename: invalid operation mode \`$mode'" 1>&2
-    $echo "$generic_help" 1>&2
-    exit $EXIT_FAILURE
-  fi
-fi # test -z "$show_help"
-
-if test -n "$exec_cmd"; then
-  eval exec $exec_cmd
-  exit $EXIT_FAILURE
-fi
-
-# We need to display help for each of the modes.
-case $mode in
-"") $echo \
-"Usage: $modename [OPTION]... [MODE-ARG]...
-
-Provide generalized library-building support services.
-
-    --config          show all configuration variables
-    --debug           enable verbose shell tracing
--n, --dry-run         display commands without modifying any files
-    --features        display basic configuration information and exit
-    --finish          same as \`--mode=finish'
-    --help            display this help message and exit
-    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
-    --quiet           same as \`--silent'
-    --silent          don't print informational messages
-    --tag=TAG         use configuration variables from tag TAG
-    --version         print version information
-
-MODE must be one of the following:
-
-      clean           remove files from the build directory
-      compile         compile a source file into a libtool object
-      execute         automatically set library path, then run a program
-      finish          complete the installation of libtool libraries
-      install         install libraries or executables
-      link            create a library or an executable
-      uninstall       remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE.
-
-Report bugs to <bug-libtool@gnu.org>."
-  exit $EXIT_SUCCESS
-  ;;
-
-clean)
-  $echo \
-"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-compile)
-  $echo \
-"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
-  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
-  -static           always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-  ;;
-
-execute)
-  $echo \
-"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
-  -dlopen FILE      add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
-  ;;
-
-finish)
-  $echo \
-"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
-  ;;
-
-install)
-  $echo \
-"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-  ;;
-
-link)
-  $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-                    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-                    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -precious-files-regex REGEX
-                    don't remove output files matching REGEX
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -static           do not do any dynamic linking of uninstalled libtool libraries
-  -static-libtool-libs
-                    do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-                    specify library version info [each variable defaults to 0]
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename.  Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
-  ;;
-
-uninstall)
-  $echo \
-"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-*)
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$help" 1>&2
-  exit $EXIT_FAILURE
-  ;;
-esac
-
-$echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit $?
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries.  Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them.  This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration.  But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-disable_libs=shared
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-disable_libs=static
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/zephyr/mkinstalldirs b/zephyr/mkinstalldirs
deleted file mode 100755 (executable)
index 6fbe5e1..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-
-scriptversion=2004-02-15.20
-
-# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain.
-#
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
-
-Create each directory DIR (with mode MODE, if specified), including all
-leading file name components.
-
-Report bugs to <bug-automake@gnu.org>."
-
-# process command line arguments
-while test $# -gt 0 ; do
-  case $1 in
-    -h | --help | --h*)         # -h for help
-      echo "$usage"
-      exit 0
-      ;;
-    -m)                         # -m PERM arg
-      shift
-      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
-      dirmode=$1
-      shift
-      ;;
-    --version)
-      echo "$0 $scriptversion"
-      exit 0
-      ;;
-    --)                         # stop option processing
-      shift
-      break
-      ;;
-    -*)                         # unknown option
-      echo "$usage" 1>&2
-      exit 1
-      ;;
-    *)                          # first non-opt arg
-      break
-      ;;
-  esac
-done
-
-for file
-do
-  if test -d "$file"; then
-    shift
-  else
-    break
-  fi
-done
-
-case $# in
-  0) exit 0 ;;
-esac
-
-# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
-# mkdir -p a/c at the same time, both will detect that a is missing,
-# one will create a, then the other will try to create a and die with
-# a "File exists" error.  This is a problem when calling mkinstalldirs
-# from a parallel make.  We use --version in the probe to restrict
-# ourselves to GNU mkdir, which is thread-safe.
-case $dirmode in
-  '')
-    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-      echo "mkdir -p -- $*"
-      exec mkdir -p -- "$@"
-    else
-      # On NextStep and OpenStep, the `mkdir' command does not
-      # recognize any option.  It will interpret all options as
-      # directories to create, and then abort because `.' already
-      # exists.
-      test -d ./-p && rmdir ./-p
-      test -d ./--version && rmdir ./--version
-    fi
-    ;;
-  *)
-    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
-       test ! -d ./--version; then
-      echo "mkdir -m $dirmode -p -- $*"
-      exec mkdir -m "$dirmode" -p -- "$@"
-    else
-      # Clean up after NextStep and OpenStep mkdir.
-      for d in ./-m ./-p ./--version "./$dirmode";
-      do
-        test -d $d && rmdir $d
-      done
-    fi
-    ;;
-esac
-
-for file
-do
-  set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-  shift
-
-  pathcomp=
-  for d
-  do
-    pathcomp="$pathcomp$d"
-    case $pathcomp in
-      -*) pathcomp=./$pathcomp ;;
-    esac
-
-    if test ! -d "$pathcomp"; then
-      echo "mkdir $pathcomp"
-
-      mkdir "$pathcomp" || lasterr=$?
-
-      if test ! -d "$pathcomp"; then
-       errstatus=$lasterr
-      else
-       if test ! -z "$dirmode"; then
-         echo "chmod $dirmode $pathcomp"
-         lasterr=""
-         chmod "$dirmode" "$pathcomp" || lasterr=$?
-
-         if test ! -z "$lasterr"; then
-           errstatus=$lasterr
-         fi
-       fi
-      fi
-    fi
-
-    pathcomp="$pathcomp/"
-  done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/zephyr/server/Makefile.in b/zephyr/server/Makefile.in
deleted file mode 100644 (file)
index 2008ab5..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-top_builddir=..
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-INSTALL=@INSTALL@
-
-LIBZEPHYR=${BUILDTOP}/lib/libzephyr.la
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -DSYSCONFDIR=\"${sysconfdir}\" -I${top_srcdir}/h \
-       -I${BUILDTOP}/h -I. ${CPPFLAGS}
-LDFLAGS=@LDFLAGS@
-LIBS=${LIBZEPHYR} @LIBS@ -lcom_err
-
-OBJS=  zsrv_err.o access.o acl_files.o bdump.o class.o client.o common.o \
-       dispatch.o kstuff.o main.o server.o subscr.o timer.o uloc.o \
-       zstring.o realm.o version.o utf8proc.o
-
-all: zephyrd
-
-zephyrd: ${OBJS} ${LIBZEPHYR}
-       ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-zsrv_err.c zsrv_err.h: zsrv_err.et
-       compile_et ${srcdir}/zsrv_err.et
-
-version.o: version.h
-
-version.h: always
-       sh ${srcdir}/new_vers.sh
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-# No dependency on zephyrd, to avoid rebuilding version.o.
-install:
-       ${LIBTOOL} --mode=install ${INSTALL} -m 755 zephyrd \
-         ${DESTDIR}${sbindir}
-       ${INSTALL} -m 644 ${srcdir}/zephyrd.8 ${DESTDIR}${mandir}/man8
-       ${INSTALL} -m 644 ${srcdir}/default.subscriptions \
-               ${DESTDIR}${sysconfdir}/zephyr
-
-clean:
-       ${LIBTOOL} --mode=clean rm -f zephyrd
-       rm -f ${OBJS} zsrv_err.[ch]
-
-always:
-
-${OBJS}: zserver.h zsrv_err.h timer.h zsrv_conf.h zstring.h access.h acl.h
-${OBJS}: ${top_srcdir}/h/internal.h ${top_srcdir}/h/sysdep.h
-${OBJS}: ${BUILDTOP}/h/config.h ${BUILDTOP}/h/zephyr/zephyr.h
-${OBJS}: ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-.PHONY: all check install clean always
-
diff --git a/zephyr/server/access.c b/zephyr/server/access.c
deleted file mode 100644 (file)
index 0d83887..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for dealing with acl's.
- *
- *     Created by:     John T. Kohl
- *
- *     $Id: access.c 2150 2008-01-21 19:50:52Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"
-#include <com_err.h>
-
-#if !defined (lint) && !defined (SABER)
-static const char rcsid_access_c[] =
-    "$Id: access.c 2150 2008-01-21 19:50:52Z kcr $";
-#endif
-
-/*
- *
- * External routines:
- *
- * int access_check(notice, acl, accesstype)
- *    ZNotice_t *notice;
- *    Acl *acl;
- *    Access accesstype;
- *
- * void access_init();
- *
- * void access_reinit();
- */
-
-/*
- * Each restricted class has four ACL's associated with it,
- * governing subscriptions, transmission, and instance restrictions.
- * This module provides the 'glue' between the standard Athena ACL
- * routines and the support needed by the Zephyr server.
- */
-
-/*
- * Our private types for the acl_types field in the Acl structure.
- *     -TYT 8/14/90
- */
-#define ACL_XMT                1
-#define ACL_SUB                2
-#define ACL_IWS                4
-#define ACL_IUI                8
-
-static void check_acl __P((Acl *acl));
-static void check_acl_type __P((Acl *acl, Access accesstype, int typeflag));
-static void access_setup __P((int first));
-
-/*
- * check access.  return 1 if ok, 0 if not ok.
- */
-
-int
-access_check(char *sender,
-            Acl *acl,
-            Access accesstype)
-{
-    char buf[MAXPATHLEN];      /* holds the real acl name */
-    char *prefix;
-    int        flag;
-    int retval;
-
-    switch (accesstype) {
-      case TRANSMIT:
-       prefix = "xmt";
-       flag = ACL_XMT;
-       break;
-      case SUBSCRIBE:
-       prefix = "sub";
-       flag = ACL_SUB;
-       break;
-      case INSTWILD:
-       prefix = "iws";
-       flag = ACL_IWS;
-       break;
-      case INSTUID:
-       prefix = "iui";
-       flag = ACL_IUI;
-       break;
-      default:
-       syslog(LOG_ERR, "unknown access type %d", (int) accesstype);
-       return 0;
-    }
-    if (!(acl->acl_types & flag)) /* no acl ==> no restriction */
-       return 1;
-    sprintf(buf, "%s/%s-%s.acl", acl_dir, prefix, acl->acl_filename);
-    /*
-     * If we can't load it (because it probably doesn't exist),
-     * we deny access.
-     */
-    retval = acl_load(buf);
-    if (retval < 0) {
-       syslog(LOG_DEBUG, "Error in acl_load of %s for %s", buf, sender);
-       return 0;
-    }
-    return acl_check(buf, sender);
-}
-
-static void
-check_acl(Acl *acl)
-{
-    acl->acl_types = 0;
-    check_acl_type(acl, TRANSMIT, ACL_XMT);
-    check_acl_type(acl, SUBSCRIBE, ACL_SUB);
-    check_acl_type(acl, INSTWILD, ACL_IWS);
-    check_acl_type(acl, INSTUID, ACL_IUI);
-}
-
-static void
-check_acl_type(Acl *acl,
-              Access accesstype,
-              int typeflag)
-{
-    char       buf[MAXPATHLEN]; /* holds the real acl name */
-    char       *prefix;
-
-    switch (accesstype) {
-      case TRANSMIT:
-       prefix = "xmt";
-       break;
-      case SUBSCRIBE:
-       prefix = "sub";
-       break;
-      case INSTWILD:
-       prefix = "iws";
-       break;
-      case INSTUID:
-       prefix = "iui";
-       break;
-      default:
-       syslog(LOG_ERR, "unknown access type %d", (int) accesstype);
-       return;
-    }
-    sprintf(buf, "%s/%s-%s.acl", acl_dir, prefix, acl->acl_filename);
-    if (!access(buf, F_OK))
-       acl->acl_types |= typeflag;
-}
-
-
-/*
- * Re-init code written by TYT, 8/14/90.
- *
- * General plan of action; we reread the registry list, and add any
- * new restricted classes.  If any restricted classes disappear (this
- * should be rarely) the Acl structure is not deallocated; rather,
- * the acl_types field will be left at zero, since there will be no
- * acl files for the (non-)restricted class.
- */
-static void
-access_setup(int first)
-{
-    char buf[MAXPATHLEN];
-    char class_name[512];      /* assume class names <= 511 bytes */
-    FILE *registry;
-    Acl *acl;
-    int len;
-    char *colon_idx;
-    Code_t retval = 0;
-
-    sprintf(buf, "%s/%s", acl_dir, ZEPHYR_CLASS_REGISTRY);
-    registry = fopen(buf, "r");
-    if (!registry) {
-       syslog(LOG_ERR, "no registry available, all classes are free");
-       return;
-    }
-    while (fgets(class_name, 512, registry)) {
-       colon_idx = strchr(class_name, ':');
-       if (colon_idx != NULL)
-           *colon_idx = '\0';
-       else if ((len = strlen(class_name)) != 0)
-           class_name[len - 1] = '\0';
-       acl = 0;
-       if (!first) {
-           String *z;
-
-           z = make_string(class_name,1);
-           acl = class_get_acl(z);
-           free_string(z);
-       }
-       if (!acl) {
-           acl = (Acl *) malloc(sizeof(Acl));
-           if (!acl) {
-               syslog(LOG_ERR, "no mem acl alloc");
-               abort();
-           }
-           acl->acl_filename = strsave(class_name);
-           check_acl(acl);
-                   
-           if (!first) {
-               /* Try to restrict already existing class */
-               retval = class_restrict(class_name, acl);
-               if (retval == ZSRV_NOCLASS)
-                   retval = class_setup_restricted(class_name, acl);
-           } else {
-               retval = class_setup_restricted(class_name, acl);
-           }
-       }
-       if (retval) {
-           syslog(LOG_ERR, "can't restrict %s: %s",
-                  class_name, error_message(retval));
-           continue;
-       }
-       zdbug((LOG_DEBUG, "restricted %s", class_name));
-    }
-    fclose(registry);
-}
-
-void
-access_init(void)
-{
-    access_setup(1);
-}
-
-void
-access_reinit(void)
-{
-    acl_cache_reset();
-    access_setup(0);
-}
diff --git a/zephyr/server/access.h b/zephyr/server/access.h
deleted file mode 100644 (file)
index df11469..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of the Project Athena Zephyr Notification System.
- *
- * It contains declarations for use in the server, relating to access
- * control.
- *
- * Created by Ken Raeburn.
- *
- * $Id: access.h 2091 2007-12-20 01:17:23Z kcr $
- *
- * Copyright (c) 1990 by the Massachusetts Institute of Technology.
- * For copying and distribution information, see the file
- * "mit-copyright.h".
- */
-
-#include <zephyr/mit-copyright.h>
-
-#include "acl.h"
-#include "zstring.h"
-
-typedef        enum _Access {
-    TRANSMIT,                  /* use transmission acl */
-    SUBSCRIBE,                 /* use subscription acl */
-    INSTWILD,                  /* use instance wildcard acl */
-    INSTUID                            /* use instance UID identity acl */
-} Access;
-
-typedef struct _Acl {
-    char *acl_filename;
-    int        acl_types;              /* Internal; access fields present. */
-} Acl;
-
-/* found in access.c */
-void access_init __P((void));
-void access_reinit __P((void));
-
-/* found in acl_files.c */
-int acl_load __P((char *));
-
-/* external data relevant */
-extern int zdebug;
-
diff --git a/zephyr/server/acl.h b/zephyr/server/acl.h
deleted file mode 100644 (file)
index 02b76a2..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains definitions for the ACL library
- *
- *     Created by:     John T. Kohl
- *
- *     $Id: acl.h 2091 2007-12-20 01:17:23Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef        __ACL__
-#define        __ACL__
-
-int acl_add __P((char *, char *));
-int acl_check __P((char *, char *));
-int acl_delete __P((char *, char *));
-int acl_initialize __P((char *, int));
-void acl_cache_reset __P((void));
-
-#endif /* __ACL__ */
-
diff --git a/zephyr/server/acl_files.c b/zephyr/server/acl_files.c
deleted file mode 100644 (file)
index 66ba095..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for maintaining Access Control Lists.
- *
- *     Created by:     John T. Kohl
- *
- *     $Id: acl_files.c 2236 2008-12-21 08:33:17Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-/* Define this if you really want the ACL-writing code included.  */
-
-/*
- * Stolen from lib/acl_files.c because acl_load needs to be externally
- * declared and not statically declared.
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"
-/* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */
-/* this needs to be rethought for a world without krb4 */
-
-#ifndef SABER
-#ifndef lint
-static const char rcsid_acl_files_c[] = "$Id: acl_files.c 2236 2008-12-21 08:33:17Z kcr $";
-#endif /* lint */
-#endif /* SABER */
-
-/*** Routines for manipulating access control list files ***/
-
-#ifndef ANAME_SZ
-#define ANAME_SZ 40
-#define INST_SZ 40
-#endif /* XXX */
-
-/* "aname.inst@realm" */
-#ifndef MAX_PRINCIPAL_SIZE
-#define MAX_PRINCIPAL_SIZE  (ANAME_SZ + INST_SZ + REALM_SZ + 3)
-#endif
-#define INST_SEP '.'
-#define REALM_SEP '@'
-
-#define LINESIZE 2048          /* Maximum line length in an acl file */
-
-#define NEW_FILE "%s.~NEWACL~" /* Format for name of altered acl file */
-#define WAIT_TIME 300          /* Maximum time allowed write acl file */
-
-#define CACHED_ACLS 64         /* How many acls to cache */
-#define ACL_LEN 256            /* Twice a reasonable acl length */
-
-#define MAX(a,b) (((a)>(b))?(a):(b))
-#define MIN(a,b) (((a)<(b))?(a):(b))
-
-#define COR(a,b) ((a!=NULL)?(a):(b))
-
-/* Canonicalize a principal name */
-/* If instance is missing, it becomes "" */
-/* If realm is missing, it becomes the local realm */
-/* Canonicalized form is put in canon, which must be big enough to hold
-   MAX_PRINCIPAL_SIZE characters */
-void acl_canonicalize_principal(char *principal,
-                               char *canon)
-{
-    char *end;
-    char *dot, *atsign;
-    int len;
-
-    dot = strchr(principal, INST_SEP);
-    atsign = strchr(principal, REALM_SEP);
-
-    /* Maybe we're done already */
-    if (dot != NULL && atsign != NULL) {
-       if (dot < atsign) {
-           /* It's for real */
-           /* Copy into canon */
-           strncpy(canon, principal, MAX_PRINCIPAL_SIZE);
-           canon[MAX_PRINCIPAL_SIZE-1] = '\0';
-           return;
-       } else {
-           /* Nope, it's part of the realm */
-           dot = NULL;
-       }
-    }
-    
-    /* No such luck */
-    end = principal + strlen(principal);
-
-    /* Get the principal name */
-    len = MIN(ANAME_SZ, COR(dot, COR(atsign, end)) - principal);
-    strncpy(canon, principal, len);
-    canon += len;
-
-    /* Add INST_SEP */
-    *canon++ = INST_SEP;
-
-    /* Get the instance, if it exists */
-    if (dot != NULL) {
-       ++dot;
-       len = MIN(INST_SZ, COR(atsign, end) - dot);
-       strncpy(canon, dot, len);
-       canon += len;
-    }
-
-    /* Add REALM_SEP */
-    *canon++ = REALM_SEP;
-
-    /* Get the realm, if it exists */
-    /* Otherwise, default to local realm */
-    if (atsign != NULL) {
-       ++atsign;
-       len = MIN(REALM_SZ, end - atsign);
-       strncpy(canon, atsign, len);
-       canon += len;
-       *canon++ = '\0';
-    } 
-#ifdef HAVE_KRB4
-    else if (krb_get_lrealm(canon, 1) != KSUCCESS) {
-       strcpy(canon, KRB_REALM);
-    }
-#endif
-}
-
-/* Eliminate all whitespace character in buf */
-/* Modifies its argument */
-static void
-nuke_whitespace(char *buf)
-{
-    char *pin, *pout;
-
-    for (pin = pout = buf; *pin != '\0'; pin++)
-       if (!isspace(*pin)) *pout++ = *pin;
-    *pout = '\0';              /* Terminate the string */
-}
-
-/* Hash table stuff */
-
-struct hashtbl {
-    int size;                  /* Max number of entries */
-    int entries;               /* Actual number of entries */
-    char **tbl;                        /* Pointer to start of table */
-};
-
-/* Make an empty hash table of size s */
-static struct hashtbl *
-make_hash(int size)
-{
-    struct hashtbl *h;
-
-    if (size < 1) size = 1;
-    h = (struct hashtbl *) malloc(sizeof(struct hashtbl));
-    h->size = size;
-    h->entries = 0;
-    h->tbl = (char **) calloc(size, sizeof(char *));
-    return(h);
-}
-
-/* Destroy a hash table */
-static void
-destroy_hash(struct hashtbl *h)
-{
-    int i;
-
-    for (i = 0; i < h->size; i++) {
-       if (h->tbl[i] != NULL) free(h->tbl[i]);
-    }
-    free(h->tbl);
-    free(h);
-}
-
-/* Compute hash value for a string */
-static unsigned int
-hashval(char *s)
-{
-    unsigned hv;
-
-    for (hv = 0; *s != '\0'; s++) {
-       hv ^= ((hv << 3) ^ *s);
-    }
-    return(hv);
-}
-
-/* Add an element to a hash table */
-static void
-add_hash(struct hashtbl *h,
-        char *el)
-{
-    unsigned hv;
-    char *s;
-    char **old;
-    int i;
-
-    /* Make space if it isn't there already */
-    if (h->entries + 1 > (h->size >> 1)) {
-       old = h->tbl;
-       h->tbl = (char **) calloc(h->size << 1, sizeof(char *));
-       for (i = 0; i < h->size; i++) {
-           if (old[i] != NULL) {
-               hv = hashval(old[i]) % (h->size << 1);
-               while(h->tbl[hv] != NULL) hv = (hv+1) % (h->size << 1);
-               h->tbl[hv] = old[i];
-           }
-       }
-       h->size = h->size << 1;
-       free(old);
-    }
-
-    hv = hashval(el) % h->size;
-    while(h->tbl[hv] != NULL && strcmp(h->tbl[hv], el)) hv = (hv+1) % h->size;
-    s = (char *) malloc(strlen(el)+1);
-    strcpy(s, el);
-    h->tbl[hv] = s;
-    h->entries++;
-}
-
-/* Returns nonzero if el is in h */
-static int
-check_hash(struct hashtbl *h,
-          char *el)
-{
-    unsigned hv;
-
-    for (hv = hashval(el) % h->size; h->tbl[hv]; hv = (hv + 1) % h->size) {
-       if (!strcmp(h->tbl[hv], el)) {
-           return 1;
-       }
-    }
-    return 0;
-}
-
-struct acl {
-    char filename[LINESIZE];   /* Name of acl file */
-    struct hashtbl *acl;       /* Acl entries */
-};
-
-static struct acl acl_cache[CACHED_ACLS];
-
-static int acl_cache_count = 0;
-static int acl_cache_next = 0;
-
-/* Returns < 0 if unsuccessful in loading acl */
-/* Returns index into acl_cache otherwise */
-/* Note that if acl is already loaded, this is just a lookup */
-int acl_load(char *name)
-{
-    int i;
-    FILE *f;
-    char buf[MAX_PRINCIPAL_SIZE];
-    char canon[MAX_PRINCIPAL_SIZE];
-
-    /* See if it's there already */
-    for (i = 0; i < acl_cache_count; i++) {
-       if (!strcmp(acl_cache[i].filename, name))
-           goto got_it;
-    }
-
-    /* It isn't, load it in */
-    /* maybe there's still room */
-    if (acl_cache_count < CACHED_ACLS) {
-       i = acl_cache_count++;
-    } else {
-       /* No room, clean one out */
-       i = acl_cache_next;
-       acl_cache_next = (acl_cache_next + 1) % CACHED_ACLS;
-       if (acl_cache[i].acl) {
-           destroy_hash(acl_cache[i].acl);
-           acl_cache[i].acl = (struct hashtbl *) 0;
-       }
-    }
-
-    /* Set up the acl */
-    strcpy(acl_cache[i].filename, name);
-    /* Force reload */
-    acl_cache[i].acl = (struct hashtbl *) 0;
-
-  got_it:
-    /*
-     * See if we need to reload the ACL
-     */
-    if (acl_cache[i].acl == (struct hashtbl *) 0) {
-       /* Gotta reload */
-       if ((f = fopen(name, "r")) == NULL) {
-           syslog(LOG_ERR, "Error loading acl file %s: %m", name);
-           return -1;
-       }
-       if (acl_cache[i].acl) destroy_hash(acl_cache[i].acl);
-       acl_cache[i].acl = make_hash(ACL_LEN);
-       while(fgets(buf, sizeof(buf), f) != NULL) {
-           nuke_whitespace(buf);
-           acl_canonicalize_principal(buf, canon);
-           add_hash(acl_cache[i].acl, canon);
-       }
-       fclose(f);
-    }
-    return(i);
-}
-
-/*
- * This destroys all cached ACL's so that new ones will be loaded in
- * the next time they are requested.
- */
-void
-acl_cache_reset(void)
-{
-       int     i;
-       
-       /* See if it's there already */
-       for (i = 0; i < acl_cache_count; i++)
-           if (acl_cache[i].acl) {
-               destroy_hash(acl_cache[i].acl);
-               acl_cache[i].acl = (struct hashtbl *) 0;
-           }
-       acl_cache_count = 0;
-       acl_cache_next = 0;
-    }
-
-
-/* Returns nonzero if it can be determined that acl contains principal */
-/* Principal is not canonicalized, and no wildcarding is done */
-int
-acl_exact_match(char *acl,
-               char *principal)
-{
-    int idx;
-
-    return((idx = acl_load(acl)) >= 0
-          && check_hash(acl_cache[idx].acl, principal));
-}
-
-/* Returns nonzero if it can be determined that acl contains principal */
-/* Recognizes wildcards in acl. */
-int
-acl_check(char *acl,
-         char *principal)
-{
-    char buf[MAX_PRINCIPAL_SIZE];
-    char canon[MAX_PRINCIPAL_SIZE];
-    char *instance, *realm;
-    int p, i, r;
-
-    /* Parse into principal, instance, and realm. */
-    acl_canonicalize_principal(principal, canon);
-    instance = (char *) strchr(canon, INST_SEP);
-    *instance++ = 0;
-    realm = (char *) strchr(instance, REALM_SEP);
-    *realm++ = 0;
-
-    for (p = 0; p <= 1; p++) {
-       for (i = 0; i <= 1; i++) {
-           for (r = 0; r <= 1; r++) {
-               sprintf(buf, "%s%c%s%c%s", (p) ? canon : "*", INST_SEP,
-                       (i) ? instance : "*", REALM_SEP, (r) ? realm : "*");
-               if (acl_exact_match(acl, buf))
-                   return 1;
-           }
-       }
-    }
-       
-    return(0);
-}
diff --git a/zephyr/server/bdump.c b/zephyr/server/bdump.c
deleted file mode 100644 (file)
index f3a27ab..0000000
+++ /dev/null
@@ -1,1696 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for dumping server state between servers.
- *
- *     Created by:     John T. Kohl
- *
- *     $Source: /afs/dev.mit.edu/source/repository/athena/lib/zephyr/server/bdump.c,v $
- *     $Id: bdump.c 2346 2009-03-24 18:39:31Z kcr $
- *     $Author: kcr $
- *
- *     Copyright (c) 1987,1988,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"
-#include <sys/socket.h>
-#include <com_err.h>
-
-#ifndef lint
-static const char rcsid_bdump_c[] = "$Id: bdump.c 2346 2009-03-24 18:39:31Z kcr $";
-#endif /* lint */
-
-/*
- * External functions are:
- *
- * void bdump_offer(who)
- *     strut sockaddr_in *who;
- *
- * void bdump_send()
- *
- * void bdump_get(notice, auth, who, server)
- *     ZNotice_t *notice;
- *     int auth;
- *     struct sockaddr_in *who;
- *     Server *server;
- *
- * Code_t bdump_send_list_tcp(kind, port, class, inst, opcode,
- *                         sender, recip, lyst, num)
- *     ZNotice_Kind_t kind;
- *     u_short port;
- *     char *class, *inst, *opcode, *sender, *recip;
- *     char *lyst[];
- *     int num;
- */
-
-#if defined(HAVE_KRB5) && 0
-int krb5_init_keyblock(krb5_context context,
-        krb5_enctype type,
-        size_t size,
-        krb5_keyblock **akey)
-{
-krb5_error_code ret;
-size_t len;
-krb5_keyblock *key;
-
-*akey=NULL;
-key=malloc(sizeof(*key));
-memset(key, 0, sizeof(*key));
-ret = krb5_enctype_keysize(context, type, &len);
-if (ret)
-return ret;
-
-if (len != size) {
-krb5_set_error_string(context, "Encryption key %d is %lu bytes "
-"long, %lu was passed in",
-type, (unsigned long)len, (unsigned long)size);
-return KRB5_PROG_ETYPE_NOSUPP;
-}
-
-ret = krb5_data_alloc(&key->keyvalue, len);
-if(ret) {
-krb5_set_error_string(context, "malloc failed: %lu",
-(unsigned long)len);
-return ret;
-}
-key->keytype = type;
-*akey=key;
-return 0;
-}
-#endif
-
-
-static void close_bdump(void* arg);
-static Code_t bdump_send_loop(Server *server);
-static Code_t bdump_recv_loop(Server *server);
-static void bdump_get_v12(ZNotice_t *, int, struct sockaddr_in *,
-                              Server *);
-static Code_t get_packet(void *packet, int len, int *retlen);
-static Code_t extract_sin(ZNotice_t *notice, struct sockaddr_in *target);
-static Code_t send_done(void);
-static Code_t send_list(ZNotice_Kind_t kind, int port, char *class_name,
-                            char *inst, char *opcode, char *sender,
-                            char *recip, char **lyst, int num);
-static Code_t send_normal_tcp(ZNotice_Kind_t kind, int port,
-                                  char *class_name,
-                                  char *inst, char *opcode, char *sender,
-                                  char *recip, char *message, int len);
-static int net_read(FILE *f, char *buf, int len);
-static int net_write(FILE *f, char *buf, int len);
-static int setup_file_pointers(void);
-static void shutdown_file_pointers(void);
-static void cleanup(Server *server);
-
-#ifdef HAVE_KRB5
-static int des_service_decrypt(unsigned char *in, unsigned char *out);
-#endif
-#ifdef HAVE_KRB5
-static long ticket5_time;
-#define TKT5LIFETIME 8*60*60
-#define tkt5_lifetime(val) (val)
-#endif
-
-#ifdef HAVE_KRB4
-static long ticket_time;
-
-#define TKTLIFETIME    120
-#define tkt_lifetime(val) ((long) val * 5L * 60L)
-
-#endif /* HAVE_KRB4 */
-
-#if defined(HAVE_KRB4)
-extern C_Block serv_key;
-extern Sched   serv_ksched;
-#endif
-#if defined(HAVE_KRB5) && !defined(HAVE_KRB4)
-krb5_keyblock  *server_key;
-#endif
-
-static Timer *bdump_timer;
-static int live_socket = -1;
-static FILE *input, *output;
-static struct sockaddr_in bdump_sin;
-#ifdef HAVE_KRB5
-static krb5_auth_context bdump_ac;
-#endif
-
-int bdumping;
-int bdump_concurrent;
-extern char *bdump_version;
-extern int bdump_auth_proto;
-
-/*
- * Functions for performing a brain dump between servers.
- */
-
-/*
- * offer the brain dump to another server
- */
-
-void
-bdump_offer(struct sockaddr_in *who)
-{
-    Code_t retval;
-    char buf[512], *addr, *lyst[2];
-#if !defined(HAVE_KRB4) && !defined(HAVE_KRB5)
-    int bdump_port = IPPORT_RESERVED - 1;
-#endif /* !HAVE_KRB4 */
-
-    zdbug((LOG_DEBUG, "bdump_offer"));
-
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-    /* 
-     * when using kerberos server-server authentication, we can
-     * use any random local address 
-     */
-    bdump_socket = socket(AF_INET, SOCK_STREAM, 0);
-    if (bdump_socket < 0) {
-       syslog(LOG_ERR,"bdump_offer: socket: %m");
-       bdump_socket = -1;
-       return;
-    }
-    memset(&bdump_sin, 0, sizeof(bdump_sin));
-    /* a port field of 0 makes the UNIX
-     * kernel choose an appropriate port/address pair */
-    bdump_sin.sin_port = 0;
-    bdump_sin.sin_addr = my_addr;
-    bdump_sin.sin_family = AF_INET;
-    retval = bind(bdump_socket, (struct sockaddr *) &bdump_sin,
-                 sizeof(bdump_sin));
-    if (retval < 0) {
-       syslog(LOG_ERR, "bdump_offer: bind: %m");
-       close(bdump_socket);
-       bdump_socket = -1;
-       return;
-    }
-    if (!bdump_sin.sin_port) {
-       unsigned int len = sizeof(bdump_sin);
-
-       if (getsockname(bdump_socket,
-                       (struct sockaddr *) &bdump_sin, &len) < 0) {
-           syslog(LOG_ERR, "bdump_offer: getsockname: %m");
-           close(bdump_socket);
-           bdump_socket = -1;
-           return;
-       }
-    }
-#else  /* !HAVE_KRB4 */
-    /*
-     * when not using HAVE_KRB4, we can't use any old port, we use
-     * Internet reserved ports instead (rresvport)
-     */
-    bdump_socket = rresvport(&bdump_port);
-    if (bdump_socket < 0) {
-       syslog(LOG_ERR,"bdump_offer: socket: %m");
-       bdump_socket = -1;
-       return;
-    }
-    memset(&bdump_sin, 0, sizeof(bdump_sin));
-    bdump_sin.sin_port = htons((unsigned short) bdump_port);
-    bdump_sin.sin_addr = my_addr;
-    bdump_sin.sin_family = AF_INET;
-#endif                         /* HAVE_KRB4 */
-
-    listen(bdump_socket, 1);
-    bdump_timer = timer_set_rel(20L, close_bdump, NULL);
-    FD_SET(bdump_socket, &interesting);
-    nfds = max(bdump_socket, srv_socket) + 1;
-
-    addr = inet_ntoa(bdump_sin.sin_addr);
-    sprintf(buf, "%d", ntohs(bdump_sin.sin_port));
-    lyst[0] = addr;
-    lyst[1] = buf;
-    retval = ZSetDestAddr(who);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "bdump_offer: ZSetDestAddr: %s",
-              error_message(retval));
-       return;
-    }
-    /* myname is the hostname */
-    /* the class instance is the version number, here it is */
-    /* bdump_version, which is set in main */
-    send_list(ACKED, srv_addr.sin_port, ZEPHYR_ADMIN_CLASS, bdump_version,
-             ADMIN_BDUMP, myname, "", lyst, 2);
-       
-    zdbug((LOG_DEBUG,"bdump_offer: address is %s/%d\n",
-          inet_ntoa(bdump_sin.sin_addr),
-          ntohs(bdump_sin.sin_port)));
-    return;
-}
-
-/*
- * Accept a connection, and send the brain dump to the other server
- */
-
-void
-bdump_send(void)
-{
-    struct sockaddr_in from;
-    Server *server;
-    Code_t retval;
-    unsigned int fromlen = sizeof(from);
-    int on = 1;
-#ifdef _POSIX_VERSION
-    struct sigaction action;
-#endif
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-    char *data = NULL;
-    int len = 0;
-    int proto = 0;
-#endif
-#ifdef HAVE_KRB4
-    KTEXT_ST ticket;
-    AUTH_DAT kdata;
-    /* may be moved into kstuff.c */
-    char instance [INST_SZ];
-#endif
-#ifdef HAVE_KRB5
-    /* may be moved into kstuff.c */
-    krb5_principal principal;
-    krb5_data k5data;
-    krb5_keytab kt;
-#endif
-#if !defined(HAVE_KRB4) && !defined(HAVE_KRB5)
-    unsigned short fromport;
-#endif /* HAVE_KRB4 */
-    zdbug((LOG_DEBUG, "bdump_send"));
-
-    /* accept the connection, and send the brain dump */
-    live_socket = accept(bdump_socket, (struct sockaddr *) &from, &fromlen);
-    if (live_socket < 0) {
-       syslog(LOG_ERR,"bdump_send: accept: %m");
-       return;
-    }
-    if (setsockopt(live_socket, SOL_SOCKET, SO_KEEPALIVE, (char *) &on,
-                  sizeof(on)) < 0)
-       syslog(LOG_WARNING, "bdump_send: setsockopt (SO_KEEPALIVE): %m");
-#if !defined(HAVE_KRB4) && !defined(HAVE_KRB5)
-    fromport = ntohs(from.sin_port);
-#endif
-#ifdef _POSIX_VERSION
-    sigemptyset(&action.sa_mask);
-    action.sa_flags = 0;
-    action.sa_handler = SIG_IGN;
-    sigaction(SIGPIPE, &action, NULL);
-
-#else
-    signal(SIGPIPE, SIG_IGN);  /* so we can detect failures */
-#endif
-    from.sin_port = srv_addr.sin_port; /* we don't care what port
-                                       * it came from, and we need to
-                                       * fake out server_which_server() */
-    server = server_which_server(&from);
-    if (!server) {
-       syslog(LOG_ERR, "bdump_send: unknown server?");
-       server = limbo_server;
-    }
-
-    zdbug((LOG_DEBUG, "bdump_send: connection from %s/%d",
-          inet_ntoa(from.sin_addr), ntohs(from.sin_port)));
-
-    bdumping = 1;
-    server->dumping = 1;
-
-    if (bdump_socket >= 0) {
-       /* shut down the listening socket and the timer. */
-       FD_CLR(bdump_socket, &interesting);
-       close(bdump_socket);
-       nfds = srv_socket + 1;
-       bdump_socket = -1;
-       timer_reset(bdump_timer);
-    }
-
-    /* Now begin the brain dump. */
-#if defined(HAVE_KRB5) || defined(HAVE_KRB4)
-    retval = ReadKerberosData(live_socket, &len, &data, &proto);
-
-    if (retval != 0) {
-       syslog(LOG_ERR, "bdump_send: ReadKerberosData: %s",
-              error_message(retval));
-       cleanup(server);
-       return;
-    }
-
-    syslog(LOG_INFO, "bdump_send: got %d bytes of authenticator for protocol %d", len, proto);
-
-    if (get_tgt()) {
-       syslog(LOG_ERR, "bdump_send: get_tgt failed");
-       cleanup(server);
-       return;
-    }
-    switch(proto) {
-#ifdef HAVE_KRB5
-    case 5:
-       /* "server" side */
-       retval = krb5_build_principal(Z_krb5_ctx, &principal, 
-                                     strlen(ZGetRealm()),
-                                     ZGetRealm(),
-                                     SERVER_KRB5_SERVICE, SERVER_INSTANCE,
-                                     0); 
-       if (retval) {
-           syslog(LOG_ERR, "bdump_send: krb5_build_principal: %s", error_message(retval));
-           cleanup(server);
-           return;
-       }
-       
-
-       retval = krb5_auth_con_init(Z_krb5_ctx, &bdump_ac);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_send: krb5_auth_con_init: %s", error_message(retval));
-           cleanup(server);
-           return;
-       }
-
-       retval = krb5_auth_con_setflags(Z_krb5_ctx, bdump_ac, KRB5_AUTH_CONTEXT_DO_SEQUENCE);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_send: krb5_auth_con_setflags: %s", error_message(retval));
-           cleanup(server);
-           return;
-       }
-
-       retval = krb5_auth_con_genaddrs(Z_krb5_ctx, bdump_ac, live_socket,
-                                       KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR|KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_send: krb5_auth_con_genaddrs: %s", error_message(retval));
-           cleanup(server);
-           return;
-       }
-
-       /* Get the "client" krb_ap_req */
-
-       memset((char *)&k5data, 0, sizeof(krb5_data));
-       k5data.length = len;
-       k5data.data = data;
-
-       /* resolve keytab */
-       retval = krb5_kt_resolve(Z_krb5_ctx, keytab_file, &kt);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_send: cannot resolve keytab: %s", 
-                  error_message(retval));
-           krb5_kt_close(Z_krb5_ctx, kt);
-           cleanup(server);
-           return;
-       }
-
-       retval = krb5_rd_req(Z_krb5_ctx, &bdump_ac, &k5data, principal, kt, NULL, NULL);
-       krb5_free_principal(Z_krb5_ctx, principal);
-       krb5_kt_close(Z_krb5_ctx, kt);
-       free(k5data.data);
-       memset((char *)&k5data, 0, sizeof(krb5_data));
-       if (retval) {
-            syslog(LOG_ERR, "bdump_send: mutual authentication failed: %s",
-                   error_message(retval));
-            cleanup(server);
-            return;
-       }
-
-       /* Now send back our auth packet */
-
-       retval = krb5_mk_rep(Z_krb5_ctx, bdump_ac, &k5data);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_send: krb5_mk_rep: %s", error_message(retval));
-           cleanup(server);
-           return;
-       }
-       retval = SendKrb5Data(live_socket, &k5data);
-       if (retval) {
-            syslog(LOG_ERR, "bdump_send: cannot send authenticator: %s",
-                   error_message(retval));
-            krb5_free_data_contents(Z_krb5_ctx, &k5data);
-            cleanup(server);
-            return;
-       }    
-       krb5_free_data_contents(Z_krb5_ctx, &k5data);
-       break;
-#endif  /* HAVE_KRB5 */  
-#ifdef HAVE_KRB4
-    case 4:
-       /* here to krb_rd_req from GetKerberosData candidate for refactoring
-          back into kstuff.c */
-       (void) strcpy(instance, "*");           /* let Kerberos fill it in */
-
-       ticket.length = len;
-       memcpy(&ticket.dat, data, MIN(len, sizeof(ticket.dat)));
-       retval = krb_rd_req(&ticket, SERVER_SERVICE, instance,
-                           from.sin_addr.s_addr, &kdata, srvtab_file);
-       /*
-       retval = GetKerberosData(live_socket, from.sin_addr, &kdata,
-                                SERVER_SERVICE, srvtab_file);
-       */
-       if (retval != KSUCCESS) {
-           syslog(LOG_ERR, "bdump_send: getkdata: %s",
-                  error_message(retval));
-           cleanup(server);
-           return;
-       }
-       if (strcmp(kdata.pname, SERVER_SERVICE) ||
-           strcmp(kdata.pinst, SERVER_INSTANCE) ||
-           strcmp(kdata.prealm, ZGetRealm())) {
-           syslog(LOG_ERR, "bdump_send: peer not zephyr: %s.%s@%s",
-                  kdata.pname, kdata.pinst, kdata.prealm);
-           cleanup(server);
-           return;
-       }
-       /* authenticate back */
-       retval = SendKerberosData(live_socket, &ticket, SERVER_SERVICE,
-                                 SERVER_INSTANCE);
-       if (retval != 0) {
-           syslog(LOG_ERR,"bdump_send: SendKerberosData: %s",
-                  error_message (retval));
-           cleanup(server);
-           return;
-       }
-       break;
-#endif /* HAVE_KRB4 */
-    }
-#else /* HAVE_KRB4 || HAVE_KRB5 */
-    if (fromport > IPPORT_RESERVED || fromport < IPPORT_RESERVED / 2) {
-       syslog(LOG_ERR, "bdump_send: bad port from peer: %d", fromport);
-       cleanup(server);
-       return;
-    }
-#endif /* HAVE_KRB4 || HAVE_KRB5 */
-    retval = setup_file_pointers();
-    if (retval != 0) {
-       syslog (LOG_WARNING, "bdump_send: can't set up file pointers: %s",
-               error_message(retval));
-       cleanup(server);
-       return;
-    }
-    retval = bdump_send_loop(server);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "bdump_send: bdump_send_loop failed: %s",
-              error_message(retval));
-       cleanup(server);
-       return;
-    }
-    retval = bdump_recv_loop(server);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "bdump_send: bdump_recv_loop failed: %s",
-              error_message(retval));
-       cleanup(server);
-       return;
-    }
-
-    zdbug((LOG_DEBUG, "bdump_send: finished"));
-
-    if (server != limbo_server) {
-       /* set this guy to be up, and schedule a hello */
-       server->state = SERV_UP;
-       timer_reset(server->timer);
-       server->timer = timer_set_rel(0L, server_timo, server);
-    }
-
-    shutdown_file_pointers();
-
-#ifdef _POSIX_VERSION
-    action.sa_handler = SIG_DFL;
-    sigaction(SIGPIPE, &action, NULL);
-#else
-    signal(SIGPIPE, SIG_DFL);
-#endif
-    bdumping = 0;
-    server->dumping = 0;
-    /* Now that we are finished dumping, send all the queued packets */
-    server_send_queue(server);
-    return;
-}
-
-/*ARGSUSED*/
-static void
-bdump_get_v12 (ZNotice_t *notice,
-              int auth,
-              struct sockaddr_in *who,
-              Server *server)
-{
-    struct sockaddr_in from;
-    Code_t retval;
-    int on = 1;
-#ifdef _POSIX_VERSION
-    struct sigaction action;
-#endif
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-#ifdef HAVE_KRB5
-    krb5_creds creds;
-    krb5_creds *credsp;
-    krb5_principal principal;
-    krb5_data data;
-    krb5_ap_rep_enc_part *rep;
-#endif
-#ifdef HAVE_KRB4
-    KTEXT_ST ticket;
-    AUTH_DAT kdata;
-#endif
-#else  /* !HAVE_KRB4 && !HAVE_KRB5 */
-    int reserved_port = IPPORT_RESERVED - 1;
-#endif /* !HAVE_KRB4 && !HAVE_KRB5 */
-    
-    bdumping = 1;
-    server->dumping = 1;
-#ifdef _POSIX_VERSION
-    action.sa_flags = 0;
-    sigemptyset(&action.sa_mask);
-    action.sa_handler = SIG_IGN;
-    sigaction(SIGPIPE, &action, NULL);
-#else
-    signal(SIGPIPE, SIG_IGN);  /* so we can detect problems */
-#endif /* _POSIX_VRESION */
-    if (bdump_socket >= 0) {
-       /* We cannot go get a brain dump when someone may
-          potentially be connecting to us (if that other
-          server is the server to whom we are connecting,
-          we will deadlock. so we shut down the listening
-          socket and the timer. */
-       FD_CLR(bdump_socket, &interesting);
-       close(bdump_socket);
-       nfds = srv_socket+1;
-       bdump_socket = -1;
-       timer_reset(bdump_timer);
-    }
-
-    retval = extract_sin(notice, &from);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_ERR, "bdump_get: sin: %s", error_message(retval));
-#ifdef _POSIX_VERSION
-       action.sa_handler = SIG_DFL;
-       sigaction(SIGPIPE, &action, NULL);
-#else
-       signal(SIGPIPE, SIG_DFL);
-#endif
-       bdumping = 0;
-       server->dumping = 0;
-       return;
-    }
-#if !defined(HAVE_KRB4) && !defined(HAVE_KRB5)
-    if (ntohs(from.sin_port) > IPPORT_RESERVED ||
-       ntohs(from.sin_port) < IPPORT_RESERVED / 2) {
-       syslog(LOG_ERR, "bdump_get: port not reserved: %d",
-              ntohs(from.sin_port));
-       cleanup(server);
-       return;
-    }
-    live_socket = rresvport(&reserved_port);
-#else  /* !HAVE_KRB4 && !HAVE_KRB5 */
-    live_socket = socket(AF_INET, SOCK_STREAM, 0);
-#endif /* !HAVE_KRB4 && !HAVE_KRB5 */
-    if (live_socket < 0) {
-       syslog(LOG_ERR, "bdump_get: socket: %m");
-       cleanup(server);
-       return;
-    }
-    if (connect(live_socket, (struct sockaddr *) &from, sizeof(from))) {
-       syslog(LOG_ERR, "bdump_get: connect: %m");
-       cleanup(server);
-       return;
-    }
-    if (setsockopt(live_socket, SOL_SOCKET, SO_KEEPALIVE, (char *)&on,
-                  sizeof(on)) < 0)
-       syslog(LOG_WARNING, "bdump_get: setsockopt (SO_KEEPALIVE): %m");
-
-    zdbug((LOG_DEBUG, "bdump_get: connected"));
-    /* Now begin the brain dump. */
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-    if (get_tgt()) {
-       syslog(LOG_ERR, "bdump_get: get_tgt failed"); 
-       cleanup(server);
-       return;
-    }
-    switch(bdump_auth_proto) {
-#ifdef HAVE_KRB5
-    case 5: /* "client" side */
-       memset((char *)&creds, 0, sizeof(creds));
-
-       retval = krb5_build_principal(Z_krb5_ctx, &principal, 
-                                     strlen(ZGetRealm()),
-                                     ZGetRealm(),
-                                     SERVER_KRB5_SERVICE, SERVER_INSTANCE,
-                                     0); 
-       if (retval) {
-           syslog(LOG_ERR, "bdump_get: krb5_build_principal: %s", error_message(retval));
-           cleanup(server);
-           return;
-       }
-
-       retval = krb5_copy_principal(Z_krb5_ctx, principal, &creds.server);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_get: krb5_copy_principal (server): %s", error_message(retval));
-           krb5_free_principal(Z_krb5_ctx, principal);
-           cleanup(server);
-           return;
-       }
-       
-       retval = krb5_copy_principal(Z_krb5_ctx, principal, &creds.client);
-       krb5_free_principal(Z_krb5_ctx, principal);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_get: krb5_copy_principal (client): %s", error_message(retval));
-           krb5_free_cred_contents(Z_krb5_ctx, &creds);
-           cleanup(server);
-           return;
-       }
-
-       retval = krb5_get_credentials(Z_krb5_ctx, 0, Z_krb5_ccache,
-                                     &creds, &credsp);
-       krb5_free_cred_contents(Z_krb5_ctx, &creds);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_get: krb5_get_credentials: %s", error_message(retval));
-           cleanup(server);
-           return;
-       }
-
-       retval = krb5_auth_con_init(Z_krb5_ctx, &bdump_ac);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_get: krb5_auth_con_init: %s", error_message(retval));
-           krb5_free_creds(Z_krb5_ctx, credsp);
-           cleanup(server);
-           return;
-       }
-
-       retval = krb5_auth_con_setflags(Z_krb5_ctx, bdump_ac, KRB5_AUTH_CONTEXT_DO_SEQUENCE);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_get: krb5_auth_con_setflags: %s", error_message(retval));
-           krb5_free_creds(Z_krb5_ctx, credsp);
-           cleanup(server);
-           return;
-       }
-
-       retval = krb5_auth_con_genaddrs(Z_krb5_ctx, bdump_ac, live_socket,
-               KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR|KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_get: krb5_auth_con_genaddrs: %s", error_message(retval));
-           krb5_free_creds(Z_krb5_ctx, credsp);
-           cleanup(server);
-           return;
-       }
-
-       memset((char *)&data, 0, sizeof(krb5_data));
-       retval = krb5_mk_req_extended(Z_krb5_ctx, &bdump_ac, AP_OPTS_MUTUAL_REQUIRED|AP_OPTS_USE_SUBKEY,
-                                NULL, credsp, &data);
-       if (retval) {
-           syslog(LOG_ERR, "bdump_get: krb5_mk_req_ext: %s", error_message(retval));
-           krb5_free_creds(Z_krb5_ctx, credsp);
-           cleanup(server);
-           return;
-       }
-        retval = SendKrb5Data(live_socket, &data);
-        krb5_free_creds(Z_krb5_ctx, credsp);
-        if (retval) {
-             syslog(LOG_ERR, "bdump_get: cannot send authenticator: %s",
-                    error_message(retval));
-             krb5_free_data_contents(Z_krb5_ctx, &data);
-             cleanup(server);
-             return;
-        }    
-        krb5_free_data_contents(Z_krb5_ctx, &data);
-       memset((char *)&data, 0, sizeof(krb5_data));
-        retval = GetKrb5Data(live_socket, &data);
-        if (retval) {
-             syslog(LOG_ERR, "bdump_get: cannot get auth response: %s",
-                    error_message(retval));
-             cleanup(server);
-             return;
-        }    
-        retval = krb5_rd_rep(Z_krb5_ctx, bdump_ac, &data, &rep);
-        free(data.data);
-        memset((char *)&data, 0, sizeof(krb5_data));
-        if (retval) {
-             syslog(LOG_ERR, "bdump_get: mutual authentication failed: %s",
-                    error_message(retval));
-             cleanup(server);
-             return;
-        }    
-       break;
-#endif
-#ifdef HAVE_KRB4
-    case 4:
-       /* send an authenticator */
-       retval = SendKerberosData(live_socket, &ticket, SERVER_SERVICE,
-                                 SERVER_INSTANCE);
-       if (retval != 0) {
-           syslog(LOG_ERR,"bdump_get: %s", error_message(retval));
-           cleanup(server);
-           return;
-       }
-       zdbug((LOG_DEBUG, "bdump_get: SendKerberosData ok"));
-       
-       /* get his authenticator */
-       retval = GetKerberosData(live_socket, from.sin_addr, &kdata,
-                                SERVER_SERVICE, srvtab_file);
-       if (retval != KSUCCESS) {
-           syslog(LOG_ERR, "bdump_get getkdata: %s",error_message(retval));
-           cleanup(server);
-           return;
-       }
-
-       if (strcmp(kdata.pname, SERVER_SERVICE) ||
-           strcmp(kdata.pinst, SERVER_INSTANCE) ||
-           strcmp(kdata.prealm, ZGetRealm())) {
-           syslog(LOG_ERR, "bdump_get: peer not zephyr in lrealm: %s.%s@%s",
-                  kdata.pname, kdata.pinst,kdata.prealm);
-           cleanup(server);
-           return;
-       }
-       break;
-#endif /* HAVE_KRB4 */
-    }
-#endif /* defined(HAVE_KRB4) || defined(HAVE_KRB5) */   
-    retval = setup_file_pointers();
-    if (retval != 0) {
-       syslog(LOG_WARNING, "bdump_get: can't set up file pointers: %s",
-              error_message (retval));
-       cleanup(server);
-       return;
-    }
-    retval = bdump_recv_loop(server);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "bdump_get: bdump_recv_loop failed: %s",
-              error_message(retval));
-       cleanup(server);
-       return;
-    }
-    zdbug((LOG_DEBUG,"bdump_get: gbdl ok"));
-    retval = bdump_send_loop(server);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "bdump_send_loop failed: %s",
-              error_message(retval));
-       cleanup(server);
-       return;
-    }
-
-    zdbug((LOG_DEBUG, "bdump_get: gbd finished"));
-
-    /* set this guy to be up, and schedule a hello */
-    server->state = SERV_UP;
-    timer_reset(server->timer);
-    server->timer = timer_set_rel(0L, server_timo, server);
-
-
-    zdbug((LOG_DEBUG,"cleanup gbd"));
-
-    shutdown_file_pointers();
-#ifdef _POSIX_VERSION
-    action.sa_handler = SIG_DFL;
-    sigaction(SIGPIPE, &action, NULL);
-#else
-    signal(SIGPIPE, SIG_DFL);
-#endif
-    bdumping = 0;
-    server->dumping = 0;
-    /* Now that we are finished dumping, send all the queued packets */
-    server_send_queue(server);
-
-    return;
-}
-
-void
-bdump_get(ZNotice_t *notice,
-         int auth,
-         struct sockaddr_in *who,
-         Server *server)
-{
-    void (*proc)(ZNotice_t *, int, struct sockaddr_in *, Server *);
-
-    proc = NULL;
-
-    if (zdebug) {
-       syslog(LOG_DEBUG, "bdump_get: bdump v%s avail %s",
-              notice->z_class_inst, inet_ntoa(who->sin_addr));
-    }
-
-    if (strcmp (notice->z_class_inst, "1.2") == 0)
-       proc = bdump_get_v12;
-
-    if (proc) {
-       (*proc)(notice, auth, who, server);
-    } else {
-       syslog(LOG_WARNING,
-              "bdump_get: Incompatible bdump version '%s' from %s",
-              notice->z_class_inst,
-              inet_ntoa(who->sin_addr));
-    }
-}
-
-/*
- * Send a list off as the specified notice
- */
-
-Code_t
-bdump_send_list_tcp(ZNotice_Kind_t kind,
-                   struct sockaddr_in *addr,
-                   char *class_name,
-                   char *inst,
-                   char *opcode,
-                   char *sender,
-                   char *recip,
-                   char **lyst,
-                   int num)
-{
-    ZNotice_t notice;
-    char *pack, addrbuf[100];
-    int packlen, count;
-    Code_t retval;
-    u_short length;
-
-    memset (&notice, 0, sizeof(notice));
-    notice.z_kind = kind;
-    notice.z_port = addr->sin_port;
-    notice.z_class = class_name;
-    notice.z_class_inst = inst;
-    notice.z_opcode = opcode;
-    notice.z_sender = sender;
-    notice.z_recipient = recip;
-    notice.z_default_format = "";
-    notice.z_num_other_fields = 0;
-    if (addr)
-       notice.z_sender_sockaddr.ip4 = *addr; /*XXX*/
-    retval = ZFormatNoticeList(&notice, lyst, num, &pack, &packlen, ZNOAUTH);
-    if (retval != ZERR_NONE)
-       return retval;
-
-#ifdef HAVE_KRB5
-    if (bdump_ac) {
-        krb5_data indata, outmsg;
-        indata.length=packlen;
-        indata.data=pack;
-        memset(&outmsg, 0, sizeof(krb5_data));
-        retval = krb5_mk_priv(Z_krb5_ctx, bdump_ac, &indata, &outmsg, NULL);
-        if (retval != ZERR_NONE)
-           return retval;
-        if (outmsg.length > Z_MAXPKTLEN) {
-           syslog(LOG_ERR, "bsl: encrypted packet is too large");
-            return ZERR_PKTLEN;
-        }
-        packlen = outmsg.length;
-        free(pack);
-        pack=malloc(packlen);
-        if (!pack)
-           return ENOMEM;
-        memcpy(pack, outmsg.data, packlen);
-        krb5_free_data_contents(Z_krb5_ctx, &outmsg);
-    }
-#endif
-
-    length = htons((u_short) packlen);
-    count = net_write(output, (char *) &length, sizeof(length));
-    if (count != sizeof(length)) {
-       if (count < 0) {
-           free(pack);
-           return(errno);
-       } else {
-           syslog(LOG_WARNING, "slt (length) xmit: %d vs %d",
-                  sizeof(length), count);
-           free(pack);
-           return(ZSRV_PKSHORT);
-       }
-    }
-    count = net_write(output, pack, packlen);
-    if (count != packlen) {
-       if (count < 0) {
-           free(pack);
-           return(errno);
-       } else {
-           syslog(LOG_WARNING, "slt (packet) xmit: %d vs %d",
-                  packlen, count);
-           free(pack);
-           return(ZSRV_PKSHORT);
-       }
-    }
-    free(pack);
-    return(ZERR_NONE);
-}
-
-static void
-shutdown_file_pointers(void)
-{
-    if (input) {
-       fclose(input);
-       input = 0;
-    }
-    if (output) {
-       fclose(output);
-       output = 0;
-    }
-    if (live_socket >= 0) {
-       close(live_socket);
-       live_socket = -1;
-#ifdef HAVE_KRB5
-       if (bdump_ac)
-               krb5_auth_con_free(Z_krb5_ctx, bdump_ac);
-       bdump_ac = NULL;
-#endif
-    }
-}
-
-static void
-cleanup(Server *server)
-{
-#ifdef _POSIX_VERSION
-    struct sigaction action;
-#endif
-
-    zdbug((LOG_DEBUG, "bdump cleanup"));
-
-    if (server != limbo_server) {
-       server->state = SERV_DEAD;
-       timer_reset(server->timer);
-       server->timer = timer_set_rel(0L, server_timo, server);
-    }
-    shutdown_file_pointers ();
-#ifdef _POSIX_VERSION
-    action.sa_flags = 0;
-    sigemptyset(&action.sa_mask);
-    action.sa_handler = SIG_DFL;
-    sigaction(SIGPIPE,&action, NULL);
-#else
-    signal(SIGPIPE, SIG_DFL);
-#endif /* _POSIX_VERSION */
-    bdumping = 0;
-    server->dumping = 0;
-}
-
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-
-int got_des = 0;
-
-#ifndef HAVE_KRB4
-unsigned int enctypes[] = {ENCTYPE_DES_CBC_CRC,
-                          ENCTYPE_DES_CBC_MD4,
-                          ENCTYPE_DES_CBC_MD5,
-#ifdef ENCTYPE_DES_CBC_RAW
-                          ENCTYPE_DES_CBC_RAW,
-#endif
-                          0};
-#endif
-
-
-int
-get_tgt(void)
-{
-    int retval = 0;
-#ifndef HAVE_KRB4
-    int i;
-    krb5_keytab_entry kt_ent;
-#endif
-#ifdef HAVE_KRB4
-    /* MIT Kerberos 4 get_svc_in_tkt() requires instance to be writable and
-     * at least INST_SZ bytes long. */
-    static char buf[INST_SZ + 1] = SERVER_INSTANCE;
-
-    /* have they expired ? */
-    if (ticket_time < NOW - tkt_lifetime(TKTLIFETIME) + (15L * 60L)) {
-       /* +15 for leeway */
-
-       zdbug((LOG_DEBUG,"get new tickets: %d %d %d", ticket_time, NOW,
-              NOW - tkt_lifetime(TKTLIFETIME) + 15L));
-
-       dest_tkt();
-
-       retval = krb_get_svc_in_tkt(SERVER_SERVICE, buf, (char *)ZGetRealm(),
-                                   "krbtgt", (char *)ZGetRealm(),
-                                   TKTLIFETIME, srvtab_file);
-       if (retval != KSUCCESS) {
-           syslog(LOG_ERR,"get_tgt: krb_get_svc_in_tkt: %s",
-                  error_message(retval));
-           ticket_time = 0;
-           return(1);
-       } else {
-           ticket_time = NOW;
-       }
-
-       retval = read_service_key(SERVER_SERVICE, SERVER_INSTANCE,
-                                 (char *)ZGetRealm(), 0 /*kvno*/,
-                                 srvtab_file, (char *)serv_key);
-       if (retval != KSUCCESS) {
-           syslog(LOG_ERR, "get_tgt: read_service_key: %s",
-                  error_message(retval));
-           return 1;
-       }
-       des_key_sched(serv_key, serv_ksched.s);
-       got_des = 1;
-    }
-#endif
-#ifdef HAVE_KRB5       
-    /* XXX */
-    if (ticket5_time < NOW - tkt5_lifetime(TKT5LIFETIME) + (15L * 60L)) {
-       krb5_keytab kt;
-       krb5_get_init_creds_opt opt;
-       krb5_creds cred;
-       krb5_principal principal;
-
-       memset(&cred, 0, sizeof(cred));
-
-       retval = krb5_build_principal(Z_krb5_ctx, &principal, 
-                                     strlen(ZGetRealm()),
-                                     ZGetRealm(),
-                                     SERVER_KRB5_SERVICE, SERVER_INSTANCE,
-                                     0); 
-       if (retval) {
-         krb5_free_principal(Z_krb5_ctx, principal);
-         return(1);
-       }
-
-       krb5_get_init_creds_opt_init (&opt);
-       krb5_get_init_creds_opt_set_tkt_life (&opt, TKT5LIFETIME);
-
-       retval = krb5_kt_resolve(Z_krb5_ctx, keytab_file, &kt);
-       if (retval) return(1);
-       
-       retval = krb5_get_init_creds_keytab (Z_krb5_ctx,
-                                            &cred,
-                                            principal,
-                                            kt,
-                                            0,
-                                            NULL,
-                                            &opt);
-#ifndef HAVE_KRB4
-       if (retval) {
-           krb5_free_principal(Z_krb5_ctx, principal);
-           krb5_kt_close(Z_krb5_ctx, kt);
-           return(1);
-       }
-
-       for (i = 0; enctypes[i]; i++) {
-           retval = krb5_kt_get_entry(Z_krb5_ctx, kt, principal,
-                                      0, enctypes[i], &kt_ent);
-           if (!retval)
-               break;
-       }
-       if (!retval) {
-#ifdef HAVE_KRB5_CRYPTO_INIT
-           retval = krb5_copy_keyblock(Z_krb5_ctx, &kt_ent.keyblock,
-                                       &server_key);
-#else
-           retval = krb5_copy_keyblock(Z_krb5_ctx, &kt_ent.key, &server_key);
-#endif
-           if (retval) {
-               krb5_free_principal(Z_krb5_ctx, principal);
-               krb5_kt_close(Z_krb5_ctx, kt);
-               return(1);
-           }
-       
-           got_des = 1;
-       }
-#endif
-       krb5_free_principal(Z_krb5_ctx, principal);
-       krb5_kt_close(Z_krb5_ctx, kt);
-#ifndef HAVE_KRB4
-       if (retval) return(1);
-#endif
-
-       retval = krb5_cc_initialize (Z_krb5_ctx, Z_krb5_ccache, cred.client);
-       if (retval) return(1);
-    
-       retval = krb5_cc_store_cred (Z_krb5_ctx, Z_krb5_ccache, &cred);
-       if (retval) return(1);
-
-       ticket5_time = NOW;
-
-       krb5_free_cred_contents (Z_krb5_ctx, &cred);
-    }
-#endif
-    return(0);
-}
-#endif /* HAVE_KRB4 */
-
-/*
- * The braindump offer wasn't taken, so we retract it.
- */
-/*ARGSUSED*/
-static void
-close_bdump(void *arg)
-{
-    if (bdump_socket >= 0) {
-       FD_CLR(bdump_socket, &interesting);
-       close(bdump_socket);
-       nfds = srv_socket + 1;
-       bdump_socket = -1;
-
-       zdbug((LOG_DEBUG, "bdump not used"));
-    } else {
-       zdbug((LOG_DEBUG, "bdump not open"));
-    }
-    return;
-}
-/*
- * Start receiving instruction notices from the brain dump socket
- */
-static Code_t
-bdump_recv_loop(Server *server)
-{
-    ZNotice_t notice;
-    ZPacket_t packet;
-    int len;
-    Code_t retval;
-    Client *client = NULL;
-    struct sockaddr_in who;
-#ifdef HAVE_KRB5
-    unsigned char buf[512];
-    int blen;
-#endif
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)    
-    char *cp;
-#ifndef HAVE_KRB4
-    unsigned char cblock[8];
-#else
-    C_Block cblock;
-#endif
-#endif
-    ZRealm *realm = NULL;
-    zdbug((LOG_DEBUG, "bdump recv loop"));
-       
-    /* do the inverse of bdump_send_loop, registering stuff on the fly */
-    while (1) {
-       if (packets_waiting()) {
-           /* A non-braindump packet is waiting; handle it. */
-           bdumping = 0;
-           bdump_concurrent = 1;
-           handle_packet();
-           bdump_concurrent = 0;
-           bdumping = 1;
-       }
-       len = sizeof(packet);
-       retval = get_packet(packet, len, &len);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_ERR, "brl get pkt: %s", error_message(retval));
-           return retval;
-       }
-
-#if HAVE_KRB5
-       if (bdump_ac) {
-           krb5_data in, out;
-           in.length = len;
-           in.data = packet;
-           memset(&out, 0, sizeof(krb5_data));
-           retval = krb5_rd_priv(Z_krb5_ctx, bdump_ac, &in, &out, NULL);
-           if (retval != ZERR_NONE) {
-               syslog(LOG_ERR, "brl krb5 rd priv: %s", error_message(retval));
-               return retval;
-           }
-           memcpy(packet, out.data, out.length);
-           len = out.length;
-           krb5_free_data_contents(Z_krb5_ctx, &out);
-       }
-#endif
-
-       retval = ZParseNotice(packet, len, &notice);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_ERR, "brl notice parse: %s", error_message(retval));
-           return retval;
-       }
-#if defined (DEBUG)
-       if (zdebug) {
-           syslog(LOG_DEBUG, "bdump:%s '%s' '%s' '%s' '%s' '%s'",
-                   ZNoticeKinds[(int) notice.z_kind], notice.z_class,
-                   notice.z_class_inst, notice.z_opcode, notice.z_sender,
-                   notice.z_recipient);
-       }
-#endif /* DEBUG */
-       who.sin_family = AF_INET; /*XXX*/
-       who.sin_addr.s_addr = notice.z_sender_sockaddr.ip4.sin_addr.s_addr;
-       who.sin_port = notice.z_port;
-
-       if (strcmp(notice.z_opcode, ADMIN_DONE) == 0) {
-           /* end of brain dump */
-           return ZERR_NONE;
-       } else if (strcmp(notice.z_opcode, ADMIN_NEWREALM) == 0) {
-           /* get a realm from the message */
-           realm = realm_get_realm_by_name(notice.z_message);
-           if (!realm) {
-               syslog(LOG_ERR, "brl newrlm failed: no realm %s", 
-                      notice.z_message);
-           }
-       } else if (strcmp(notice.z_class, LOGIN_CLASS) == 0) {
-           /* 1 = tell it we are authentic */
-           retval = ulogin_dispatch(&notice, 1, &who, server);
-           if (retval != ZERR_NONE) {
-               syslog(LOG_ERR, "brl ul_disp failed: %s",
-                      error_message(retval));
-               return retval;
-           }
-       } else if (strcmp(notice.z_opcode, ADMIN_NEWCLT) == 0) {
-           /* a new client */
-           notice.z_port = htons((u_short) atoi(notice.z_message));
-           retval = client_register(&notice, &who.sin_addr, &client, 0);
-           if (retval != ZERR_NONE) {
-               syslog(LOG_ERR,"brl failed: %s", error_message(retval));
-               return retval;
-           }
-#ifdef HAVE_KRB5
-           client->session_keyblock = NULL;
-           if (*notice.z_class_inst) {
-               /* check out this session key I found */
-               cp = notice.z_message + strlen(notice.z_message) + 1;
-               if (*cp == '0' && got_des) {
-                   /* ****ing netascii; this is an encrypted DES keyblock
-                      XXX this code should be conditionalized for server
-                      transitions   */
-                   retval = Z_krb5_init_keyblock(Z_krb5_ctx, ENCTYPE_DES_CBC_CRC,
-                                                 sizeof(cblock),
-                                                 &client->session_keyblock);
-                   if (retval) {
-                       syslog(LOG_ERR, "brl failed to allocate DES keyblock: %s",
-                              error_message(retval));
-                       return retval;
-                   }
-                   retval = ZReadAscii(cp, strlen(cp), cblock, sizeof(cblock));
-                   if (retval != ZERR_NONE) {
-                       syslog(LOG_ERR,"brl bad cblk read: %s (%s)",
-                              error_message(retval), cp);
-                   } else {
-                       retval = des_service_decrypt(cblock, Z_keydata(client->session_keyblock));
-                       if (retval) {
-                           syslog(LOG_ERR, "brl failed to decyrpt DES session key: %s",
-                                  error_message(retval));
-                           return retval;
-                       }
-                   }
-               } else if (*cp == 'Z') {
-                   /* Zcode! Long live the new flesh! */
-                   retval = ZReadZcode((unsigned char *)cp, buf, sizeof(buf), &blen);
-                   if (retval != ZERR_NONE) {
-                       syslog(LOG_ERR,"brl bad cblk read: %s (%s)",
-                              error_message(retval), cp);
-                   } else {
-                       retval = Z_krb5_init_keyblock(Z_krb5_ctx,
-                                                   ntohl(*(krb5_enctype *)&buf[0]),
-                                                   ntohl(*(u_int32_t *)&buf[4]),
-                                                   &client->session_keyblock);
-                       if (retval) {
-                           syslog(LOG_ERR, "brl failed to allocate keyblock: %s",
-                                  error_message(retval));
-                           return retval;
-                       }
-                       memcpy(Z_keydata(client->session_keyblock), &buf[8],
-                              Z_keylen(client->session_keyblock));
-                   }
-               }
-           }
-#else
-#ifdef HAVE_KRB4
-           memset(client->session_key, 0, sizeof(C_Block));
-           if (*notice.z_class_inst) {
-               /* a C_Block is there */
-               cp = notice.z_message + strlen(notice.z_message) + 1;
-               retval = ZReadAscii(cp, strlen(cp), cblock, sizeof(C_Block));
-               if (retval != ZERR_NONE) {
-                   syslog(LOG_ERR,"brl bad cblk read: %s (%s)",
-                          error_message(retval), cp);
-               } else {
-                   des_ecb_encrypt((des_cblock *)cblock,
-                                   (des_cblock *)client->session_key,
-                                   serv_ksched.s, DES_DECRYPT);
-               }
-           }
-#endif /* HAVE_KRB4 */
-#endif
-       } else if (strcmp(notice.z_opcode, CLIENT_SUBSCRIBE) == 0) { 
-           /* a subscription packet */
-           if (!client) {
-               syslog(LOG_ERR, "brl no client");
-               return ZSRV_NOCLT;
-           }
-           retval = subscr_subscribe(client, &notice, server);
-           if (retval != ZERR_NONE) {
-               syslog(LOG_WARNING, "brl subscr failed: %s",
-                      error_message(retval));
-               return retval;
-           }
-       } else if (strcmp(notice.z_opcode, REALM_SUBSCRIBE) == 0) {
-           /* add a subscription for a realm */
-           if (realm) {
-               retval = subscr_realm(realm, &notice);
-               if (retval != ZERR_NONE) {
-                   syslog(LOG_WARNING, "brl subscr failed: %s",
-                          error_message(retval));
-                   return retval;
-               }
-           } /* else */
-                /* Other side tried to send us subs for a realm we didn't
-                   know about, and so we drop them silently */
-       
-       } else {
-           syslog(LOG_ERR, "brl bad opcode %s",notice.z_opcode);
-           return ZSRV_UNKNOWNOPCODE;
-       }
-    }
-}
-
-/*
- * Send all the state to the peer.
- */
-
-static Code_t
-bdump_send_loop(Server *server)
-{
-    Code_t retval;
-
-    zdbug((LOG_DEBUG, "bdump send loop"));
-
-    retval = uloc_send_locations();
-    if (retval != ZERR_NONE)
-       return retval;
-    retval = client_send_clients();
-    if (retval != ZERR_NONE)
-       return retval;
-    retval = realm_send_realms();
-    if (retval != ZERR_NONE)
-       return retval;
-    return send_done();
-}
-
-/*
- * Send a sync indicating end of this host
- */
-
-static Code_t
-send_done(void)
-{
-    Code_t retval;
-    zdbug((LOG_DEBUG, "send_done"));
-
-    retval = send_normal_tcp(SERVACK, bdump_sin.sin_port, ZEPHYR_ADMIN_CLASS,
-                            "", ADMIN_DONE, myname, "", NULL, 0);
-    return retval;
-}
-
-
-/*
- * Send a list off as the specified notice
- */
-
-static Code_t
-send_list(ZNotice_Kind_t kind,
-         int port,
-         char *class_name,
-         char *inst,
-         char *opcode,
-         char *sender,
-         char *recip,
-         char **lyst,
-         int num)
-{
-    ZNotice_t notice;
-    char *pack;
-    int packlen;
-    Code_t retval;
-    memset (&notice, 0, sizeof(notice));
-
-    notice.z_kind = kind;
-    notice.z_port = port;
-    notice.z_class = class_name;
-    notice.z_class_inst = inst;
-    notice.z_opcode = opcode;
-    notice.z_sender = sender;
-    notice.z_recipient = recip;
-    notice.z_default_format = "";
-    notice.z_num_other_fields = 0;
-       
-    retval = ZFormatNoticeList(&notice, lyst, num, &pack, &packlen, ZNOAUTH);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "sl format: %s", error_message(retval));
-       return retval;
-    }
-       
-    retval = ZSendPacket(pack, packlen, 0);
-    if (retval != ZERR_NONE)
-       syslog(LOG_WARNING, "sl xmit: %s", error_message(retval));
-    free(pack);
-    return retval;
-}
-
-/*
- * Send a message off as the specified notice, via TCP
- */
-
-static Code_t
-send_normal_tcp(ZNotice_Kind_t kind,
-               int port,
-               char *class_name,
-               char *inst,
-               char *opcode,
-               char *sender,
-               char *recip,
-               char *message,
-               int len)
-{
-    ZNotice_t notice;
-    char *pack;
-    int packlen, count;
-    Code_t retval;
-    u_short length;
-    memset (&notice, 0, sizeof(notice));
-
-    notice.z_kind = kind;
-    notice.z_port = port;
-    notice.z_class = class_name;
-    notice.z_class_inst = inst;
-    notice.z_opcode = opcode;
-    notice.z_sender = sender;
-    notice.z_recipient = recip;
-    notice.z_default_format = "";
-    notice.z_message = message;
-    notice.z_message_len = len;
-    notice.z_num_other_fields = 0;
-    retval = ZFormatNotice(&notice, &pack, &packlen, ZNOAUTH);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "sn format: %s", error_message(retval));
-       return retval;
-    }
-#ifdef HAVE_KRB5
-    if (bdump_ac) {
-        krb5_data indata, outmsg;
-        indata.length=packlen;
-        indata.data=pack;
-        memset(&outmsg, 0, sizeof(krb5_data));
-        retval = krb5_mk_priv(Z_krb5_ctx, bdump_ac, &indata, &outmsg, NULL);
-        if (retval != ZERR_NONE)
-           return retval;
-        if (outmsg.length > Z_MAXPKTLEN) {
-           syslog(LOG_ERR, "sn: encrypted packet is too large");
-            return ZERR_PKTLEN;
-        }
-        packlen = outmsg.length;
-        free(pack);
-        pack=malloc(packlen);
-        if (!pack)
-           return ENOMEM;
-        memcpy(pack, outmsg.data, packlen);
-        krb5_free_data_contents(Z_krb5_ctx, &outmsg);
-    }
-#endif
-
-    length = htons((u_short) packlen);
-    count = net_write(output, (char *) &length, sizeof(length));
-    if (count != sizeof(length)) {
-       if (count < 0) {
-           syslog(LOG_WARNING, "snt xmit/len: %m");
-           free(pack);
-           return errno;
-       } else {
-           syslog(LOG_WARNING, "snt xmit: %d vs %d",sizeof(length),count);
-           free(pack);
-           return ZSRV_LEN;
-       }
-    }
-    count = net_write(output, pack, packlen);
-    if (count != packlen) {
-       if (count < 0) {
-           syslog(LOG_WARNING, "snt xmit: %m");
-           free(pack);
-           return errno;
-       } else {
-           syslog(LOG_WARNING, "snt xmit: %d vs %d",packlen, count);
-           free(pack);
-           return ZSRV_LEN;
-       }
-    }
-    free(pack);
-    return ZERR_NONE;
-}
-
-/*
- * get a packet from the TCP socket
- * return 0 if successful, error code else
- */
-
-static Code_t
-get_packet(void *packet, int len, int *retlen)
-{
-    u_short length;
-    int result;
-    result = net_read(input, (char *) &length, sizeof(u_short));
-    if (result < sizeof(short)) {
-       if (result < 0) {
-           return errno;
-       } else {
-           syslog(LOG_ERR, "get_pkt len: %d vs %d (%m)", result,
-                  sizeof(short));
-           return ZSRV_LEN;
-       }
-    }
-       
-    length = ntohs(length);
-    if (len < length)
-       return ZSRV_BUFSHORT;
-    result = net_read(input, packet, (int) length);
-    if (result < length) {
-       if (result < 0) {
-           return errno;
-       } else {
-           syslog(LOG_ERR, "get_pkt: %d vs %d (%m)", result, length);
-           return ZSRV_LEN;
-       }
-    }
-    *retlen = length;
-    return ZERR_NONE;
-}
-
-static Code_t
-extract_sin(ZNotice_t *notice, struct sockaddr_in *target)
-{
-    char *cp = notice->z_message;
-    char *buf;
-
-    buf = cp;
-    if (!notice->z_message_len || *buf == '\0') {
-       return ZSRV_PKSHORT;
-    }
-    target->sin_addr.s_addr = inet_addr(cp);
-    cp += (strlen(cp) + 1);    /* past the null */
-    if ((cp >= notice->z_message + notice->z_message_len) || (*cp == '\0')) {
-       return(ZSRV_PKSHORT);
-    }
-    target->sin_port = htons((u_short) atoi(cp));
-    target->sin_family = AF_INET;
-    return ZERR_NONE;
-}
-
-static int
-net_read(FILE *f, char *buf, int len)
-{
-    int cc, len2 = 0;
-    fflush (output);
-    do {
-       errno = 0;
-       cc = fread(buf, 1, len, f);
-       if (cc == 0)
-         {
-           if (feof(f))
-             return len2;
-           if (errno == 0)
-             errno = EIO;
-           return -1;
-         }
-       buf += cc;
-       len2 += cc;
-       len -= cc;
-    } while (len > 0);
-    return len2;
-}
-
-static int
-net_write(FILE *f, char *buf, int len)
-{
-    int cc;
-    int wrlen = len;
-    do {
-       cc = fwrite (buf, 1, wrlen, f);
-       if (cc == 0)
-           return -1;
-       buf += cc;
-       wrlen -= cc;
-    } while (wrlen > 0);
-    return len;
-}
-
-static int
-setup_file_pointers (void)
-{
-    int fd;
-
-    input = fdopen (live_socket, "r");
-    if (!input)
-       return errno;
-
-    fd = dup (live_socket);
-    if (fd < 0)
-       return errno;
-    output = fdopen (fd, "w");
-    if (!output)
-       return errno;
-
-    return 0;
-}
-
-#ifdef HAVE_KRB5
-static int des_service_decrypt(unsigned char *in, unsigned char *out) {
-#ifndef HAVE_KRB4
-    krb5_data dout;
-    krb5_enc_data din;
-
-#ifdef HAS_KRB5_C_DECRYPT
-    dout.length = 8;
-    dout.data = out;
-
-    din.ciphertext.length = 8;
-    din.ciphertext.data = in;
-    din.enctype = Z_enctype(server_key);
-
-#ifdef HAVE_KRB5_CRYPTO_INIT
-    return krb5_c_decrypt(Z_krb5_ctx, *server_key, 0, 0, &din, &dout);
-#else
-    return krb5_c_decrypt(Z_krb5_ctx, server_key, 0, 0, &din, &dout);
-#endif
-#elif defined(HAVE_KRB5_CRYPTO_INIT)
-    int ret;
-    krb5_crypto crypto;
-
-    dout.length = 8;
-    dout.data = out;
-
-    ret = krb5_crypto_init(Z_krb5_ctx, server_key, Z_enctype(server_key), &crypto);
-    if (ret)
-       return ret;
-
-    ret = krb5_decrypt_ivec(Z_krb5_ctx, crypto, 0, in, 8, &dout, NULL);
-
-    krb5_crypto_destroy(Z_krb5_ctx, crypto);
-
-    return ret;
-#endif
-#else
-    des_ecb_encrypt((C_Block *)in, (C_Block *)out, serv_ksched.s, DES_DECRYPT);
-#endif
-    return 0; /* sigh */
-}
-#endif
diff --git a/zephyr/server/class.c b/zephyr/server/class.c
deleted file mode 100644 (file)
index c71f599..0000000
+++ /dev/null
@@ -1,394 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for the Zephyr server class manager subsystem.
- *
- *     Created by:     John T. Kohl
- *
- *     $Source: /afs/dev.mit.edu/source/repository/athena/lib/zephyr/server/class.c,v $
- *     $Author: kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"                   /* includes zephyr/zephyr.h */
-#include <assert.h>
-
-#if !defined (lint) && !defined (SABER)
-static const char rcsid_class_c[] =
-"$Id: class.c 2150 2008-01-21 19:50:52Z kcr $";
-#endif
-
-/*
- * Class manager subsystem.
- *
- *
- * External functions are:
- *
- * Code_t triplet_register(client, subs, realm)
- *
- * Code_t triplet_deregister(client, subs, realm)
- *
- * Client *triplet_lookup(subs)
- *     Client *client;
- *     Destlist *subs;
- *
- * Acl *class_get_acl(class_name)
- *     String *class_name;
- *
- * Code_t class_restrict(class_name, acl)
- *     char *class_name;
- *     Acl *acl;
- *
- * Code_t class_setup_restricted(class_name, acl)
- *     char *class_name;
- *     Acl *acl;
- *
- * and several Destination methods.
- */
-
-/*
- * The data structure used for the class manager is an array of hash buckets
- * each containing a pointer to a doubly linked circular list (in the style
- * of insque/remque).  Each element of this list contains a class.instance
- * name (which hashes into the bucket associated with this list) and a
- * doubly linked list of clients which are interested in this class.
- * The data pointed to by these clients is owned by other modules.  Care
- * must be taken by the caller not to a free()'d client
- * structure.
- *
- * If any hash bucket is empty, the pointer is null.
- *
- * The first element in the hash bucket is a special header unused for
- * storing classes, and is used for finding the end of the list.
- *
- * If any list of interested clients is empty, the class name is garbage
- * collected, unless the class has been registered as restricted.
- */
-
-/* Private variables */ 
-#define        EMPTY_CLASS     2000
-
-#define ALLOC_OFFSET   8       /* Allocate 32 bytes less than a power of 2. */
-#define ALLOC_INIT     8       /* Initial number of subscriptions. */
-
-#define        HASHSIZE        1023
-#define HASHVAL(c, i, r) (((c)->hash_val ^ (i)->hash_val ^ (r)->hash_val) \
-                         % HASHSIZE)
-#define DEST_HASHVAL(dest) HASHVAL((dest).classname, (dest).inst, (dest).recip)
-
-static Triplet *triplet_bucket[HASHSIZE]; /* the hash table of pointers */
-
-static Code_t remove_client __P((Triplet *triplet, Client *client,
-                                ZRealm *realm));
-static Code_t insert_client __P((Triplet *triplet, Client *client,
-                                ZRealm *realm));
-static Triplet *triplet_alloc __P((String *classname, String *inst,
-                                  String *recipient));
-static void free_triplet __P((Triplet *));
-
-/* public routines */
-
-/*
- * Determine if two destination triplets are equal.  Note the backup
- * case-insensitive recipient check in the third term.  Recipients are
- * not downcased at subscription time (in order to preserve case for,
- * say, "zctl ret"), but traditional zephyr server behavior has not
- * been case-sensitive in the recipient string.  In most cases, a
- * failed match will fail on the classname or instance, and a successful
- * match will succeed on the (d1->recip == d2->recip) check, so this
- * shouldn't affect performance.
- */
-
-int
-ZDest_eq(Destination *d1,
-        Destination *d2)
-{
-    return((d1->classname == d2->classname) &&
-          (d1->inst == d2->inst) &&
-          (d1->recip == d2->recip ||
-           strcasecmp(d1->recip->string, d2->recip->string) == 0));
-}
-
-
-/* the client as interested in a triplet */
-
-Code_t
-triplet_register(Client *client,
-                Destination *dest,
-                ZRealm *realm)
-{
-    Triplet *triplet;
-    unsigned long hashval;
-
-    hashval = DEST_HASHVAL(*dest);
-    for (triplet = triplet_bucket[hashval]; triplet; triplet = triplet->next) {
-       if (ZDest_eq(&triplet->dest, dest))
-           return insert_client(triplet, client, realm);
-    }
-
-    /* Triplet not present in hash table, insert it. */
-    triplet = triplet_alloc(dest->classname, dest->inst, dest->recip);
-    Triplet_insert(&triplet_bucket[hashval], triplet);
-    return insert_client(triplet, client, realm);
-}
-
-/* dissociate client from the class, garbage collecting if appropriate */
-
-Code_t
-triplet_deregister(Client *client,
-                  Destination *dest,
-                  ZRealm *realm)
-{
-    Triplet *triplet;
-    int retval;
-    unsigned long hashval;
-
-    hashval = DEST_HASHVAL(*dest);
-    for (triplet = triplet_bucket[hashval]; triplet; triplet = triplet->next) {
-       if (ZDest_eq(&triplet->dest, dest)) {
-           retval = remove_client(triplet, client, realm);
-           if (retval != ZERR_NONE)
-               return retval;
-           if (*triplet->clients == NULL && !triplet->acl) {
-               Triplet_delete(triplet);
-               free_triplet(triplet);
-               return ZSRV_EMPTYCLASS;
-           }
-           return ZERR_NONE;
-       }
-    }
-    return(ZSRV_BADASSOC);
-}
-       
-/* return a linked list of what clients are interested in this triplet */
-
-Client **
-triplet_lookup(Destination *dest)
-{
-    Triplet *triplet;
-    unsigned long hashval;
-
-    hashval = DEST_HASHVAL(*dest);
-    for (triplet = triplet_bucket[hashval]; triplet; triplet = triplet->next) {
-       if (ZDest_eq(&triplet->dest, dest))
-           return triplet->clients;
-    }
-    return NULL;
-}
-
-/*
- * return the acl structure associated with class, or NULL if there is
- * no such acl struct
- */
-
-Acl *
-class_get_acl(String *class_name)
-{
-    Triplet *triplet;
-    unsigned long hashval;
-
-    hashval = HASHVAL(class_name, empty, empty);
-    for (triplet = triplet_bucket[hashval]; triplet; triplet = triplet->next) {
-       if (triplet->dest.classname == class_name &&
-           triplet->dest.inst == empty && triplet->dest.recip == empty)
-           return triplet->acl;
-    }
-
-    /* No acl found, not restricted. */
-    return NULL;
-}
-
-/*
- * restrict class by associating it with the acl structure acl.
- * return ZERR_NONE if no error, or ZSRV_NOCLASS if there is no such
- * class, or ZSRV_CLASSRESTRICTED if it is already restricted.
- */
-
-Code_t
-class_restrict(char *class_name,
-              Acl *acl)
-{
-    Triplet *triplet;
-    String *d;
-    unsigned long hashval;
-
-    d = make_string(class_name,1);
-    hashval = HASHVAL(d, empty, empty);
-    for (triplet = triplet_bucket[hashval]; triplet; triplet = triplet->next) {
-       if (triplet->dest.classname == d && triplet->dest.inst == empty &&
-           triplet->dest.recip == empty) {
-           if (triplet->acl)
-               return ZSRV_CLASSRESTRICTED;
-           triplet->acl = acl;
-           free_string(d);
-           return ZERR_NONE;
-       }
-    }
-
-    free_string(d);
-    return ZSRV_NOCLASS;
-}
-
-/*
- * restrict class by registering it and  associating it with the acl
- * structure acl.  return ZERR_NONE if no error, or ZSRV_CLASSXISTS
- * if the class is already registered, or ENOMEM in case of malloc failure.
- */
-
-Code_t
-class_setup_restricted(char *class_name,
-                      Acl *acl)
-{
-    Triplet *triplet;
-    String *d;
-    unsigned long hashval;
-
-    d = make_string(class_name,1);
-    hashval = HASHVAL(d, empty, empty);
-    for (triplet = triplet_bucket[hashval]; triplet; triplet = triplet->next) {
-       if (triplet->dest.classname == d && triplet->dest.inst == empty &&
-           triplet->dest.recip == d) {
-           free_string(d);
-           return ZSRV_CLASSXISTS;
-       }
-    }
-
-    /* Triplet not present in hash table, insert it. */
-    triplet = triplet_alloc(d, empty, empty);
-    free_string(d);
-    if (!triplet)
-       return ENOMEM;
-    triplet->acl = acl;
-    Triplet_insert(&triplet_bucket[hashval], triplet);
-    return ZERR_NONE;
-}
-
-/* private routines */
-
-/* allocate space for a class structure */
-
-static Triplet *
-triplet_alloc(String *classname,
-             String *inst,
-             String *recipient)
-{
-    Triplet *triplet;
-
-    triplet = (Triplet *) malloc(sizeof(Triplet));
-    if (!triplet)
-       return NULL;
-
-    triplet->dest.classname = dup_string(classname);
-    triplet->dest.inst = dup_string(inst);
-    triplet->dest.recip = dup_string(recipient);
-    triplet->clients = NULL;
-    triplet->acl = NULL;
-
-    return triplet;
-}
-
-/* insert a client into the list associated with the class *ptr */
-
-static Code_t
-insert_client(Triplet *triplet,
-             Client *client,
-             ZRealm *realm)
-{
-    Client **clientp, **newclients;
-    int new_size;
-
-    if (triplet->clients) {
-       /* Avoid duplication. */
-       for (clientp = triplet->clients; *clientp; clientp++) {
-           if (*clientp == client || (realm && (*clientp)->realm == realm))
-               return ZSRV_CLASSXISTS;
-       }
-
-       if (clientp + 1 - triplet->clients >= triplet->clients_size) {
-           new_size = triplet->clients_size * 2 + ALLOC_OFFSET;
-           newclients = (Client **) realloc(triplet->clients,
-                                            new_size * sizeof(Client *));
-           if (newclients == NULL)
-               return ENOMEM;
-           clientp = newclients + (clientp - triplet->clients);
-           triplet->clients = newclients;
-           triplet->clients_size = new_size;
-       }
-    } else {
-       /* Allocate an initial list of client pointers. */
-       triplet->clients = (Client **) malloc(ALLOC_INIT * sizeof(Client *));
-       if (triplet->clients == NULL)
-           return ENOMEM;
-       triplet->clients_size = ALLOC_INIT;
-       clientp = triplet->clients;
-    }
-
-    *clientp = client;
-    clientp[1] = NULL;
-    return ZERR_NONE;
-}
-
-/* 
- * remove the client from the list associated with class *ptr, garbage
- * collecting if appropriate
- */
-
-static Code_t
-remove_client(Triplet *triplet,
-             Client *client,
-             ZRealm *realm)
-{
-    Client **clientp;
-
-    for (clientp = triplet->clients; *clientp; clientp++) {
-       if (*clientp == client || (realm && (*clientp)->realm == realm)) {
-           for (; *clientp; clientp++)
-               *clientp = clientp[1];
-           return ZERR_NONE;
-       }
-    }
-
-    return ZSRV_BADASSOC;
-}
-
-static void
-free_triplet(Triplet *triplet)
-{
-    if (triplet->clients)
-       free(triplet->clients);
-    free_string(triplet->dest.classname);
-    free_string(triplet->dest.inst);
-    free_string(triplet->dest.recip);
-    free(triplet);
-}
-
-void
-triplet_dump_subs(FILE *fp)
-{
-    int i;
-    Triplet *triplet;
-    Client **clientp;
-
-    for (i = 0; i < HASHSIZE; i++) {
-       for (triplet = triplet_bucket[i]; triplet; triplet = triplet->next) {
-           fputs("Triplet '", fp);
-           dump_quote(triplet->dest.classname->string, fp);
-           fputs("' '", fp);
-           dump_quote(triplet->dest.inst->string, fp);
-           fputs("' '", fp);
-           dump_quote(triplet->dest.recip->string, fp);
-           fputs("':\n", fp);
-           if (triplet->clients) {
-               for (clientp = triplet->clients; *clientp; clientp++) {
-                   fprintf(fp, "\t%s %d (%s)\n",
-                           inet_ntoa((*clientp)->addr.sin_addr),
-                           ntohs((*clientp)->addr.sin_port),
-                           (*clientp)->principal->string);
-               }
-           }
-       }
-    }
-}
-
diff --git a/zephyr/server/client.c b/zephyr/server/client.c
deleted file mode 100644 (file)
index 108a28f..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for the Client Manager subsystem of the Zephyr server.
- *
- *     Created by:     John T. Kohl
- *
- *     $Id: client.c 2151 2008-01-21 19:51:21Z kcr $
- *
- *     Copyright (c) 1987,1988,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"
-#include <sys/socket.h>
-
-#if !defined (lint) && !defined (SABER)
-static const char rcsid_client_c[] =
-"$Id: client.c 2151 2008-01-21 19:51:21Z kcr $";
-#endif
-
-/*
- * External functions:
- *
- * Code_t client_register(notice, who, client, server, wantdefaults)
- *     ZNotice_t *notice;
- *     struct sockaddr_in *who;
- *     Client **client; (RETURN)
- *     Server *server;
- *     int wantdefaults;
- *
- * Code_t client_deregister(client, host, flush)
- *     Client *client;
- *     Host *host;
- *     int flush;
- *
- * Client *client_find(who, unsigned int port)
- *     struct in_addr *host;
- *     unsigned int port;
- *
- * void client_dump_clients(fp, clist)
- *     FILE *fp;
- *     Client *clist;
- */
-
-/*
- * a client: allocate space, find or insert the address in the
- *     server's list of hosts, initialize and insert the client into
- *     the host's list of clients.
- *
- * This routine assumes that the client has not been registered yet.
- * The caller should check by calling client_find.
- */
-
-#define HASHSIZE 1024
-static Client *client_bucket[HASHSIZE];
-
-#define INET_HASH(host, port) ((htonl((host)->s_addr) + \
-                               htons((unsigned short) (port))) % HASHSIZE)
-
-Code_t
-client_register(ZNotice_t *notice,
-               struct in_addr *host,
-               Client **client_p,
-               int wantdefaults)
-{
-    Client *client;
-
-    /* chain the client's host onto this server's host list */
-
-    zdbug((LOG_DEBUG, "client_register: adding %s at %s/%d",
-          notice->z_sender, inet_ntoa(*host), ntohs(notice->z_port)));
-
-    if (!notice->z_port)
-       return ZSRV_BADSUBPORT;
-
-    *client_p = client = client_find(host, notice->z_port);
-    if (!client) {
-       *client_p = client = (Client *) malloc(sizeof(Client));
-       if (!client)
-           return ENOMEM;
-       memset(&client->addr, 0, sizeof(struct sockaddr_in));
-#ifdef HAVE_KRB5
-        client->session_keyblock = NULL;
-#else
-#ifdef HAVE_KRB4
-       memset(&client->session_key, 0, sizeof(client->session_key));
-#endif
-#endif
-       client->last_send = 0;
-       client->last_ack = NOW;
-       client->addr.sin_family = AF_INET;
-       client->addr.sin_addr.s_addr = host->s_addr;
-       client->addr.sin_port = notice->z_port;
-       client->subs = NULL;
-       client->realm = NULL;
-       client->principal = make_string(notice->z_sender, 0);
-       Client_insert(&client_bucket[INET_HASH(&client->addr.sin_addr,
-                                              notice->z_port)], client);
-    }
-
-    /* Add default subscriptions only if this is not resulting from a brain
-     * dump, AND this request wants defaults. */
-    if (!bdumping && wantdefaults)
-       return subscr_def_subs(client);
-    else
-       return ZERR_NONE;
-}
-
-/*
- * Deregister the client, freeing resources.  
- * Remove any packets in the nack queue, release subscriptions, release
- * locations, and dequeue him from the host.
- */
-
-void
-client_deregister(Client *client,
-                 int flush)
-{
-    Client_delete(client);
-    nack_release(client);
-    subscr_cancel_client(client);
-    free_string(client->principal);
-#ifdef HAVE_KRB5
-    if (client->session_keyblock)
-         krb5_free_keyblock(Z_krb5_ctx, client->session_keyblock);
-#endif
-    if (flush)
-       uloc_flush_client(&client->addr);
-    free(client);
-}
-
-void
-client_flush_host(struct in_addr *host)
-{
-    int i;
-    Client *client, *next;
-
-    for (i = 0; i < HASHSIZE; i++) {
-       for (client = client_bucket[i]; client; client = next) {
-           next = client->next;
-           if (client->addr.sin_addr.s_addr == host->s_addr)
-               client_deregister(client, 1);
-       }
-    }
-    uloc_hflush(host);
-}
-
-Code_t
-client_send_clients(void)
-{
-    int i;
-    Client *client;
-    Code_t retval;
-
-    for (i = 0; i < HASHSIZE; i++) {
-       /* Allow packets to be processed between rows of the hash table. */
-       if (packets_waiting()) {
-           bdumping = 0;
-           bdump_concurrent = 1;
-           handle_packet();
-           bdump_concurrent = 0;
-           bdumping = 1;
-       }
-       for (client = client_bucket[i]; client; client = client->next) {
-           if (client->subs) {
-               retval = subscr_send_subs(client);
-               if (retval != ZERR_NONE)
-                   return retval;
-           }
-       }
-    }
-    return ZERR_NONE;
-}
-
-/*
- * dump info about clients in this clist onto the fp.
- * assumed to be called with SIGFPE blocked
- * (true if called from signal handler)
- */
-
-void
-client_dump_clients(FILE *fp)
-{
-    Client *client;
-    int i;
-
-    for (i = 0; i < HASHSIZE; i++) {
-       for (client = client_bucket[i]; client; client = client->next) {
-           fprintf(fp, "%s/%d (%s):\n", inet_ntoa(client->addr.sin_addr),
-                   ntohs(client->addr.sin_port), client->principal->string);
-           subscr_dump_subs(fp, client->subs);
-       }
-    }
-}
-
-/*
- * find a client by host and port
- */
-
-Client *
-client_find(struct in_addr *host,
-           unsigned int port)
-{
-    Client *client;
-    long hashval;
-
-    hashval = INET_HASH(host, port);
-    for (client = client_bucket[hashval]; client; client = client->next) {
-       if (client->addr.sin_addr.s_addr == host->s_addr
-           && client->addr.sin_port == port)
-           return client;
-    }
-    return NULL;
-}
-
diff --git a/zephyr/server/common.c b/zephyr/server/common.c
deleted file mode 100644 (file)
index 732b3fc..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for general use within the Zephyr server.
- *
- *     Created by:     John T. Kohl
- *
- *     $Id: common.c 2131 2008-01-21 03:11:00Z kcr $
- *
- *     Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"
-
-#ifndef lint
-#ifndef SABER
-static const char rcsid_common_c[] =
-    "$Id: common.c 2131 2008-01-21 03:11:00Z kcr $";
-#endif /* SABER */
-#endif /* lint */
-
-/* common routines for the server */
-
-/* copy a string into a newly allocated area */
-
-char *
-strsave (const char *sp)
-{
-    char *ret;
-
-    ret = strdup(sp);
-    if (!ret) {
-       syslog(LOG_CRIT, "no mem strdup'ing");
-       abort();
-    }
-    return ret;
-}
-
-/* The "& 0x5f" provides case-insensitivity for ASCII. */
-
-unsigned long
-hash(const char *string)
-{
-    unsigned long hval = 0;
-    char cp;
-
-    while (1) {
-       cp = *string++;
-       if (!cp)
-           break;
-       hval += cp & 0x5f;
-
-       cp = *string++;
-       if (!cp)
-           break;
-       hval += (cp & 0x5f) * (3 + (1 << 16));
-
-       cp = *string++;
-       if (!cp)
-           break;
-       hval += (cp & 0x5f) * (1 + (1 << 8));
-
-       cp = *string++;
-       if (!cp)
-           break;
-       hval += (cp & 0x5f) * (1 + (1 << 12));
-
-       cp = *string++;
-       if (!cp)
-           break;
-       hval += (cp & 0x5f) * (1 + (1 << 4));
-
-       hval += ((long) hval) >> 18;
-    }
-
-    hval &= 0x7fffffff;
-    return hval;
-}
-
-/* Output a name, replacing newlines with \n and single quotes with \q. */
-void dump_quote(char *p, FILE *fp)
-{
-    for (; *p; p++) {
-       if (*p == '\'') {
-           putc('\\', fp);
-           putc('q', fp);
-       } else if (*p == '\n') {
-           putc('\\', fp);
-           putc('n', fp);
-       } else {
-           putc(*p, fp);
-       }
-    }
-}
-
diff --git a/zephyr/server/default.subscriptions b/zephyr/server/default.subscriptions
deleted file mode 100644 (file)
index 2ef3863..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-operations,message,*
-message,personal,%me%
-message,urgent,%me%
diff --git a/zephyr/server/dispatch.c b/zephyr/server/dispatch.c
deleted file mode 100644 (file)
index 3c6e276..0000000
+++ /dev/null
@@ -1,1266 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for dispatching a notice.
- *
- *     Created by:     John T. Kohl
- *
- *     $Source: /afs/dev.mit.edu/source/repository/athena/lib/zephyr/server/dispatch.c,v $
- *     $Author: kcr $
- *
- *     Copyright (c) 1987, 1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"
-#include <sys/socket.h>
-#include <com_err.h>
-
-#ifndef lint
-#ifndef SABER
-static const char rcsid_dispatch_c[] =
-"$Id: dispatch.c 2334 2009-03-22 18:39:18Z kcr $";
-#endif
-#endif
-
-#define NACKTAB_HASHSIZE               1023
-#define NACKTAB_HASHVAL(sockaddr, uid) (((sockaddr).sin_addr.s_addr ^ \
-                                         (sockaddr).sin_port ^ \
-                                         (uid).zuid_addr.s_addr ^ \
-                                         (uid).tv.tv_sec ^ \
-                                         (uid).tv.tv_usec) % NACKTAB_HASHSIZE)
-#define HOSTS_SIZE_INIT                        256
-
-#ifdef DEBUG
-const char *ZNoticeKinds[9] = {"UNSAFE", "UNACKED", "ACKED", "HMACK",
-                                   "HMCTL", "SERVACK", "SERVNAK", "CLIENTACK",
-                                   "STAT"};
-#endif
-/*
- *
- * External Routines:
- *
- * void dispatch(notice, auth, who)
- *     ZNotice_t *notice;
- *     int auth;
- *     struct sockaddr_in *who;
- *
- * void clt_ack(notice, who, sent)
- *     ZNotice_t *notice;
- *     struct sockaddr_in *who;
- *     Sent_type sent;
- *
- * void nack_release(client)
- *     Client *client;
- *
- * void sendit(notice, auth, who, external)
- *     ZNotice_t *notice;
- *     int auth;
- *     struct sockaddr_in *who;
- *      int external;
- *
- * void xmit(notice, dest, auth, client)
- *     ZNotice_t *notice;
- *     struct sockaddr_in *dest;
- *     int auth;
- *     Client *client;
- */
-
-
-String *class_control, *class_admin, *class_hm, *class_ulogin, *class_ulocate;
-
-int rexmit_times[] = REXMIT_TIMES;
-
-static void nack_cancel __P((ZNotice_t *, struct sockaddr_in *));
-static void dispatch __P((ZNotice_t *, int, struct sockaddr_in *, int));
-static int send_to_dest __P((ZNotice_t *, int, Destination *dest, int, int));
-static void hostm_deathgram __P((struct sockaddr_in *, Server *));
-static char *hm_recipient __P((void));
-
-Statistic realm_notices = {0, "inter-realm notices"};
-Statistic interserver_notices = {0, "inter-server notices"};
-Statistic hm_packets = {0, "hostmanager packets"};
-Statistic control_notices = {0, "client control notices"};
-Statistic message_notices = {0, "message notices"};
-Statistic login_notices = {0, "login notices"};
-Statistic i_s_ctls = {0, "inter-server control notices"};
-Statistic i_s_logins = {0, "inter-server login notices"};
-Statistic i_s_admins = {0, "inter-server admin notices"};
-Statistic i_s_locates = {0, "inter-server locate notices"};
-Statistic locate_notices = {0, "locate notices"};
-Statistic admin_notices = {0, "admin notices"};
-
-static Unacked *nacktab[NACKTAB_HASHSIZE];
-static struct in_addr *hosts;
-static int hosts_size = 0, num_hosts = 0;
-
-#ifdef DEBUG
-static void
-dump_stats (void *arg)
-{
-    syslog(LOG_INFO, "stats: %s: %d", hm_packets.str, hm_packets.val);
-    syslog(LOG_INFO, "stats: %s: %d", control_notices.str,
-          control_notices.val);
-    syslog(LOG_INFO, "stats: %s: %d", message_notices.str,
-          message_notices.val);
-    syslog(LOG_INFO, "stats: %s: %d", login_notices.str, login_notices.val);
-    syslog(LOG_INFO, "stats: %s: %d", locate_notices.str, locate_notices.val);
-    syslog(LOG_INFO, "stats: %s: %d", admin_notices.str, admin_notices.val);
-    syslog(LOG_INFO, "stats: %s: %d", realm_notices.str, realm_notices.val);
-    syslog(LOG_INFO, "stats: %s: %d", interserver_notices.str,
-          interserver_notices.val);
-    syslog(LOG_INFO, "stats: %s: %d", i_s_ctls.str, i_s_ctls.val);
-    syslog(LOG_INFO, "stats: %s: %d", i_s_logins.str, i_s_logins.val);
-    syslog(LOG_INFO, "stats: %s: %d", i_s_admins.str, i_s_admins.val);
-    syslog(LOG_INFO, "stats: %s: %d", i_s_locates.str, i_s_locates.val);
-
-    /* log stuff once an hour */
-    timer_set_rel ((long) 6*60*60, dump_stats, arg);
-}
-#endif
-
-/*
- * Handle an input packet.
- * Warning: this function may be called from within a brain dump.
- */
-
-void
-handle_packet(void)
-{
-    Code_t status;
-    ZPacket_t input_packet;    /* from the network */
-    ZNotice_t new_notice;      /* parsed from input_packet */
-    int input_len;             /* len of packet */
-    struct sockaddr_in input_sin; /* Zconstructed for authent */
-    struct sockaddr_in whoisit;        /* for holding peer's address */
-    int authentic;             /* authentic flag */
-    Pending *pending;          /* pending packet */
-    int from_server;           /* packet is from another server */
-    ZRealm *realm;             /* foreign realm ptr */
-#ifdef DEBUG
-    static int first_time = 1;
-#endif
-
-#ifdef DEBUG
-    /* Dump statistics five minutes after startup */
-    if (first_time) {
-       first_time = 0;
-       timer_set_rel(5*60, dump_stats, NULL);
-    }
-#endif
-    /* handle traffic */
-
-    if (otherservers[me_server_idx].queue) {
-       /* something here for me; take care of it */
-       zdbug((LOG_DEBUG, "internal queue process"));
-
-       pending = server_dequeue(me_server);
-
-       status = ZParseNotice(pending->packet, pending->len, &new_notice);
-       if (status != ZERR_NONE) {
-           syslog(LOG_ERR, "bad notice parse (%s): %s",
-                  inet_ntoa(pending->who.sin_addr), error_message(status));
-       } else {
-           dispatch(&new_notice, pending->auth, &pending->who, 1);
-       }
-       server_pending_free(pending);
-       return;
-    }
-
-    /* 
-     * nothing in internal queue, go to the external library
-     * queue/socket
-     */
-    status = ZReceivePacket(input_packet, &input_len, &whoisit);
-    if (status != ZERR_NONE) {
-       syslog(LOG_ERR, "bad packet receive: %s from %s",
-              error_message(status), inet_ntoa(whoisit.sin_addr));
-       return;
-    }
-    npackets++;
-    status = ZParseNotice(input_packet, input_len, &new_notice);
-    if (status != ZERR_NONE) {
-       syslog(LOG_ERR, "bad notice parse (%s): %s",
-              inet_ntoa(whoisit.sin_addr), error_message(status));
-       return;
-    }
-    if (server_which_server(&whoisit)) {
-       /* we need to parse twice--once to get
-          the source addr, second to check
-          authentication */
-       memset(&input_sin, 0, sizeof(input_sin));
-       input_sin.sin_addr.s_addr = new_notice.z_sender_addr.s_addr;
-       input_sin.sin_port = new_notice.z_port;
-       input_sin.sin_family = AF_INET;
-        /* Should check to see if packet is from another realm's server, 
-           or a client */
-        /* Clients don't check auth of acks, nor do we make it so they
-           can in general, so this is safe. */
-        if (new_notice.z_kind == SERVACK || new_notice.z_kind == SERVNAK) {
-          authentic = ZAUTH_YES;
-        } else {
-         realm = realm_which_realm(&input_sin);
-          if (realm) {
-            authentic = ZCheckRealmAuthentication(&new_notice,
-                                                      &input_sin,
-                                                      realm->name);
-          } else 
-           authentic = ZCheckAuthentication(&new_notice, &input_sin);
-       }
-       from_server = 1;
-    } else {
-       from_server = 0;
-        /* Clients don't check auth of acks, nor do we make it so they
-           can in general, so this is safe. */
-        if (new_notice.z_kind == SERVACK || new_notice.z_kind == SERVNAK) {
-          authentic = ZAUTH_YES;
-        } else {
-         realm = realm_which_realm(&whoisit);
-          if (realm) {
-            authentic = ZCheckRealmAuthentication(&new_notice,
-                                                  &whoisit,
-                                                  realm->name);
-          } else
-           authentic = ZCheckAuthentication(&new_notice, &whoisit);
-       }
-    }
-
-    message_notices.val++;
-    dispatch(&new_notice, authentic, &whoisit, from_server);
-    return;
-}
-/*
- * Dispatch a notice.
- */
-
-static void
-dispatch(ZNotice_t *notice,
-        int auth,
-        struct sockaddr_in *who,
-        int from_server)
-{
-    Code_t status;
-    String *notice_class;
-    struct sockaddr_in who2;
-    int authflag;
-    ZRealm *realm;
-    char *cp;
-#ifdef DEBUG
-    char dbg_buf[BUFSIZ];
-#endif
-
-    authflag = (auth == ZAUTH_YES);
-
-    if ((int) notice->z_kind < (int) UNSAFE ||
-       (int) notice->z_kind > (int) CLIENTACK) {
-       syslog(LOG_NOTICE, "bad notice kind 0x%x from %s", notice->z_kind,
-              inet_ntoa(who->sin_addr));
-       return;
-    }
-
-    if (notice->z_kind == CLIENTACK) {
-       nack_cancel(notice, who);
-       return;
-    }
-
-    who2 = *who;
-
-    notice_class = make_string(notice->z_class,1);
-
-    if (from_server) {
-       interserver_notices.val++;
-       status = server_dispatch(notice, authflag, who);
-    } else if (class_is_hm(notice_class)) {
-       hm_packets.val++;
-       status = hostm_dispatch(notice, authflag, who, me_server);
-    } else if (realm_which_realm(who) && !(class_is_admin(notice_class))) {
-       realm_notices.val++;
-       status = realm_dispatch(notice, authflag, who, me_server);
-    } else if (class_is_control(notice_class)) {
-       control_notices.val++;
-       status = control_dispatch(notice, authflag, who, me_server);
-    } else if (class_is_ulogin(notice_class)) {
-       login_notices.val++;
-       status = ulogin_dispatch(notice, authflag, who, me_server);
-    } else if (class_is_ulocate(notice_class)) {
-       locate_notices.val++;
-       status = ulocate_dispatch(notice, authflag, who, me_server);
-    } else if (class_is_admin(notice_class)) {
-       admin_notices.val++;
-       status = server_adispatch(notice, authflag, who, me_server);
-    } else {
-       if (!realm_bound_for_realm(ZGetRealm(), notice->z_recipient)) {
-           cp = strchr(notice->z_recipient, '@');
-           if (!cp ||
-               !(realm = realm_get_realm_by_name(cp + 1))) {
-               /* Foreign user, local realm */
-               sendit(notice, authflag, who, 0);
-           } else
-               realm_handoff(notice, authflag, who, realm, 1);
-       } else {
-           if (notice->z_recipient[0] == '@')
-               notice->z_recipient = "";
-           sendit(notice, authflag, who, 1);
-       }
-       free_string(notice_class);
-       return;
-    }
-
-    if (status == ZSRV_REQUEUE)
-       server_self_queue(notice, authflag, who);
-    free_string(notice_class);
-}
-
-/*
- * Send a notice off to those clients who have subscribed to it.
- */
-
-void
-sendit(ZNotice_t *notice,
-       int auth,
-       struct sockaddr_in *who,
-       int external)
-{
-    static int send_counter = 0;
-    char recipbuf[MAX_PRINCIPAL_SIZE], *recipp;
-    int any = 0;
-    Acl *acl;
-    Destination dest;
-    String *class;
-
-    class = make_string(notice->z_class, 1);
-    if (realm_bound_for_realm(ZGetRealm(), notice->z_recipient)) {
-      ZRealm *rlm;
-
-      acl = class_get_acl(class);
-      if (acl != NULL) {
-       /* if controlled and not auth, fail */
-        if (!auth) {
-            syslog(LOG_WARNING, "sendit unauthentic %s from %s",
-                   notice->z_class, notice->z_sender);
-           clt_ack(notice, who, AUTH_FAILED);
-            free_string(class);
-            return;
-        }
-       /* if from foreign realm server, disallow if not realm of sender */
-       rlm = realm_which_realm(who);
-       if (rlm) {
-         if (!realm_sender_in_realm(rlm->name, notice->z_sender)) {
-           syslog(LOG_WARNING, "sendit auth not verifiable %s (%s) from %s",
-                  notice->z_class, rlm->name, notice->z_sender);
-           clt_ack(notice, who, AUTH_FAILED);
-           free_string(class);
-           return;
-         }
-       }
-       /* if not auth to transmit, fail */
-       if (!access_check(notice->z_sender, acl, TRANSMIT)) {
-           syslog(LOG_WARNING, "sendit unauthorized %s from %s",
-                  notice->z_class, notice->z_sender);
-           clt_ack(notice, who, AUTH_FAILED);
-           free_string(class);
-           return;
-       }
-       /* sender != inst and not auth to send to others --> fail */
-       if (strcmp(notice->z_sender, notice->z_class_inst) != 0 &&
-           !access_check(notice->z_sender, acl, INSTUID)) {
-           syslog(LOG_WARNING, "sendit unauth uid %s %s.%s", notice->z_sender,
-                  notice->z_class, notice->z_class_inst);
-           clt_ack(notice, who, AUTH_FAILED);
-           free_string(class);
-           return;
-       }
-      }
-    }
-
-    /* Increment the send counter, used to prevent duplicate sends to
-     * clients.  On the off-chance that we wrap around to 0, skip over
-     * it to prevent missing clients which have never had a packet
-     * sent to them. */
-    send_counter++;
-    if (send_counter == 0)
-       send_counter = 1;
-
-    /* Send to clients subscribed to the triplet itself. */
-    dest.classname = class;
-    dest.inst = make_string(notice->z_class_inst, 1);
-    if (realm_bound_for_realm(ZGetRealm(), notice->z_recipient) && 
-       *notice->z_recipient == '@') 
-      dest.recip = make_string("", 0);
-    else {
-      strncpy(recipbuf, notice->z_recipient, sizeof(recipbuf));
-      recipp = strrchr(recipbuf, '@');
-      if (recipp)
-       /* XXX if realm_expand_realm doesn't find a match
-        * it returns what's passed into it, causing an overlapping
-        * copy, the results of which are undefined.
-        */
-       strncpy(recipp + 1, realm_expand_realm(recipp + 1),
-              sizeof(recipbuf) - (recipp - recipbuf) - 1);
-      dest.recip = make_string(recipbuf, 0);
-    }
-
-    if (send_to_dest(notice, auth, &dest, send_counter, external))
-       any = 1;
-
-    /* Send to clients subscribed to the triplet with the instance
-     * substituted with the wildcard instance. */
-    free_string(dest.inst);
-    dest.inst = wildcard_instance;
-    if (send_to_dest(notice, auth, &dest, send_counter, external))
-       any = 1;
-
-    free_string(class);
-    free_string(dest.recip);
-    if (any)
-       ack(notice, who);
-    else
-       nack(notice, who);
-}
-
-/*
- * Send to each client in the list.  Avoid duplicates by setting
- * last_send on each client to send_counter, a nonce which is updated
- * by sendit() above.
- */
-
-static int
-send_to_dest(ZNotice_t *notice,
-            int auth,
-            Destination *dest,
-            int send_counter,
-            int external)
-{
-    Client **clientp;
-    int any = 0;
-
-    clientp = triplet_lookup(dest);
-    if (!clientp)
-       return 0;
-
-    for (; *clientp; clientp++) {
-       if ((*clientp)->last_send == send_counter)
-           continue;
-       (*clientp)->last_send = send_counter;
-       if ((*clientp)->realm) {
-         if (external) {
-           realm_handoff(notice, auth, &clientp[0]->addr, clientp[0]->realm,
-                         1);
-           any = 1;
-         }
-       } else {
-           xmit(notice, &((*clientp)->addr), auth, *clientp);
-           any = 1;
-       }
-    }
-
-    return any;
-}
-
-/*
- * Release anything destined for the client in the not-yet-acked table.
- */
-
-void
-nack_release(Client *client)
-{
-    int i;
-    Unacked *nacked, *next;
-
-    for (i = 0; i < NACKTAB_HASHSIZE; i++) {
-       for (nacked = nacktab[i]; nacked; nacked = next) {
-           next = nacked->next;
-           if (nacked->client == client) {
-               timer_reset(nacked->timer);
-               Unacked_delete(nacked);
-               free(nacked->packet);
-               free(nacked);
-           }
-       }
-    }
-}
-
-/*
- * Send one packet of a fragmented message to a client.  After transmitting,
- * put it onto the not ack'ed list.
- */
-
-/* the arguments must be the same as the arguments to Z_XmitFragment */
-/*ARGSUSED*/
-Code_t
-xmit_frag(ZNotice_t *notice,
-         char *buf,
-         int len,
-         int waitforack)
-{
-    struct sockaddr_in sin;
-    char *savebuf;
-    Unacked *nacked;
-    Code_t retval;
-    int sendfail = 0;
-
-    retval = ZSendPacket(buf, len, 0);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "xmit_frag send: %s", error_message(retval));
-       if (retval != EAGAIN && retval != ENOBUFS)
-           return retval;
-       sendfail = 1;
-    }
-
-    /* now we've sent it, mark it as not ack'ed */
-    nacked = (Unacked *) malloc(sizeof(Unacked));
-    if (!nacked) {
-       /* no space: just punt */
-       syslog(LOG_WARNING, "xmit_frag nack malloc");
-       return ENOMEM;
-    }
-
-    savebuf = (char *) malloc(len);
-    if (!savebuf) {
-       /* no space: just punt */
-       syslog(LOG_WARNING, "xmit_frag pack malloc");
-       free(nacked);
-       return ENOMEM;
-    }
-
-    memcpy(savebuf, buf, len);
-
-    sin = ZGetDestAddr();
-    nacked->client = NULL;
-    nacked->rexmits = (sendfail) ? -1 : 0;
-    nacked->packet = savebuf;
-    nacked->dest.addr = sin;
-    nacked->packsz = len;
-    nacked->uid = notice->z_uid;
-    nacked->timer = timer_set_rel(rexmit_times[0], rexmit, nacked);
-    Unacked_insert(&nacktab[NACKTAB_HASHVAL(sin, nacked->uid)], nacked);
-    return(ZERR_NONE);
-}
-
-
-/*
- * Send the notice to the client.  After transmitting, put it onto the
- * not ack'ed list.
- */
-
-void
-xmit(ZNotice_t *notice,
-     struct sockaddr_in *dest,
-     int auth,
-     Client *client)
-{
-    char *noticepack;
-    Unacked *nacked;
-    int packlen, sendfail = 0;
-    Code_t retval;
-
-    noticepack = (char *) malloc(sizeof(ZPacket_t));
-    if (!noticepack) {
-       syslog(LOG_ERR, "xmit malloc");
-       return;                 /* DON'T put on nack list */
-    }
-       
-    packlen = sizeof(ZPacket_t);
-
-    if (auth && client) {      /*
-                                  we are distributing authentic and
-                                  we have a pointer to auth info
-                                  */
-#ifdef HAVE_KRB5
-         retval = ZFormatAuthenticNoticeV5(notice, noticepack, packlen,
-                                           &packlen, client->session_keyblock);
-         if (retval != ZERR_NONE) {
-              syslog(LOG_ERR, "xmit auth format: %s", error_message(retval));
-              free(noticepack);
-              return;
-         }
-#else
-#if defined(HAVE_KRB4)
-         retval = ZFormatAuthenticNotice(notice, noticepack, packlen,
-                                           &packlen, client->session_key);
-         if (retval != ZERR_NONE) {
-              syslog(LOG_ERR, "xmit auth format: %s", error_message(retval));
-              free(noticepack);
-              return;
-         }
-#else /* !HAVE_KRB4 */
-       notice->z_auth = 1;
-       retval = ZFormatSmallRawNotice(notice, noticepack, &packlen);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_ERR, "xmit auth/raw format: %s", error_message(retval));
-           free(noticepack);
-           return;
-       }
-#endif /* HAVE_KRB4 */
-#endif /* HAVE_KRB5 */
-    } else {
-       notice->z_auth = 0;
-       notice->z_authent_len = 0;
-       notice->z_ascii_authent = (char *)"";
-       retval = ZFormatSmallRawNotice(notice, noticepack, &packlen);
-        /* This code is needed because a Zephyr can "grow" when a remote 
-         * realm name is inserted into the Zephyr before being resent out
-         * locally. It essentially matches the code in realm.c to do the
-         * same thing with authentic Zephyrs.
-         */
-        if (retval == ZERR_PKTLEN) {
-          ZNotice_t partnotice;
-          char multi[64];
-          char *buffer, *ptr;
-          int buffer_len, hdrlen, offset, fragsize, message_len;
-          int origoffset, origlen;
-
-          free(noticepack);
-
-          retval = ZSetDestAddr(dest);
-          if (retval != ZERR_NONE) {
-            syslog(LOG_WARNING, "xmit set addr: %s", error_message(retval));
-            return;
-          }
-
-          partnotice = *notice;
-          
-          partnotice.z_auth = 0;
-          partnotice.z_authent_len = 0;
-          partnotice.z_ascii_authent = (char *)"";
-
-          origoffset = offset = fragsize = 0;
-          origlen = notice->z_message_len;
-
-          buffer = (char *) malloc(sizeof(ZPacket_t));
-          if (!buffer) {
-            syslog(LOG_ERR, "xmit unauth refrag malloc");
-            return;                 /* DON'T put on nack list */
-          }
-          buffer_len = sizeof(ZPacket_t);
-
-          retval = Z_FormatRawHeader(&partnotice, buffer, buffer_len, 
-                                     &hdrlen, NULL, NULL);
-          if (retval != ZERR_NONE) {
-            syslog(LOG_ERR, "xmit unauth refrag fmt: failed");
-            free(buffer);
-            return;
-          }
-
-          if (notice->z_multinotice && strcmp(notice->z_multinotice, ""))
-            if (sscanf(notice->z_multinotice, "%d/%d", &origoffset, &origlen)
-                != 2) 
-              {
-                syslog(LOG_WARNING, "xmit unauth refrag: parse failed");
-                free(buffer);
-                return;
-              }
-
-              fragsize = Z_MAXPKTLEN-hdrlen-Z_FRAGFUDGE;
-
-          while (offset < notice->z_message_len || !notice->z_message_len) {
-            (void) sprintf(multi, "%d/%d", offset+origoffset, origlen);
-            partnotice.z_multinotice = multi;
-            if (offset > 0) {
-              (void) Z_gettimeofday(&partnotice.z_uid.tv, (struct timezone *)0);
-              partnotice.z_uid.tv.tv_sec = htonl((u_long)
-                                                 partnotice.z_uid.tv.tv_sec);
-              partnotice.z_uid.tv.tv_usec = htonl((u_long)
-                                                  partnotice.z_uid.tv.tv_usec);
-              (void) memcpy((char *)&partnotice.z_uid.zuid_addr, &__My_addr,
-                            sizeof(__My_addr));
-             partnotice.z_sender_sockaddr.ip4.sin_family = AF_INET; /* XXX */
-              (void) memcpy((char *)&partnotice.z_sender_sockaddr.ip4.sin_addr,
-                           &__My_addr, sizeof(__My_addr));
-            }
-            partnotice.z_message = notice->z_message+offset;
-            message_len = min(notice->z_message_len-offset, fragsize);
-            partnotice.z_message_len = message_len;
-
-            retval = Z_FormatRawHeader(&partnotice, buffer, buffer_len, 
-                                       &hdrlen, &ptr, NULL);
-            if (retval != ZERR_NONE) {
-              syslog(LOG_WARNING, "xmit unauth refrag raw: %s",
-                     error_message(retval));
-              free(buffer);
-              return;
-            }
-
-            ptr = buffer+hdrlen;
-
-            (void) memcpy(ptr, partnotice.z_message, partnotice.z_message_len);
-            
-            buffer_len = hdrlen+partnotice.z_message_len;
-
-            xmit_frag(&partnotice, buffer, buffer_len, 0);
-
-            offset += fragsize;
-
-            if (!notice->z_message_len)
-              break;
-          }
-          free(buffer);
-          return;
-        }
-        /* End of refrag code */
-
-       if (retval != ZERR_NONE) {
-           syslog(LOG_ERR, "xmit format: %s", error_message(retval));
-           free(noticepack);
-           return;                     /* DON'T put on nack list */
-       }
-    }
-    retval = ZSetDestAddr(dest);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "xmit set addr: %s", error_message(retval));
-       free(noticepack);
-       return;
-    }
-    retval = ZSendPacket(noticepack, packlen, 0);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "xmit xmit: (%s/%d) %s", inet_ntoa(dest->sin_addr),
-              ntohs(dest->sin_port), error_message(retval));
-       if (retval != EAGAIN && retval != ENOBUFS) {
-           free(noticepack);
-           return;
-       }
-       sendfail = 1;
-    }
-
-    /* now we've sent it, mark it as not ack'ed */
-
-    nacked = (Unacked *) malloc(sizeof(Unacked));
-    if (!nacked) {
-       /* no space: just punt */
-       syslog(LOG_WARNING, "xmit nack malloc");
-       free(noticepack);
-       return;
-    }
-
-    nacked->client = client;
-    nacked->rexmits = (sendfail) ? -1 : 0;
-    nacked->packet = noticepack;
-    nacked->dest.addr = *dest;
-    nacked->packsz = packlen;
-    nacked->uid = notice->z_uid;
-    nacked->timer = timer_set_rel(rexmit_times[0], rexmit, nacked);
-    Unacked_insert(&nacktab[NACKTAB_HASHVAL(*dest, nacked->uid)], nacked);
-}
-
-/*
- * Retransmit the packet specified.  If we have timed out or retransmitted
- * too many times, punt the packet and initiate the host recovery algorithm
- * Else, increment the count and re-send the notice packet.
- */
-
-void
-rexmit(void *arg)
-{
-    Unacked *nacked = (Unacked *) arg;
-    int retval;
-
-    syslog(LOG_DEBUG, "rexmit %s/%d #%d time %d",
-          inet_ntoa(nacked->dest.addr.sin_addr),
-          ntohs(nacked->dest.addr.sin_port), nacked->rexmits + 1, (int)NOW);
-
-    nacked->rexmits++;
-    if (rexmit_times[nacked->rexmits] == -1) {
-       if (!nacked->client
-           || NOW - nacked->client->last_ack >= CLIENT_GIVEUP_MIN) {
-           /* The client (if there was one) has been unresponsive.
-            * Give up sending this packet, and kill the client if
-            * there was one.  (Make sure to remove nacked from the
-            * nack list before calling client_deregister(), which
-            * scans the nack list.)
-            */
-           Unacked_delete(nacked);
-           if (nacked->client) {
-               server_kill_clt(nacked->client);
-               client_deregister(nacked->client, 1);
-           }
-           free(nacked->packet);
-           free(nacked);
-           return;
-       } else {
-           /* The client has sent us an ack recently.  Retry with the maximum
-            * retransmit time. */
-           nacked->rexmits--;
-       }
-    }
-
-    /* retransmit the packet */
-    retval = ZSetDestAddr(&nacked->dest.addr);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "rexmit set addr: %s", error_message(retval));
-    } else {
-       retval = ZSendPacket(nacked->packet, nacked->packsz, 0);
-       if (retval != ZERR_NONE)
-           syslog(LOG_WARNING, "rexmit xmit: %s", error_message(retval));
-       if (retval == EAGAIN || retval == ENOBUFS)
-           nacked->rexmits--;
-    }
-
-    /* reset the timer */
-    nacked->timer = timer_set_rel(rexmit_times[nacked->rexmits], rexmit,
-                                 nacked);
-    return;
-}
-
-/*
- * Send an acknowledgement to the sending client, by sending back the
- * header from the original notice with the z_kind field changed to either
- * SERVACK or SERVNAK, and the contents of the message either SENT or
- * NOT_SENT, depending on the value of the sent argument.
- */
-
-void
-clt_ack(ZNotice_t *notice,
-       struct sockaddr_in *who,
-       Sent_type sent)
-{
-    ZNotice_t acknotice;
-    ZPacket_t ackpack;
-    int packlen;
-    char *sent_name;
-    Code_t retval;
-
-    if (bdumping) {            /* don't ack while dumping */
-       zdbug((LOG_DEBUG,"bdumping, no ack"));
-       return;
-    }
-
-    acknotice = *notice;
-
-    acknotice.z_kind = SERVACK;
-    switch (sent) {
-      case SENT:
-       acknotice.z_message = ZSRVACK_SENT;
-       sent_name = "sent";
-       break;
-      case NOT_FOUND:
-       acknotice.z_message = ZSRVACK_FAIL;
-       acknotice.z_kind = SERVNAK;
-       sent_name = "fail";
-       break;
-      case AUTH_FAILED:
-       acknotice.z_kind = SERVNAK;
-       acknotice.z_message = ZSRVACK_NOTSENT;
-       sent_name = "nak/not_sent";
-       break;
-      case NOT_SENT:
-       acknotice.z_message = ZSRVACK_NOTSENT;
-       sent_name = "not_sent";
-       break;
-      default:
-       abort ();
-    }
-
-    acknotice.z_multinotice = "";
-
-    /* leave room for the trailing null */
-    acknotice.z_message_len = strlen(acknotice.z_message) + 1;
-
-    packlen = sizeof(ackpack);
-
-    retval = ZFormatSmallRawNotice(&acknotice, ackpack, &packlen);
-
-    if (retval == ZERR_HEADERLEN) {
-      /* Since an ack header can be larger than a message header... (crock) */ 
-      acknotice.z_opcode = "";
-      acknotice.z_class = "";
-      acknotice.z_class_inst = "";
-      acknotice.z_opcode = "";
-      acknotice.z_default_format = "";
-
-      retval = ZFormatSmallRawNotice(&acknotice, ackpack, &packlen);
-    }
-
-    if (retval != ZERR_NONE) {
-       syslog(LOG_ERR, "clt_ack format: %s", error_message(retval));
-       return;
-    }
-    retval = ZSetDestAddr(who);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "clt_ack set addr: %s", error_message(retval));
-       return;
-    }
-    retval = ZSendPacket(ackpack, packlen, 0);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "clt_ack xmit: %s", error_message(retval));
-       return;
-    } else {
-       zdbug((LOG_DEBUG, "packet sent"));
-    }
-    return;
-}
-
-/*
- * An ack has arrived.
- * remove the packet matching this notice from the not-yet-acked queue
- */
-
-static void
-nack_cancel(ZNotice_t *notice,
-           struct sockaddr_in *who)
-{
-    Unacked *nacked;
-    int hashval;
-
-    /* search the not-yet-acked table for this packet, and flush it. */
-    hashval = NACKTAB_HASHVAL(*who, notice->z_uid);
-    for (nacked = nacktab[hashval]; nacked; nacked = nacked->next) {
-       if (nacked->dest.addr.sin_addr.s_addr == who->sin_addr.s_addr
-           && nacked->dest.addr.sin_port == who->sin_port
-           && ZCompareUID(&nacked->uid, &notice->z_uid)) {
-           if (nacked->client)
-               nacked->client->last_ack = NOW;
-           timer_reset(nacked->timer);
-           free(nacked->packet);
-           Unacked_delete(nacked);
-           free(nacked);
-           return;
-       }
-    }
-
-    zdbug((LOG_DEBUG,"nack_cancel: nack not found %s:%08X,%08X",
-          inet_ntoa (notice->z_uid.zuid_addr),
-          notice->z_uid.tv.tv_sec, notice->z_uid.tv.tv_usec));
-}
-
-/* for compatibility when sending subscription information to old clients */
-#ifdef OLD_COMPAT
-#define        OLD_ZEPHYR_VERSION      "ZEPH0.0"
-#endif /* OLD_COMPAT */
-
-/* Dispatch an HM_CTL notice. */
-
-Code_t
-hostm_dispatch(ZNotice_t *notice,
-              int auth,
-              struct sockaddr_in *who,
-              Server *server)
-{
-    char *opcode = notice->z_opcode;
-    int i, add = 0, remove = 0;
-
-    if (notice->z_kind == HMACK) {
-       /* Ignore. */
-       ;
-    } else if (notice->z_kind != HMCTL) {
-       clt_ack(notice, who, AUTH_FAILED);
-    } else if (strcmp(opcode, HM_FLUSH) == 0) {
-       client_flush_host(&who->sin_addr);
-       if (server == me_server)
-           server_forward(notice, auth, who);
-    } else if (strcmp(opcode, HM_BOOT) == 0) {
-       client_flush_host(&who->sin_addr);
-       if (server == me_server) {
-           server_forward(notice, auth, who);
-           ack(notice, who);
-           add = 1;
-       }
-    } else if (strcmp(opcode, HM_ATTACH) == 0) {
-       if (server == me_server) {
-           server_forward(notice, auth, who);
-           ack(notice, who);
-           add = 1;
-       } else {
-           remove = 1;
-       }
-    } else if (strcmp(opcode, HM_DETACH) == 0) {
-       remove = 1;
-    } else {
-       syslog(LOG_WARNING, "hm_dispatch: unknown opcode %s", opcode);
-    }
-
-    if (add) {
-       for (i = 0; i < num_hosts; i++) {
-           if (hosts[i].s_addr == who->sin_addr.s_addr)
-               break;
-       }
-       if (i == num_hosts) {
-           if (hosts_size == 0) {
-               hosts = (struct in_addr *) malloc(HOSTS_SIZE_INIT *
-                                                 sizeof(struct in_addr));
-               if (!hosts)
-                   return ENOMEM;
-               hosts_size = HOSTS_SIZE_INIT;
-           } else if (num_hosts == hosts_size) {
-               hosts = (struct in_addr *) realloc(hosts, hosts_size * 2 *
-                                                  sizeof(struct in_addr));
-               if (!hosts)
-                   return ENOMEM;
-               hosts_size *= 2;
-           }
-           hosts[num_hosts++] = who->sin_addr;
-       }
-    } else if (remove) {
-       for (i = 0; i < num_hosts; i++) {
-           if (hosts[i].s_addr == who->sin_addr.s_addr) {
-               memmove(&hosts[i], &hosts[i + 1], num_hosts - (i + 1));
-               num_hosts--;
-               break;
-           }
-       }
-    }
-    return ZERR_NONE;
-}
-
-/*
- * Dispatch a ZEPHYR_CTL notice.
- */
-
-Code_t
-control_dispatch(ZNotice_t *notice,
-                int auth,
-                struct sockaddr_in *who,
-                Server *server)
-{
-    char *opcode = notice->z_opcode;
-    Client *client;
-    Code_t retval;
-    int wantdefs;
-    ZRealm *realm;
-    struct sockaddr_in newwho;
-
-    /*
-     * ZEPHYR_CTL Opcodes expected are:
-     * BOOT (inst HM): host has booted; flush data.
-     * CLIENT_SUBSCRIBE: process with the subscription mananger.
-     * CLIENT_UNSUBSCRIBE: ""
-     * CLIENT_CANCELSUB:   ""
-     */
-
-    zdbug((LOG_DEBUG, "ctl_disp: opc=%s", opcode));
-
-    newwho.sin_addr.s_addr = notice->z_sender_addr.s_addr;
-    newwho.sin_port = notice->z_port;
-    realm = realm_which_realm(&newwho);
-    if (realm)
-       return(realm_control_dispatch(notice, auth, who, server, realm));
-
-    if (strcasecmp(notice->z_class_inst, ZEPHYR_CTL_HM) == 0) {
-       return hostm_dispatch(notice, auth, who, server);
-    } else if (strcmp(opcode, CLIENT_GIMMESUBS) == 0 ||
-              strcmp(opcode, CLIENT_GIMMEDEFS) == 0) {
-       /* this special case is before the auth check so that
-          someone who has no subscriptions does NOT get a SERVNAK
-          but rather an empty list.  Note we must therefore
-          check authentication inside subscr_sendlist */
-#ifdef OLD_COMPAT
-       /* only acknowledge if *not* old version; the old version
-          acknowledges the packet with the reply */
-       if (strcmp(notice->z_version, OLD_ZEPHYR_VERSION) != 0)
-           ack(notice, who);
-#else /* !OLD_COMPAT */
-       ack(notice, who);
-#endif /* OLD_COMPAT */
-       subscr_sendlist(notice, auth, who);
-       return ZERR_NONE;
-    } else if (!auth) {
-       if (server == me_server)
-           clt_ack(notice, who, AUTH_FAILED);
-       return ZERR_NONE;
-    }
-
-    wantdefs = strcmp(opcode, CLIENT_SUBSCRIBE_NODEFS);
-    if (!wantdefs || strcmp(opcode, CLIENT_SUBSCRIBE) == 0) {
-       /* subscription notice */
-       retval = client_register(notice, &who->sin_addr, &client, wantdefs);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_NOTICE, "subscr %s/%s/%d failed: %s",
-                  notice->z_sender, inet_ntoa(who->sin_addr),
-                  ntohs(notice->z_port), error_message(retval));
-           if (server == me_server) {
-               if (retval == ZSRV_BADSUBPORT)
-                   clt_ack(notice, who, AUTH_FAILED);
-               else
-                   nack(notice, who);
-           }
-           return(ZERR_NONE);
-       }
-       if (strcmp(client->principal->string, notice->z_sender) != 0) {
-           /* you may only subscribe for your own clients */
-           if (server == me_server)
-               clt_ack(notice, who, AUTH_FAILED);
-           return ZERR_NONE;
-       }
-#ifdef HAVE_KRB5
-        if (client->session_keyblock) {
-             krb5_free_keyblock_contents(Z_krb5_ctx, client->session_keyblock);
-             retval = krb5_copy_keyblock_contents(Z_krb5_ctx, ZGetSession(),
-                                         client->session_keyblock);
-        } else {
-             retval = krb5_copy_keyblock(Z_krb5_ctx, ZGetSession(), 
-                                &client->session_keyblock);
-        }
-        if (retval) {
-             syslog(LOG_WARNING, "keyblock copy failed in subscr: %s",
-                    error_message(retval));
-             if (server == me_server)
-                  nack(notice, who);
-             return ZERR_NONE;
-        }
-#else
-#ifdef HAVE_KRB4
-       /* in case it's changed */
-       memcpy(client->session_key, ZGetSession(), sizeof(C_Block));
-#endif
-#endif
-       retval = subscr_subscribe(client, notice, server);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_WARNING, "subscr failed: %s", error_message(retval));
-           if (server == me_server)
-               nack(notice, who);
-           return ZERR_NONE;
-       }
-    } else if (strcmp(opcode, CLIENT_UNSUBSCRIBE) == 0) {
-       client = client_find(&who->sin_addr, notice->z_port);
-       if (client != NULL) {
-           if (strcmp(client->principal->string, notice->z_sender) != 0) {
-               /* you may only cancel for your own clients */
-               if (server == me_server)
-                   clt_ack(notice, who, AUTH_FAILED);
-               return ZERR_NONE;
-           }
-           subscr_cancel(who, notice);
-       } else {
-           nack(notice, who);
-           return ZERR_NONE;
-       }
-    } else if (strcmp(opcode, CLIENT_CANCELSUB) == 0) {
-       /* canceling subscriptions implies I can punt info about this client */
-       client = client_find(&who->sin_addr, notice->z_port);
-       if (client == NULL) {
-           if (server == me_server)
-               nack(notice, who);
-           return ZERR_NONE;
-       }
-       if (strcmp(client->principal->string, notice->z_sender) != 0) {
-           /* you may only cancel for your own clients */
-           if (server == me_server)
-               clt_ack(notice, who, AUTH_FAILED);
-           return ZERR_NONE;
-       }
-       /* don't flush locations here, let him do it explicitly */
-       client_deregister(client, 0);
-    } else {
-       syslog(LOG_WARNING, "unknown ctl opcode %s", opcode); 
-       if (server == me_server) {
-           if (strcmp(notice->z_class_inst, ZEPHYR_CTL_REALM) != 0)
-               nack(notice, who);
-       }
-       return ZERR_NONE;
-    }
-
-    if (server == me_server) {
-       ack(notice, who);
-       server_forward(notice, auth, who);
-    }
-    return ZERR_NONE;
-}
-
-void
-hostm_shutdown(void)
-{
-    int i, s, newserver;
-    struct sockaddr_in sin;
-
-    for (i = 0; i < nservers; i++) {
-       if (i != me_server_idx && otherservers[i].state == SERV_UP)
-           break;
-    }
-    newserver = (i < nservers);
-    for (i = 0; i < num_hosts; i++) {
-       sin.sin_addr = hosts[i];
-       sin.sin_port = hm_port;
-       if (newserver) {
-           while (1) {
-               s = (random() % (nservers - 1)) + 1;
-               if (otherservers[s].state == SERV_UP)
-                   break;
-           }
-           hostm_deathgram(&sin, &otherservers[s]);
-       } else {
-           hostm_deathgram(&sin, NULL);
-       }
-    }
-}
-
-void
-realm_shutdown(void)
-{
-    int i, s, newserver;
-
-    for (i = 0; i < nservers; i++) {
-        if (i != me_server_idx && otherservers[i].state == SERV_UP)
-            break;
-    }
-    zdbug((LOG_DEBUG, "rlm_shutdown"));
-
-    newserver = (i < nservers);
-    if (newserver) {
-      while (1) {
-       s = (random() % (nservers - 1)) + 1;
-       if (otherservers[s].state == SERV_UP)
-         break;
-      }
-      realm_deathgram(&otherservers[s]);
-    } else {
-      realm_deathgram(NULL);
-    }
-}
-
-static void
-hostm_deathgram(struct sockaddr_in *sin,
-               Server *server)
-{
-    Code_t retval;
-    int shutlen;
-    ZNotice_t shutnotice;
-    char *shutpack;
-
-    memset (&shutnotice, 0, sizeof(shutnotice));
-
-    shutnotice.z_kind = HMCTL;
-    shutnotice.z_port = sin->sin_port; /* we are sending it */
-    shutnotice.z_class = HM_CTL_CLASS;
-    shutnotice.z_class_inst = HM_CTL_SERVER;
-    shutnotice.z_opcode = SERVER_SHUTDOWN;
-    shutnotice.z_sender = HM_CTL_SERVER;
-    shutnotice.z_recipient = hm_recipient();
-    shutnotice.z_default_format = "";
-    shutnotice.z_num_other_fields = 0;
-    shutnotice.z_message = (server) ? server->addr_str : NULL;
-    shutnotice.z_message_len = (server) ? strlen(server->addr_str) + 1 : 0;
-
-    retval = ZFormatNotice(&shutnotice, &shutpack, &shutlen, ZNOAUTH);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_ERR, "hm_shut format: %s",error_message(retval));
-       return;
-    }
-    retval = ZSetDestAddr(sin);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "hm_shut set addr: %s", error_message(retval));
-       free(shutpack);
-       return;
-    }
-    retval = ZSendPacket(shutpack, shutlen, 0);
-    if (retval != ZERR_NONE)
-       syslog(LOG_WARNING, "hm_shut xmit: %s", error_message(retval));
-    free(shutpack);
-}
-
-static char *
-hm_recipient(void)
-{
-    static char *recipient;
-    char *realm;
-
-    if (recipient)
-       return recipient;
-
-    realm = (char *)ZGetRealm();
-    if (!realm)
-       realm = "???";
-    recipient = (char *) malloc(strlen(realm) + 4);
-    strcpy (recipient, "hm@");
-    strcat (recipient, realm);
-    return recipient;
-}
-
diff --git a/zephyr/server/kstuff.c b/zephyr/server/kstuff.c
deleted file mode 100644 (file)
index 26af580..0000000
+++ /dev/null
@@ -1,973 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for dealing with Kerberos functions in the server.
- *
- *     Created by:     John T Kohl
- *
- *     Copyright (c) 1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-/*
- *     $Source: /afs/dev.mit.edu/source/repository/athena/lib/zephyr/server/kstuff.c,v $
- *     $Header: /afs/dev.mit.edu/source/repository/athena/lib/zephyr/server/kstuff.c,v 1.27 2004/02/29 06:34:04 zacheiss Exp $
- */
-
-#include "zserver.h"
-
-#ifndef lint
-#ifndef SABER
-static const char rcsid_kstuff_c[] = "$Id: kstuff.c 2344 2009-03-24 03:40:55Z kcr $";
-#endif
-#endif
-
-#if defined(HAVE_KRB4) && defined(HAVE_KRB5)
-static ZChecksum_t compute_checksum(ZNotice_t *, C_Block);
-static Code_t ZCheckAuthentication4(ZNotice_t *notice, struct sockaddr_in *from);
-#endif
-#ifdef HAVE_KRB5
-static ZChecksum_t compute_rlm_checksum(ZNotice_t *, unsigned char *);
-#endif
-
-#ifdef HAVE_KRB4
-/*
- * GetKerberosData
- *
- * get ticket from file descriptor and decode it.
- * Return KFAILURE if we barf on reading the ticket, else return
- * the value of rd_ap_req() applied to the ticket.
- */
-int
-GetKerberosData(int fd, /* file descr. to read from */
-               struct in_addr haddr, /* address of foreign host on fd */
-               AUTH_DAT *kdata,        /* kerberos data (returned) */
-               char *service, /* service principal desired */
-               char *srvtab) /* file to get keys from */
-{
-    char p[20];
-    KTEXT_ST ticket;           /* will get Kerberos ticket from client */
-    int i;
-    char instance[INST_SZ];
-
-    /*
-     * Get the Kerberos ticket.  The first few characters, terminated
-     * by a blank, should give us a length; then get than many chars
-     * which will be the ticket proper.
-     */
-    for (i=0; i<20; i++) {
-       if (read(fd, &p[i], 1) != 1) {
-           syslog(LOG_WARNING,"bad read tkt len");
-           return(KFAILURE);
-       }
-       if (p[i] == ' ') {
-           p[i] = '\0';
-           break;
-       }
-    }
-    ticket.length = atoi(p);
-    if ((i==20) || (ticket.length<=0) || (ticket.length>MAX_KTXT_LEN)) {
-       syslog(LOG_WARNING,"bad tkt len %d",ticket.length);
-       return(KFAILURE);
-    }
-    for (i=0; i<ticket.length; i++) {
-       if (read(fd, (caddr_t) &(ticket.dat[i]), 1) != 1) {
-           syslog(LOG_WARNING,"bad tkt read");
-           return(KFAILURE);
-       }
-    }
-    /*
-     * now have the ticket.  use it to get the authenticated
-     * data from Kerberos.
-     */
-    (void) strcpy(instance,"*");               /* let Kerberos fill it in */
-
-    return(krb_rd_req(&ticket, service, instance, haddr.s_addr,
-                     kdata, srvtab ? srvtab : ""));
-}
-
-/*
- * SendKerberosData
- * 
- * create and transmit a ticket over the file descriptor for service.host
- * return failure codes if appropriate, or 0 if we
- * get the ticket and write it to the file descriptor
- */
-
-#if !defined(krb_err_base) && defined(ERROR_TABLE_BASE_krb)
-#define krb_err_base ERROR_TABLE_BASE_krb
-#endif
-
-Code_t
-SendKerberosData(int fd,       /* file descriptor to write onto */
-                KTEXT ticket,  /* where to put ticket (return) */
-                char *service, /* service name, foreign host */
-                char *host)
-                
-{
-    int rem;
-    char p[32];
-    int written;
-    int size_to_write;
-
-    rem = krb_mk_req(ticket, service, host, (char *)ZGetRealm(), (u_long) 0);
-    if (rem != KSUCCESS)
-       return rem + krb_err_base;
-
-    (void) sprintf(p,"%d ",ticket->length);
-    size_to_write = strlen (p);
-    if ((written = write(fd, p, size_to_write)) != size_to_write)
-       return (written < 0) ? errno : ZSRV_PKSHORT;
-    if ((written = write(fd, (caddr_t) (ticket->dat), ticket->length))
-       != ticket->length)
-       return (written < 0) ? errno : ZSRV_PKSHORT;
-
-    return 0;
-}
-
-#endif /* HAVE_KRB4 */
-
-#if defined(HAVE_KRB5) || defined(HAVE_KRB4)
-Code_t
-ReadKerberosData(int fd, int *size, char **data, int *proto) {
-    char p[20];
-    int i;
-    char *dst;
-    int len = 0;
-
-    for (i=0; i<20; i++) {
-       if (read(fd, &p[i], 1) != 1) {
-           p[i] = 0;
-           syslog(LOG_WARNING,"ReadKerberosData: bad read reply len @%d (got \"%s\"", i, p);
-           return ZSRV_LEN;
-       }
-       if (p[i] == ' ') {
-           p[i] = '\0';
-           break;
-       }
-    }
-
-    if (i == 20) {
-       syslog(LOG_WARNING, "ReadKerberosData: read reply len exceeds buffer");
-           return ZSRV_BUFSHORT;
-    }
-
-    if (!strncmp(p, "V5-", 3) && (len = atoi(p+3)) > 0)
-       *proto = 5;
-    else if ((len = atoi(p)) > 0)
-       *proto = 4;
-
-    if ((*proto < 4) | (*proto > 5)) {
-       syslog(LOG_WARNING, "ReadKerberosData: error parsing authenticator length (\"%s\")", p);
-       return ZSRV_LEN;
-    }
-
-    if (len <= 0) {
-       syslog(LOG_WARNING, "ReadKerberosData: read reply len = %d", len);
-       return ZSRV_LEN;
-    }
-
-    *data = malloc(len);
-    if (! *data) {
-       syslog(LOG_WARNING, "ReadKerberosData: failure allocating %d bytes: %m", len);
-       return errno;
-    }
-    
-    dst=*data;
-    for (i=0; i < len; i++) {
-       if (read(fd, dst++, 1) != 1) {
-            free(*data);
-           *data = NULL;
-           *size = 0;
-            syslog(LOG_WARNING,"ReadKerberosData: bad read reply string");
-            return ZSRV_PKSHORT;
-        }
-    }
-    *size = len;
-    return 0;
-}
-#endif
-
-#ifdef HAVE_KRB5
-Code_t
-GetKrb5Data(int fd, krb5_data *data) {
-    char p[20];
-    int i;
-    char *dst;
-
-    for (i=0; i<20; i++) {
-       if (read(fd, &p[i], 1) != 1) {
-           p[i] = 0;
-           syslog(LOG_WARNING,"bad read reply len @%d (got \"%s\")", i, p);
-           return ZSRV_LEN;
-       }
-       if (p[i] == ' ') {
-           p[i] = '\0';
-           break;
-       }
-    }
-    if (i == 20 || strncmp(p, "V5-", 3) || !atoi(p+3)) {
-        syslog(LOG_WARNING,"bad reply len");
-        return ZSRV_LEN;
-    }
-    data->length = atoi(p+3);
-    data->data = malloc(data->length);
-    if (! data->data) {
-       data->length = 0;
-       return errno;
-    }
-    dst=data->data;
-    for (i=0; i < data->length; i++) {
-       if (read(fd, dst++, 1) != 1) {
-            free(data->data);
-            memset((char *)data, 0, sizeof(krb5_data));
-            syslog(LOG_WARNING,"bad read reply string");
-            return ZSRV_PKSHORT;
-        }
-    }
-    return 0;
-}
-
-Code_t
-SendKrb5Data(int fd, krb5_data *data) {
-    char p[32];
-    int written, size_to_write;
-    sprintf(p, "V5-%d ", data->length);
-    size_to_write = strlen (p);
-    if (size_to_write != (written = write(fd, p, size_to_write)) ||
-        data->length != (written = write(fd, data->data, data->length))) {
-        return (written < 0) ? errno : ZSRV_PKSHORT; 
-    }    
-    return 0;
-}
-#endif
-
-Code_t
-ZCheckRealmAuthentication(ZNotice_t *notice,
-                         struct sockaddr_in *from,
-                         char *realm)
-{       
-#ifdef HAVE_KRB5
-    char *authbuf;
-    char rlmprincipal[MAX_PRINCIPAL_SIZE];
-    krb5_principal princ;
-    krb5_data packet;
-    krb5_ticket *tkt;
-    char *name;
-    krb5_error_code result;
-    krb5_principal server;
-    krb5_keytab keytabid = 0;
-    krb5_auth_context authctx;
-    krb5_keyblock *keyblock; 
-    krb5_enctype enctype; 
-    krb5_cksumtype cksumtype; 
-    krb5_data cksumbuf;
-    int valid;
-    char *cksum0_base, *cksum1_base, *cksum2_base; 
-    char *x; 
-    unsigned char *asn1_data;
-    unsigned char *key_data; 
-    int asn1_len, key_len, cksum0_len, cksum1_len, cksum2_len; 
-#ifdef KRB5_AUTH_CON_GETAUTHENTICATOR_TAKES_DOUBLE_POINTER
-    krb5_authenticator *authenticator;
-#define KRB5AUTHENT authenticator
-#else
-    krb5_authenticator authenticator;
-#define KRB5AUTHENT &authenticator
-#endif
-    int len;
-
-    if (!notice->z_auth)
-        return ZAUTH_NO;
-
-    /* Check for bogus authentication data length. */
-    if (notice->z_authent_len <= 0)
-        return ZAUTH_FAILED;
-
-    len = strlen(notice->z_ascii_authent)+1;
-    authbuf = malloc(len);
-
-    /* Read in the authentication data. */
-    if (ZReadZcode((unsigned char *)notice->z_ascii_authent, 
-                   (unsigned char *)authbuf,
-                   len, &len) == ZERR_BADFIELD) {
-        return ZAUTH_FAILED;
-    }
-
-    (void) snprintf(rlmprincipal, MAX_PRINCIPAL_SIZE, "%s/%s@%s", SERVER_SERVICE,
-                   SERVER_INSTANCE, realm);
-
-    packet.length = len;
-    packet.data = authbuf;
-
-    result = krb5_kt_resolve(Z_krb5_ctx, 
-                        keytab_file, &keytabid);
-    if (result) {
-      free(authbuf);
-      return (result);
-    }
-
-    /* HOLDING: authbuf, keytabid */
-    /* Create the auth context */
-    result = krb5_auth_con_init(Z_krb5_ctx, &authctx);
-    if (result) {
-        krb5_kt_close(Z_krb5_ctx, keytabid);
-        free(authbuf);
-        return (result);
-    }
-
-    /* HOLDING: authbuf, authctx */
-    result = krb5_build_principal(Z_krb5_ctx, &server, strlen(__Zephyr_realm), 
-                                 __Zephyr_realm, SERVER_SERVICE, 
-                                 SERVER_INSTANCE, NULL);
-    if (!result) {
-        result = krb5_rd_req(Z_krb5_ctx, &authctx, &packet, server, 
-                             keytabid, 0, &tkt);
-       krb5_free_principal(Z_krb5_ctx, server);
-    }
-    krb5_kt_close(Z_krb5_ctx, keytabid);
-
-    if (result) {
-      if (result == KRB5KRB_AP_ERR_REPEAT)
-       syslog(LOG_DEBUG, "ZCheckRealmAuthentication: k5 auth failed: %s", error_message(result));
-      else
-        syslog(LOG_WARNING,"ZCheckRealmAuthentication: k5 auth failed: %s", error_message(result));
-        free(authbuf);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        return ZAUTH_FAILED;
-    }
-
-    /* HOLDING: authbuf, authctx, tkt */
-    
-    if (tkt == 0 || !Z_tktprincp(tkt)) {
-       if (tkt)
-           krb5_free_ticket(Z_krb5_ctx, tkt);
-       free(authbuf);
-       krb5_auth_con_free(Z_krb5_ctx, authctx);
-       return ZAUTH_FAILED;
-    }
-
-    princ = Z_tktprinc(tkt);
-
-    if (princ == 0) {
-        krb5_free_ticket(Z_krb5_ctx, tkt);
-        free(authbuf);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        return ZAUTH_FAILED;
-    }
-
-    /* HOLDING: authbuf, authctx, tkt */
-    result = krb5_unparse_name(Z_krb5_ctx, princ, &name);
-    if (result) {
-        syslog(LOG_WARNING, "k5 unparse_name failed: %s",
-               error_message(result));
-        free(authbuf);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        krb5_free_ticket(Z_krb5_ctx, tkt);
-        return ZAUTH_FAILED;
-    }
-
-    krb5_free_ticket(Z_krb5_ctx, tkt);
-
-    /* HOLDING: authbuf, authctx, name */
-    if (strcmp(name, rlmprincipal)) {
-        syslog(LOG_WARNING, "k5 name mismatch: '%s' vs '%s'",
-               name, rlmprincipal);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        free(name);
-        free(authbuf);
-        return ZAUTH_FAILED;
-    }
-    free(name);
-    free(authbuf);
-
-    /* HOLDING: authctx */
-    /* Get an authenticator so we can get the keyblock */
-    result = krb5_auth_con_getauthenticator (Z_krb5_ctx, authctx,
-                                            &authenticator);
-    if(result) {
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        return result;
-    }
-
-    /* HOLDING: authctx, authenticator */
-    result = krb5_auth_con_getkey(Z_krb5_ctx, authctx, &keyblock);
-    if (result) {
-      krb5_auth_con_free(Z_krb5_ctx, authctx);
-      krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-      return (ZAUTH_FAILED);
-    }
-    
-    /* HOLDING: authctx, authenticator, keyblock */
-    /* Figure out what checksum type to use */
-    key_data = Z_keydata(keyblock);
-    key_len = Z_keylen(keyblock);
-    result = Z_ExtractEncCksum(keyblock, &enctype, &cksumtype);
-    if (result) {
-       krb5_free_keyblock(Z_krb5_ctx, keyblock);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-        return (ZAUTH_FAILED);
-    }
-    /* HOLDING: authctx, authenticator, keyblock */
-    /* Assemble the things to be checksummed */ 
-    /* first part is from start of packet through z_default_format: 
-     * - z_version 
-     * - z_num_other_fields 
-     * - z_kind 
-     * - z_uid 
-     * - z_port 
-     * - z_auth 
-     * - z_authent_len 
-     * - z_ascii_authent 
-     * - z_class 
-     * - z_class_inst 
-     * - z_opcode 
-     * - z_sender 
-     * - z_recipient 
-     * - z_default_format 
-     */ 
-    cksum0_base = notice->z_packet; 
-    x           = notice->z_default_format; 
-    cksum0_len  = x + strlen(x) + 1 - cksum0_base; 
-    /* second part is from z_multinotice through other fields: 
-     * - z_multinotice 
-     * - z_multiuid
-     * - z_sender_(sock)addr
-     * - z_charset
-     * - z_other_fields[] 
-     */ 
-    cksum1_base = notice->z_multinotice; 
-    if (notice->z_num_other_fields) 
-        x = notice->z_other_fields[notice->z_num_other_fields - 1]; 
-    else {
-       /* see also lib/ZCkZaut.c:ZCheckZcodeAuthentication */
-       /* XXXXXXXXXXXXXXXXXXXXXXX */
-        x = cksum1_base + strlen(cksum1_base) + 1; /* multinotice */
-       if (notice->z_num_hdr_fields > 17)
-           x = x + strlen(x) + 1; /* multiuid */
-       if (notice->z_num_hdr_fields > 18)
-           x = x + strlen(x) + 1; /* sender */
-    }
-    cksum1_len  = x + strlen(x) + 1 - cksum1_base; /* charset / extra field */
-    /* last part is the message body */ 
-    cksum2_base = notice->z_message; 
-    cksum2_len  = notice->z_message_len; 
-
-    if ((!notice->z_ascii_checksum || *notice->z_ascii_checksum != 'Z') && 
-        key_len == 8 && 
-        (enctype == ENCTYPE_DES_CBC_CRC || 
-         enctype == ENCTYPE_DES_CBC_MD4 || 
-         enctype == ENCTYPE_DES_CBC_MD5)) { 
-      /* try old-format checksum (covers cksum0 only) */ 
-      ZChecksum_t our_checksum; 
-
-      our_checksum = compute_rlm_checksum(notice, key_data);
-
-      krb5_free_keyblock(Z_krb5_ctx, keyblock);
-      krb5_auth_con_free(Z_krb5_ctx, authctx);
-      krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-      
-      if (our_checksum == notice->z_checksum) { 
-          return ZAUTH_YES; 
-      } else
-         return ZAUTH_FAILED;
-    }
-
-    /* HOLDING: authctx, authenticator */
-    cksumbuf.length = cksum0_len + cksum1_len + cksum2_len; 
-    cksumbuf.data = malloc(cksumbuf.length); 
-    if (!cksumbuf.data) { 
-        krb5_free_keyblock(Z_krb5_ctx, keyblock);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-        return ZAUTH_FAILED; 
-    } 
-    /* HOLDING: authctx, authenticator, cksumbuf.data */ 
-    memcpy(cksumbuf.data, cksum0_base, cksum0_len); 
-    memcpy(cksumbuf.data + cksum0_len, cksum1_base, cksum1_len); 
-    memcpy(cksumbuf.data + cksum0_len + cksum1_len, 
-           cksum2_base, cksum2_len); 
-    /* decode zcoded checksum */ 
-    /* The encoded form is always longer than the original */ 
-    asn1_len = strlen(notice->z_ascii_checksum) + 1; 
-    asn1_data = malloc(asn1_len); 
-    if (!asn1_data) { 
-        krb5_free_keyblock(Z_krb5_ctx, keyblock);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-        free(cksumbuf.data); 
-        return ZAUTH_FAILED; 
-    } 
-    /* HOLDING: authctx, authenticator, cksumbuf.data, asn1_data */ 
-    result = ZReadZcode((unsigned char *)notice->z_ascii_checksum, 
-                        asn1_data, asn1_len, &asn1_len); 
-    if (result != ZERR_NONE) { 
-        krb5_free_keyblock(Z_krb5_ctx, keyblock);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-        free(asn1_data); 
-        free(cksumbuf.data); 
-        return ZAUTH_FAILED; 
-    } 
-    /* HOLDING: asn1_data, cksumbuf.data */ 
-
-    valid = Z_krb5_verify_cksum(keyblock, &cksumbuf, cksumtype, asn1_data, asn1_len);
-
-    free(asn1_data); 
-    krb5_auth_con_free(Z_krb5_ctx, authctx);
-    krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-    krb5_free_keyblock(Z_krb5_ctx, keyblock);
-    free(cksumbuf.data); 
-    
-    if (valid) 
-        return (ZAUTH_YES); 
-    else 
-        return (ZAUTH_FAILED); 
-#else
-    return (notice->z_auth) ? ZAUTH_YES : ZAUTH_NO;
-#endif
-}
-
-Code_t
-ZCheckAuthentication(ZNotice_t *notice,
-                    struct sockaddr_in *from)
-{       
-#ifdef HAVE_KRB5
-    unsigned char *authbuf;
-    krb5_principal princ;
-    krb5_data packet;
-    krb5_ticket *tkt;
-    char *name;
-    krb5_error_code result;
-    krb5_principal server;
-    krb5_keytab keytabid = 0;
-    krb5_auth_context authctx;
-    krb5_keyblock *keyblock; 
-    krb5_enctype enctype; 
-    krb5_cksumtype cksumtype; 
-    krb5_data cksumbuf;
-    int valid;
-    char *cksum0_base, *cksum1_base, *cksum2_base; 
-    char *x; 
-    unsigned char *asn1_data, *key_data; 
-    int asn1_len, key_len, cksum0_len, cksum1_len, cksum2_len; 
-#ifdef KRB5_AUTH_CON_GETAUTHENTICATOR_TAKES_DOUBLE_POINTER
-    krb5_authenticator *authenticator;
-#define KRB5AUTHENT authenticator
-#else
-    krb5_authenticator authenticator;
-#define KRB5AUTHENT &authenticator
-#endif
-    int len;
-
-    if (!notice->z_auth)
-        return ZAUTH_NO;
-
-    /* Check for bogus authentication data length. */
-    if (notice->z_authent_len <= 1)
-        return ZAUTH_FAILED;
-
-#ifdef HAVE_KRB4
-    if (notice->z_ascii_authent[0] != 'Z')
-      return ZCheckAuthentication4(notice, from);
-#endif
-    
-    len = strlen(notice->z_ascii_authent)+1;
-    authbuf = malloc(len);
-
-    /* Read in the authentication data. */
-    if (ZReadZcode((unsigned char *)notice->z_ascii_authent, 
-                   authbuf,
-                   len, &len) == ZERR_BADFIELD) {
-        return ZAUTH_FAILED;
-    }
-
-    packet.length = len;
-    packet.data = (char *)authbuf;
-
-    result = krb5_kt_resolve(Z_krb5_ctx, 
-                        keytab_file, &keytabid);
-    if (result) {
-      free(authbuf);
-      return (result);
-    }
-
-    /* HOLDING: authbuf, keytabid */
-    /* Create the auth context */
-    result = krb5_auth_con_init(Z_krb5_ctx, &authctx);
-    if (result) {
-        krb5_kt_close(Z_krb5_ctx, keytabid);
-        free(authbuf);
-        return (result);
-    }
-
-    /* HOLDING: authbuf, authctx */
-    result = krb5_build_principal(Z_krb5_ctx, &server, strlen(__Zephyr_realm), 
-                                 __Zephyr_realm, SERVER_SERVICE, 
-                                 SERVER_INSTANCE, NULL);
-    if (!result) {
-        result = krb5_rd_req(Z_krb5_ctx, &authctx, &packet, server, 
-                             keytabid, 0, &tkt);
-       krb5_free_principal(Z_krb5_ctx, server);
-    }
-    krb5_kt_close(Z_krb5_ctx, keytabid);
-
-    if (result) {
-      if (result == KRB5KRB_AP_ERR_REPEAT)
-       syslog(LOG_DEBUG, "ZCheckAuthentication: k5 auth failed: %s", error_message(result));
-      else
-        syslog(LOG_WARNING,"ZCheckAuthentication: k5 auth failed: %s", error_message(result));
-        free(authbuf);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        return ZAUTH_FAILED;
-    }
-
-    /* HOLDING: authbuf, authctx, tkt */
-
-    if (tkt == 0 || !Z_tktprincp(tkt)) {
-       if (tkt)
-          krb5_free_ticket(Z_krb5_ctx, tkt);
-       free(authbuf);
-       krb5_auth_con_free(Z_krb5_ctx, authctx);
-       return ZAUTH_FAILED;
-    }
-    princ = Z_tktprinc(tkt);
-
-    if (princ == 0) {
-        krb5_free_ticket(Z_krb5_ctx, tkt);
-        free(authbuf);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        return ZAUTH_FAILED;
-    }
-
-    /* HOLDING: authbuf, authctx, tkt */
-    result = krb5_unparse_name(Z_krb5_ctx, princ, &name);
-    if (result) {
-        syslog(LOG_WARNING, "k5 unparse_name failed: %s",
-               error_message(result));
-        free(authbuf);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        krb5_free_ticket(Z_krb5_ctx, tkt);
-        return ZAUTH_FAILED;
-    }
-
-    krb5_free_ticket(Z_krb5_ctx, tkt);
-
-    /* HOLDING: authbuf, authctx, name */
-    if (strcmp(name, notice->z_sender)) {
-        syslog(LOG_WARNING, "k5 name mismatch: '%s' vs '%s'",
-               name, notice->z_sender);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        free(name);
-        free(authbuf);
-        return ZAUTH_FAILED;
-    }
-    free(name);
-    free(authbuf);
-
-    /* HOLDING: authctx */
-    /* Get an authenticator so we can get the keyblock */
-    result = krb5_auth_con_getauthenticator (Z_krb5_ctx, authctx,
-                                            &authenticator);
-    if(result) {
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        return result;
-    }
-
-    /* HOLDING: authctx, authenticator */
-    result = krb5_auth_con_getkey(Z_krb5_ctx, authctx, &keyblock);
-    if (result) {
-      krb5_auth_con_free(Z_krb5_ctx, authctx);
-      krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-      return (ZAUTH_FAILED);
-    }
-    
-    /* HOLDING: authctx, authenticator, keyblock */
-    /* Figure out what checksum type to use */
-    key_data = Z_keydata(keyblock);
-    key_len = Z_keylen(keyblock);
-    result = Z_ExtractEncCksum(keyblock, &enctype, &cksumtype);
-    if (result) { 
-        krb5_free_keyblock(Z_krb5_ctx, keyblock);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-        return (ZAUTH_FAILED); 
-    } 
-    /* HOLDING: authctx, authenticator, keyblock */
-
-    ZSetSession(keyblock);
-    /* Assemble the things to be checksummed */ 
-    /* first part is from start of packet through z_default_format: 
-     * - z_version 
-     * - z_num_other_fields 
-     * - z_kind 
-     * - z_uid 
-     * - z_port 
-     * - z_auth 
-     * - z_authent_len 
-     * - z_ascii_authent 
-     * - z_class 
-     * - z_class_inst 
-     * - z_opcode 
-     * - z_sender 
-     * - z_recipient 
-     * - z_default_format 
-     */ 
-    cksum0_base = notice->z_packet; 
-    x           = notice->z_default_format; 
-    cksum0_len  = x + strlen(x) + 1 - cksum0_base; 
-    /* second part is from z_multinotice through other fields: 
-     * - z_multinotice 
-     * - z_multiuid 
-     * - z_other_fields[] 
-     */ 
-    cksum1_base = notice->z_multinotice; 
-    if (notice->z_num_other_fields) 
-        x = notice->z_other_fields[notice->z_num_other_fields - 1]; 
-    else 
-        x = cksum1_base + strlen(cksum1_base) + 1; /* multiuid */ 
-    cksum1_len  = x + strlen(x) + 1 - cksum1_base; 
-    /* last part is the message body */ 
-    cksum2_base = notice->z_message; 
-    cksum2_len  = notice->z_message_len;
-
-#ifdef HAVE_KRB4 /*XXX*/
-    if ((!notice->z_ascii_checksum || *notice->z_ascii_checksum != 'Z') && 
-        key_len == 8 && 
-        (enctype == ENCTYPE_DES_CBC_CRC || 
-         enctype == ENCTYPE_DES_CBC_MD4 || 
-         enctype == ENCTYPE_DES_CBC_MD5)) { 
-      /* try old-format checksum (covers cksum0 only) */ 
-      ZChecksum_t our_checksum; 
-      our_checksum = compute_checksum(notice, key_data);
-      
-      krb5_free_keyblock(Z_krb5_ctx, keyblock);
-      krb5_auth_con_free(Z_krb5_ctx, authctx);
-      krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-
-      if (our_checksum == notice->z_checksum)
-       return ZAUTH_YES; 
-      else
-       return ZAUTH_FAILED;
-    }
-#endif
-
-    /* HOLDING: authctx, authenticator */
-    cksumbuf.length = cksum0_len + cksum1_len + cksum2_len; 
-    cksumbuf.data = malloc(cksumbuf.length); 
-    if (!cksumbuf.data) { 
-        krb5_free_keyblock(Z_krb5_ctx, keyblock);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-        return ZAUTH_FAILED; 
-    } 
-    /* HOLDING: authctx, authenticator, cksumbuf.data */ 
-    memcpy(cksumbuf.data, cksum0_base, cksum0_len); 
-    memcpy(cksumbuf.data + cksum0_len, cksum1_base, cksum1_len); 
-    memcpy(cksumbuf.data + cksum0_len + cksum1_len, 
-           cksum2_base, cksum2_len); 
-    /* decode zcoded checksum */ 
-    /* The encoded form is always longer than the original */ 
-    asn1_len = strlen(notice->z_ascii_checksum) + 1; 
-    asn1_data = malloc(asn1_len); 
-    if (!asn1_data) { 
-        krb5_free_keyblock(Z_krb5_ctx, keyblock);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-        free(cksumbuf.data); 
-        return ZAUTH_FAILED; 
-    } 
-    /* HOLDING: authctx, authenticator, cksumbuf.data, asn1_data */ 
-    result = ZReadZcode((unsigned char *)notice->z_ascii_checksum, 
-                        asn1_data, asn1_len, &asn1_len); 
-    if (result != ZERR_NONE) { 
-        krb5_free_keyblock(Z_krb5_ctx, keyblock);
-        krb5_auth_con_free(Z_krb5_ctx, authctx);
-        krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-        free(asn1_data); 
-        free(cksumbuf.data); 
-        return ZAUTH_FAILED; 
-    } 
-    /* HOLDING: asn1_data, cksumbuf.data, authctx, authenticator */ 
-
-    valid = Z_krb5_verify_cksum(keyblock, &cksumbuf, cksumtype, asn1_data, asn1_len);
-
-    free(asn1_data); 
-    krb5_auth_con_free(Z_krb5_ctx, authctx);
-    krb5_free_authenticator(Z_krb5_ctx, KRB5AUTHENT);
-    krb5_free_keyblock(Z_krb5_ctx, keyblock);
-    free(cksumbuf.data); 
-    
-    if (valid) 
-        return (ZAUTH_YES); 
-    else 
-        return (ZAUTH_FAILED); 
-#else
-    return (notice->z_auth) ? ZAUTH_YES : ZAUTH_NO;
-#endif
-}
-
-#undef KRB5AUTHENT
-
-#if defined(HAVE_KRB4) && defined(HAVE_KRB5)
-static Code_t
-ZCheckAuthentication4(ZNotice_t *notice,
-                     struct sockaddr_in *from)
-{      
-    int result;
-    char srcprincipal[ANAME_SZ+INST_SZ+REALM_SZ+4];
-    KTEXT_ST authent;
-    AUTH_DAT dat;
-    ZChecksum_t checksum;
-    char instance[INST_SZ+1];
-
-    if (!notice->z_auth)
-       return ZAUTH_NO;
-
-    /* Check for bogus authentication data length. */
-    if (notice->z_authent_len <= 0)
-       return ZAUTH_FAILED;
-
-    /* Read in the authentication data. */
-    if (ZReadAscii(notice->z_ascii_authent, 
-                  strlen(notice->z_ascii_authent)+1, 
-                  (unsigned char *)authent.dat, 
-                  notice->z_authent_len) == ZERR_BADFIELD) {
-       return ZAUTH_FAILED;
-    }
-    authent.length = notice->z_authent_len;
-
-    strcpy(instance, SERVER_INSTANCE);
-
-    /* We don't have the session key cached; do it the long way. */
-    result = krb_rd_req(&authent, SERVER_SERVICE, instance,
-                       from->sin_addr.s_addr, &dat, srvtab_file);
-    if (result == RD_AP_OK) {
-       ZSetSessionDES(&dat.session);
-       sprintf(srcprincipal, "%s%s%s@%s", dat.pname, dat.pinst[0] ? "." : "",
-               dat.pinst, dat.prealm);
-       if (strcmp(srcprincipal, notice->z_sender))
-           return ZAUTH_FAILED;
-    } else {
-       return ZAUTH_FAILED;    /* didn't decode correctly */
-    }
-
-    /* Check the cryptographic checksum. */
-    checksum = compute_checksum(notice, dat.session);
-
-    if (checksum != notice->z_checksum)
-       return ZAUTH_FAILED;
-
-    return ZAUTH_YES;
-}
-#endif
-
-
-#if defined(HAVE_KRB4) && defined(HAVE_KRB5)
-static ZChecksum_t
-compute_checksum(ZNotice_t *notice,
-                C_Block session_key)
-{
-    ZChecksum_t checksum;
-    char *cstart, *cend, *hstart = notice->z_packet, *hend = notice->z_message;
-
-    cstart = notice->z_default_format + strlen(notice->z_default_format) + 1;
-    cend = cstart + strlen(cstart) + 1;
-    checksum = des_quad_cksum((unsigned char *)hstart, NULL, cstart - hstart, 0, (C_Block *)session_key);
-    checksum ^= des_quad_cksum((unsigned char *)cend, NULL, hend - cend, 0, (C_Block *)session_key);
-    checksum ^= des_quad_cksum((unsigned char *)notice->z_message, NULL, notice->z_message_len,
-                              0, (C_Block *)session_key);
-    return checksum;
-}
-#endif
-
-#ifdef HAVE_KRB5
-static ZChecksum_t compute_rlm_checksum(ZNotice_t *notice,
-                                       unsigned char *session_key)
-{
-    ZChecksum_t checksum;
-    char *cstart, *cend, *hstart = notice->z_packet;
-
-    cstart = notice->z_default_format + strlen(notice->z_default_format) + 1;
-    cend = cstart + strlen(cstart) + 1;
-    checksum = z_quad_cksum((unsigned char *)hstart, NULL,
-                           cstart - hstart, 0, session_key);
-
-    return checksum;
-}
-#endif
-
-#ifdef HAVE_KRB5
-krb5_error_code 
-Z_krb5_init_keyblock(krb5_context context,
-       krb5_enctype type,
-       size_t size,
-       krb5_keyblock **key)
-{
-#ifdef HAVE_KRB5_CREDS_KEYBLOCK_ENCTYPE
-       return krb5_init_keyblock(context, type, size, key);
-#else
-       krb5_error_code ret;
-       krb5_keyblock *tmp, tmp_ss;
-       tmp = &tmp_ss;
-
-       *key = NULL;
-       Z_enctype(tmp) = type;
-       Z_keylen(tmp) = size;
-       Z_keydata(tmp) = malloc(size);
-       if (!Z_keydata(tmp))
-               return ENOMEM;
-       ret =  krb5_copy_keyblock(context, tmp, key);
-       free(Z_keydata(tmp));
-       return ret;
-#endif
-}
-
-void
-ZSetSession(krb5_keyblock *keyblock) {
-    krb5_error_code result;
-
-    if (__Zephyr_keyblock) {
-         krb5_free_keyblock_contents(Z_krb5_ctx, __Zephyr_keyblock);
-         result = krb5_copy_keyblock_contents(Z_krb5_ctx, keyblock, __Zephyr_keyblock);
-    } else {
-         result = krb5_copy_keyblock(Z_krb5_ctx, keyblock, &__Zephyr_keyblock);
-    }
-    
-    if (result) /*XXX we're out of memory? */
-       ;
-}
-#endif
-#ifdef HAVE_KRB4
-void
-ZSetSessionDES(C_Block *key) {
-#ifdef HAVE_KRB5
-     Code_t result;
-     if (__Zephyr_keyblock) {
-          krb5_free_keyblock(Z_krb5_ctx, __Zephyr_keyblock);
-          __Zephyr_keyblock=NULL;
-     }
-     result = Z_krb5_init_keyblock(Z_krb5_ctx, ENCTYPE_DES_CBC_CRC, 
-                                 sizeof(C_Block),
-                                 &__Zephyr_keyblock);
-     if (result) /*XXX we're out of memory? */
-       return;
-
-     memcpy(Z_keydata(__Zephyr_keyblock), key, sizeof(C_Block));
-#else
-    memcpy(__Zephyr_session, key, sizeof(C_Block));
-#endif
-}
-#endif
diff --git a/zephyr/server/main.c b/zephyr/server/main.c
deleted file mode 100644 (file)
index d83940d..0000000
+++ /dev/null
@@ -1,765 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains the main loop of the Zephyr server
- *
- *     Created by:     John T. Kohl
- *
- *     $Source: /afs/dev.mit.edu/source/repository/athena/lib/zephyr/server/main.c,v $
- *     $Author: kcr $
- *
- *     Copyright (c) 1987,1988,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"
-#include <sys/socket.h>
-#include <sys/resource.h>
-
-#ifndef lint
-#ifndef SABER
-static const char rcsid_main_c[] =
-    "$Id: main.c 2345 2009-03-24 03:59:25Z kcr $";
-#endif
-#endif
-
-/*
- * Server loop for Zephyr.
- */
-
-/*
-  The Zephyr server maintains several linked lists of information.
-
-  There is an array of servers (otherservers) initialized and maintained
-  by server_s.c.
-
-  Each server descriptor contains a pointer to a linked list of hosts
-  which are ``owned'' by that server.  The first server is the ``limbo''
-  server which owns any host which was formerly owned by a dead server.
-
-  Each of these host list entries has an IP address and a pointer to a
-  linked list of clients on that host.
-
-  Each client has a sockaddr_in, a list of subscriptions, and possibly
-  a session key.
-
-  In addition, the class manager has copies of the pointers to the
-  clients which are registered with a particular class, the
-  not-yet-acknowledged list has copies of pointers to some clients,
-  and the hostm manager may have copies of pointers to some clients
-  (if the client has not acknowledged a packet after a given timeout).
-*/
-
-#define        EVER            (;;)            /* don't stop looping */
-
-static int do_net_setup(void);
-static int initialize(void);
-static void usage(void);
-static void do_reset(void);
-static RETSIGTYPE bye(int);
-static RETSIGTYPE dbug_on(int);
-static RETSIGTYPE dbug_off(int);
-static RETSIGTYPE sig_dump_db(int);
-static RETSIGTYPE reset(int);
-static RETSIGTYPE reap(int);
-static void read_from_dump(char *dumpfile);
-static void dump_db(void);
-static void dump_strings(void);
-
-#ifndef DEBUG
-static void detach(void);
-#endif
-
-static short doreset = 0;              /* if it becomes 1, perform
-                                          reset functions */
-
-int nfds;                              /* max file descriptor for select() */
-int srv_socket;                                /* dgram socket for clients
-                                          and other servers */
-int bdump_socket = -1;                 /* brain dump socket fd
-                                          (closed most of the time) */
-fd_set interesting;                    /* the file descrips we are listening
-                                          to right now */
-struct sockaddr_in srv_addr;           /* address of the socket */
-
-Unacked *nacklist = NULL;              /* list of packets waiting for ack's */
-
-unsigned short hm_port;                        /* host manager receiver port */
-unsigned short hm_srv_port;            /* host manager server sending port */
-
-char *programname;                     /* set to the basename of argv[0] */
-char myname[MAXHOSTNAMELEN];           /* my host name */
-
-char list_file[128];
-#ifdef HAVE_KRB5
-char keytab_file[128];
-static char tkt5_file[256];
-#endif
-#ifdef HAVE_KRB4
-char srvtab_file[128];
-static char tkt_file[128];
-#endif
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-char my_realm[REALM_SZ];
-#endif
-char acl_dir[128];
-char subs_file[128];
-
-int zdebug;
-#ifdef DEBUG_MALLOC
-int dump_malloc_stats = 0;
-unsigned long m_size;
-#endif
-#ifdef DEBUG
-int zalone;
-#endif
-
-struct timeval t_local;                        /* store current time for other uses */
-
-static int dump_db_flag = 0;
-static int dump_strings_flag = 0;
-
-u_long npackets;                       /* number of packets processed */
-time_t uptime;                         /* when we started operations */
-static int nofork;
-struct in_addr my_addr;
-char *bdump_version = "1.2";
-
-#ifdef HAVE_KRB5
-int bdump_auth_proto = 5;
-#else /* HAVE_KRB5 */
-#ifdef HAVE_KRB4
-int bdump_auth_proto = 4;
-#else /* HAVE_KRB4 */
-int bdump_auth_proto = 0;
-#endif /* HAVE_KRB4 */
-#endif /* HAVE_KRB5 */
-
-#ifdef HAVE_KRB5
-krb5_ccache Z_krb5_ccache;
-krb5_keyblock *__Zephyr_keyblock;
-#else
-#ifdef HAVE_KRB4
-C_Block __Zephyr_session;
-#endif
-#endif
-
-int
-main(int argc,
-     char **argv)
-{
-    int nfound;                        /* #fildes ready on select */
-    fd_set readable;
-    struct timeval tv;
-    int init_from_dump = 0;
-    char *dumpfile;
-#ifdef _POSIX_VERSION
-    struct sigaction action;
-#endif
-    int optchar;                       /* option processing */
-    extern char *optarg;
-    extern int optind;
-
-    sprintf(list_file, "%s/zephyr/%s", SYSCONFDIR, SERVER_LIST_FILE);
-#ifdef HAVE_KRB4
-    sprintf(srvtab_file, "%s/zephyr/%s", SYSCONFDIR, ZEPHYR_SRVTAB);
-    sprintf(tkt_file, "%s/zephyr/%s", SYSCONFDIR, ZEPHYR_TKFILE);
-#endif
-#ifdef HAVE_KRB5
-    sprintf(keytab_file, "%s/zephyr/%s", SYSCONFDIR, ZEPHYR_KEYTAB);
-    sprintf(tkt5_file, "FILE:%s/zephyr/%s", SYSCONFDIR, ZEPHYR_TK5FILE);
-#endif
-    sprintf(acl_dir, "%s/zephyr/%s", SYSCONFDIR, ZEPHYR_ACL_DIR);
-    sprintf(subs_file, "%s/zephyr/%s", SYSCONFDIR, DEFAULT_SUBS_FILE);
-
-    /* set name */
-    programname = strrchr(argv[0],'/');
-    programname = (programname) ? programname + 1 : argv[0];
-
-    /* process arguments */
-    while ((optchar = getopt(argc, argv, "dsnv4f:k:")) != EOF) {
-       switch(optchar) {
-         case 'd':
-           zdebug = 1;
-           break;
-#ifdef DEBUG
-         case 's':
-           zalone = 1;
-           break;
-#endif
-         case 'n':
-           nofork = 1;
-           break;
-         case 'k':
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-           strncpy(my_realm, optarg, REALM_SZ);
-#endif
-           break;
-         case 'v':
-           bdump_version = optarg;
-           break;
-         case 'f':
-           init_from_dump = 0;
-           dumpfile = optarg;
-           break;
-       case '4':
-           bdump_auth_proto = 4;
-           break;
-         case '?':
-         default:
-           usage();
-           /*NOTREACHED*/
-       }
-    }
-
-#ifdef HAVE_KRB4
-    /* if there is no readable srvtab and we are not standalone, there
-       is no possible way we can succeed, so we exit */
-
-    if (access(srvtab_file, R_OK)
-#ifdef DEBUG           
-       && !zalone
-#endif /* DEBUG */
-       ) {
-       fprintf(stderr, "NO ZEPHYR SRVTAB (%s) available; exiting\n",
-               srvtab_file);
-       exit(1);
-    }
-    /* Use local realm if not specified on command line. */
-    if (!*my_realm) {
-       if (krb_get_lrealm(my_realm, 1) != KSUCCESS) {
-           fputs("Couldn't get local Kerberos realm; exiting.\n", stderr);
-           exit(1);
-       }
-    }
-#endif /* HAVE_KRB4 */
-
-#ifndef DEBUG
-    if (!nofork)
-       detach();
-#endif /* DEBUG */
-
-    /* open log */
-    OPENLOG(programname, LOG_PID, LOG_LOCAL6);
-
-#if defined (DEBUG) && 0
-    if (zalone)
-       syslog(LOG_DEBUG, "standalone operation");
-#endif
-    if (zdebug)
-       syslog(LOG_DEBUG, "debugging on");
-
-    /* set up sockets & my_addr and myname, 
-       find other servers and set up server table, initialize queues
-       for retransmits, initialize error tables,
-       set up restricted classes */
-
-    /* Initialize t_local for other uses */
-    gettimeofday(&t_local, NULL);
-
-    if (initialize())
-       exit(1);
-
-    if (init_from_dump)
-       read_from_dump(dumpfile);
-
-    /* Seed random number set.  */
-    srandom(getpid() ^ time(0));
-
-    /* chdir to somewhere where a core dump will survive */
-    if (chdir(TEMP_DIRECTORY) != 0)
-       syslog(LOG_ERR, "chdir failed (%m) (execution continuing)");
-
-    FD_ZERO(&interesting);
-    FD_SET(srv_socket, &interesting);
-
-    nfds = srv_socket + 1;
-
-
-#ifdef _POSIX_VERSION
-    action.sa_flags = 0;
-    sigemptyset(&action.sa_mask);
-
-    action.sa_handler = bye;
-    sigaction(SIGINT, &action, NULL);
-    sigaction(SIGTERM, &action, NULL);
-
-    action.sa_handler = dbug_on;
-    sigaction(SIGUSR1, &action, NULL);
-
-    action.sa_handler = dbug_off;
-    sigaction(SIGUSR2, &action, NULL);
-
-    action.sa_handler = reap;
-    sigaction(SIGCHLD, &action, NULL);
-
-    action.sa_handler = sig_dump_db;
-    sigaction(SIGFPE, &action, NULL);
-
-    action.sa_handler = reset;
-    sigaction(SIGHUP, &action, NULL);
-#else /* !posix */
-    signal(SIGINT, bye);
-    signal(SIGTERM, bye);
-    signal(SIGUSR1, dbug_on);
-    signal(SIGUSR2, dbug_off);
-    signal(SIGCHLD, reap);
-    signal(SIGFPE, sig_dump_db);
-    signal(SIGHUP, reset);
-#endif /* _POSIX_VERSION */
-
-    syslog(LOG_NOTICE, "Ready for action");
-
-    /* Reinitialize t_local now that initialization is done. */
-    gettimeofday(&t_local, NULL);
-    uptime = NOW;
-
-    realm_wakeup();
-#ifdef DEBUG_MALLOC
-    malloc_inuse(&m_size);
-#endif
-    for EVER {
-       if (doreset)
-           do_reset();
-
-       if (dump_db_flag)
-           dump_db();
-       if (dump_strings_flag)
-           dump_strings();
-
-       timer_process();
-
-       readable = interesting;
-       if (msgs_queued()) {
-           /* when there is input in the queue, we
-              artificially set up to pick up the input */
-           nfound = 1;
-           FD_ZERO(&readable);
-       } else  {
-           nfound = select(nfds, &readable, NULL, NULL, timer_timeout(&tv));
-       }
-
-       /* Initialize t_local for other uses */
-       gettimeofday(&t_local, (struct timezone *)0);
-               
-       /* don't flame about EINTR, since a SIGUSR1 or SIGUSR2
-          can generate it by interrupting the select */
-       if (nfound < 0) {
-           if (errno != EINTR)
-               syslog(LOG_WARNING, "select error: %m");
-#ifdef DEBUG_MALLOC
-           if (dump_malloc_stats) {
-               unsigned long foo,histid2;
-
-               dump_malloc_stats = 0;
-               foo = malloc_inuse(&histid2);
-               printf("Total inuse: %d\n",foo);
-               malloc_list(2,m_size,histid2);
-           }
-#endif
-           continue;
-       }
-
-       if (nfound == 0) {
-           /* either we timed out or we were just
-              polling for input.  Either way we want to continue
-              the loop, and process the next timeout */
-           continue;
-       } else {
-           if (bdump_socket >= 0 && FD_ISSET(bdump_socket,&readable))
-               bdump_send();
-           else if (msgs_queued() || FD_ISSET(srv_socket, &readable))
-               handle_packet();
-           else
-               syslog(LOG_ERR, "select weird?!?!");
-       }
-    }
-}
-
-/* Initialize net stuff.
-   Set up the server array.
-   Initialize the packet ack queues to be empty.
-   Initialize the error tables.
-   Restrict certain classes.
-   */
-
-static int
-initialize(void)
-{
-    if (do_net_setup())
-       return(1);
-
-    server_init();
-
-#ifdef HAVE_KRB4
-    krb_set_tkt_string(tkt_file);
-#endif
-    realm_init();
-    
-    ZSetServerState(1);
-    ZInitialize();             /* set up the library */
-#ifdef HAVE_KRB5
-    krb5_cc_resolve(Z_krb5_ctx, tkt5_file, &Z_krb5_ccache);
-#ifdef HAVE_KRB5_CC_SET_DEFAULT_NAME
-    krb5_cc_set_default_name(Z_krb5_ctx, tkt5_file);
-#else
-    {
-       /* Hack to make krb5_cc_default do something reasonable */
-       char *env=(char *)malloc(strlen(tkt5_file)+12);
-       if (!env) return(1);
-       sprintf(env, "KRB5CCNAME=%s", tkt5_file);
-       putenv(env);
-    }
-#endif
-#endif
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-    /* Override what Zinitialize set for ZGetRealm() */
-    if (*my_realm) 
-      strcpy(__Zephyr_realm, my_realm);
-#endif
-    init_zsrv_err_tbl();       /* set up err table */
-
-    ZSetFD(srv_socket);                /* set up the socket as the input fildes */
-
-    /* set up default strings */
-
-    class_control = make_string(ZEPHYR_CTL_CLASS, 1);
-    class_admin = make_string(ZEPHYR_ADMIN_CLASS, 1);
-    class_hm = make_string(HM_CTL_CLASS, 1);
-    class_ulogin = make_string(LOGIN_CLASS, 1);
-    class_ulocate = make_string(LOCATE_CLASS, 1);
-    wildcard_instance = make_string(WILDCARD_INSTANCE, 1);
-    empty = make_string("", 0);
-
-    /* restrict certain classes */
-    access_init();
-    return 0;
-}
-
-/* 
- * Set up the server and client sockets, and initialize my_addr and myname
- */
-
-static int
-do_net_setup(void)
-{
-    struct servent *sp;
-    struct hostent *hp;
-    char hostname[MAXHOSTNAMELEN+1];
-    int flags;
-
-    if (gethostname(hostname, MAXHOSTNAMELEN + 1)) {
-       syslog(LOG_ERR, "no hostname: %m");
-       return 1;
-    }
-    hp = gethostbyname(hostname);
-    if (!hp) {
-       syslog(LOG_ERR, "no gethostbyname repsonse");
-       strncpy(myname, hostname, MAXHOSTNAMELEN);
-       return 1;
-    }
-    strncpy(myname, hp->h_name, MAXHOSTNAMELEN);
-    memcpy(&my_addr, hp->h_addr, sizeof(hp->h_addr));
-
-    setservent(1);             /* keep file/connection open */
-
-    memset(&srv_addr, 0, sizeof(srv_addr));
-    srv_addr.sin_family = AF_INET;
-    sp = getservbyname(SERVER_SVCNAME, "udp");
-    srv_addr.sin_port = (sp) ? sp->s_port : SERVER_SVC_FALLBACK;
-
-    sp = getservbyname(HM_SVCNAME, "udp");
-    hm_port = (sp) ? sp->s_port : HM_SVC_FALLBACK;
-       
-    sp = getservbyname(HM_SRV_SVCNAME, "udp");
-    hm_srv_port = (sp) ? sp->s_port : HM_SRV_SVC_FALLBACK;
-       
-    srv_socket = socket(AF_INET, SOCK_DGRAM, 0);
-    if (srv_socket < 0) {
-       syslog(LOG_ERR, "client_sock failed: %m");
-       return 1;
-    } 
-    if (bind(srv_socket, (struct sockaddr *) &srv_addr,
-            sizeof(srv_addr)) < 0) {
-       syslog(LOG_ERR, "client bind failed: %m");
-       return 1;
-    }
-
-    /* set not-blocking */
-#ifdef _POSIX_VERSION
-    flags = fcntl(srv_socket, F_GETFL);
-    flags |= O_NONBLOCK;
-    fcntl(srv_socket, F_SETFL, flags);
-#else
-    flags = 1;
-    ioctl(srv_socket, FIONBIO, &flags);
-#endif
-
-    return 0;
-}    
-
-
-/*
- * print out a usage message.
- */
-
-static void
-usage(void)
-{
-#ifdef DEBUG
-       fprintf(stderr, "Usage: %s [-d] [-s] [-n] [-k realm] [-f dumpfile]\n",
-               programname);
-#else
-       fprintf(stderr, "Usage: %s [-d] [-n] [-k realm] [-f dumpfile]\n",
-               programname);
-#endif /* DEBUG */
-       exit(2);
-}
-
-int
-packets_waiting(void)
-{
-    fd_set readable, initial;
-    struct timeval tv;
-
-    if (msgs_queued())
-       return 1;
-    FD_ZERO(&initial);
-    FD_SET(srv_socket, &initial);
-    readable = initial;
-    tv.tv_sec = tv.tv_usec = 0;
-    return (select(srv_socket + 1, &readable, NULL, NULL, &tv) > 0);
-}
-
-static RETSIGTYPE
-bye(int sig)
-{
-    server_shutdown();         /* tell other servers */
-#ifdef REALM_MGMT
-    realm_shutdown();          /* tell other realms */
-#endif
-    hostm_shutdown();          /* tell our hosts */
-    kill_realm_pids();
-#ifdef HAVE_KRB4
-    dest_tkt();
-#endif
-    syslog(LOG_NOTICE, "goodbye (sig %d)", sig);
-    exit(0);
-}
-
-static RETSIGTYPE
-dbug_on(int sig)
-{
-    syslog(LOG_DEBUG, "debugging turned on");
-#ifdef DEBUG_MALLOC
-    dump_malloc_stats = 1;
-#endif
-    zdebug = 1;
-}
-
-static RETSIGTYPE
-dbug_off(int sig)
-{
-    syslog(LOG_DEBUG, "debugging turned off");
-#ifdef DEBUG_MALLOC
-    malloc_inuse(&m_size);
-#endif
-    zdebug = 0;
-}
-
-int fork_for_dump = 0;
-
-static void dump_strings(void)
-{
-    char filename[128];
-
-    FILE *fp;
-    int oerrno = errno;
-
-    sprintf(filename, "%szephyr.strings", TEMP_DIRECTORY);
-    fp = fopen (filename, "w");
-    if (!fp) {
-       syslog(LOG_ERR, "can't open strings dump file: %m");
-       errno = oerrno;
-       dump_strings_flag = 0;
-       return;
-    }
-    syslog(LOG_INFO, "dumping strings to disk");
-    print_string_table(fp);
-    if (fclose(fp) == EOF)
-       syslog(LOG_ERR, "error writing strings dump file");
-    else
-       syslog(LOG_INFO, "dump done");
-    oerrno = errno;
-    dump_strings_flag = 0;
-    return;
-}
-
-static RETSIGTYPE
-sig_dump_db(int sig)
-{
-    dump_db_flag = 1;
-}
-
-static void
-dump_db(void)
-{
-    /* dump the in-core database to human-readable form on disk */
-    FILE *fp;
-    int oerrno = errno;
-    int pid;
-    char filename[128];
-
-    pid = (fork_for_dump) ? fork() : -1;
-    if (pid > 0) {
-       dump_db_flag = 0;
-       return;
-    }
-    sprintf(filename, "%szephyr.db", TEMP_DIRECTORY);
-    fp = fopen(filename, "w");
-    if (!fp) {
-       syslog(LOG_ERR, "can't open dump database");
-       errno = oerrno;
-       dump_db_flag = 0;
-       return;
-    }
-    syslog(LOG_INFO, "dumping to disk");
-    server_dump_servers(fp);
-    uloc_dump_locs(fp);
-    client_dump_clients(fp);
-    triplet_dump_subs(fp);
-    realm_dump_realms(fp);
-    syslog(LOG_INFO, "dump done");
-    if (fclose(fp) == EOF)
-       syslog(LOG_ERR, "can't close dump db");
-    if (pid == 0)
-       exit(0);
-    errno = oerrno;
-    dump_db_flag = 0;
-}
-
-static RETSIGTYPE
-reset(int sig)
-{
-    zdbug((LOG_DEBUG,"reset()"));
-    doreset = 1;
-}
-
-static RETSIGTYPE
-reap(int sig)
-{
-    int pid, i = 0;
-    int oerrno = errno;
-    ZRealm *rlm;
-#ifdef _POSIX_VERSION
-    int waitb;
-#else
-    union wait waitb;
-#endif
-
-    zdbug((LOG_DEBUG,"reap()"));
-#ifdef _POSIX_VERSION
-    while ((pid = waitpid(-1, &waitb, WNOHANG)) == 0) 
-      { i++; if (i > 10) break; }
-#else
-    while ((pid = wait3 (&waitb, WNOHANG, (struct rusage*) 0)) == 0) 
-      { i++; if (i > 10) break; }
-#endif
-
-    errno = oerrno;
-    if (pid) {
-      if (WIFSIGNALED(waitb) == 0) {
-       if (WIFEXITED(waitb) != 0) {
-         rlm = realm_get_realm_by_pid(pid);
-         if (rlm) {
-           rlm->child_pid = 0;
-           rlm->have_tkt = 1;
-         }
-       }
-      } else {
-       rlm = realm_get_realm_by_pid(pid);
-       if (rlm) {
-         rlm->child_pid = 0;
-       }
-      }
-    }
-}
-
-static void
-do_reset(void)
-{
-    int oerrno = errno;
-#ifdef _POSIX_VERSION
-    sigset_t mask, omask;
-#else
-    int omask;
-#endif
-#ifdef _POSIX_VERSION
-    sigemptyset(&mask);
-    sigaddset(&mask, SIGHUP);
-    sigprocmask(SIG_BLOCK, &mask, &omask);
-#else
-    omask = sigblock(sigmask(SIGHUP));
-#endif
-
-    /* reset various things in the server's state */
-    subscr_reset();
-    server_reset();
-    access_reinit();
-    syslog(LOG_INFO, "restart completed");
-    doreset = 0;
-    errno = oerrno;
-#ifdef _POSIX_VERSION
-    sigprocmask(SIG_SETMASK, &omask, (sigset_t *)0);
-#else
-    sigsetmask(omask);
-#endif
-}
-
-#ifndef DEBUG
-/*
- * detach from the terminal
- */
-
-static void
-detach(void)
-{
-    /* detach from terminal and fork. */
-    int i;
-    long size;
-
-#ifdef _POSIX_VERSION
-    size = sysconf(_SC_OPEN_MAX);
-#else
-    size = getdtablesize();
-#endif
-    /* profiling seems to get confused by fork() */
-    i = fork ();
-    if (i) {
-       if (i < 0)
-           perror("fork");
-       exit(0);
-    }
-
-    for (i = 0; i < size; i++)
-       close(i);
-
-    i = open("/dev/tty", O_RDWR, 666);
-#ifdef TIOCNOTTY /* Only necessary on old systems. */
-    ioctl(i, TIOCNOTTY, NULL);
-#endif
-    close(i);
-#ifdef _POSIX_VERSION
-    setsid();
-#endif
-}
-#endif /* not DEBUG */
-
-static void
-read_from_dump(char *dumpfile)
-{
-    /* Not yet implemented. */
-    return;
-}
-
diff --git a/zephyr/server/new_vers.sh b/zephyr/server/new_vers.sh
deleted file mode 100755 (executable)
index 035b3ff..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-#
-
-u=${USER-the_zephyr_builder}
-h=`hostname`
-t=`date`
-
-umask 002
-/bin/echo "#define ZSERVER_VERSION_STRING \"(${t}) ${u}@${h}\"" >version.h
diff --git a/zephyr/server/realm.c b/zephyr/server/realm.c
deleted file mode 100644 (file)
index 6118265..0000000
+++ /dev/null
@@ -1,1442 +0,0 @@
-#include "zserver.h"
-#include <sys/socket.h>
-
-Unacked *rlm_nacklist = NULL;   /* not acked list for realm-realm
-                                   packets */
-ZRealm *otherrealms;             /* points to an array of the known
-                                   servers */
-int nrealms = 0;                /* number of other realms */
-
-/*
- * External Routines:
- *
- * ZRealm *realm_which_realm(struct sockaddr_in *who)
- * figures out if this packet came from another realm's server
- *
- * ZRealm *realm_get_realm_by_pid(int pid)
- * figures out which realm a child handler was for
- *
- * void kill_realm_pids()
- * kills all ticket getting childen
- *
- * char *realm_expand_realm(char *realmname)
- * figures out what an abbreviated realm expands to
- *
- * Code_t realm_send_realms()
- * loops through all realms for a brain dump
- *
- * int realm_bound_for_realm(char *realm, char *recip)
- * figures out if recip is in realm, expanding recip's realm
- *
- * int realm_sender_in_realm(char *realm, char *sender)
- * figures out if sender is in realm
- * 
- * ZRealm *realm_get_realm_by_name(char *name)
- * finds a realm struct from the realm array by name, tries expansion
- *
- * Code_t realm_dispatch(ZNotice_t *notice, int auth, struct sockaddr_in *who,
- *                       Server *server)
- * dispatches a message from a foreign realm
- *
- * void realm_init()
- * sets up the realm module
- * 
- * void realm_deathgram()
- * tells other realms this server is going down
- * 
- * void realm_wakeup()
- * tells other realms to resend their idea of their subs to us
- *
- * Code_t realm_control_dispatch(ZNotice_t *notice, int auth,
- *                               struct sockaddr_in *who, Server *server,
- *                              ZRealm *realm)
- * dispatches a foreign realm control message
- *
- * void realm_handoff(ZNotice_t *notice, int auth, struct sockaddr_in *who,
- *                    ZRealm *realm, int ack_to_sender)
- * hands off a message to another realm
- *
- * void realm_dump_realms(File *fp)
- * do a database dump of foreign realm info
- *
- */
-static void realm_sendit(ZNotice_t *notice, struct sockaddr_in *who, int auth, ZRealm *realm, int ack_to_sender);
-#ifdef HAVE_KRB5
-static Code_t realm_sendit_auth(ZNotice_t *notice, struct sockaddr_in *who, int auth, ZRealm *realm, int ack_to_sender);
-#endif
-static void rlm_ack(ZNotice_t *notice, Unacked *nacked);
-static void rlm_nack_cancel(ZNotice_t *notice, struct sockaddr_in *who);
-static void rlm_rexmit(void *arg);
-static Code_t realm_ulocate_dispatch(ZNotice_t *notice,int auth,struct sockaddr_in *who,Server *server,ZRealm *realm);
-static Code_t realm_new_server(struct sockaddr_in *, ZNotice_t *, ZRealm *);
-static Code_t realm_set_server(struct sockaddr_in *, ZRealm *);
-#ifdef HAVE_KRB5
-static Code_t ticket_retrieve(ZRealm *realm);
-static int ticket_lookup(char *realm);
-#endif
-
-static int
-realm_get_idx_by_addr(ZRealm *realm,
-                     struct sockaddr_in *who)
-{
-    struct sockaddr_in *addr;
-    int b;
-
-    /* loop through the realms */
-    for (addr = realm->addrs, b = 0; b < realm->count; b++, addr++)
-       if (addr->sin_addr.s_addr == who->sin_addr.s_addr)
-           return(b);
-    
-    return 0;
-}
-
-const char *
-realm_expand_realm(char *realmname)
-{
-    ZRealm *realm;
-    int a;
-
-    /* First, look for an exact match (case insensitive) */
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-    if (!strcasecmp(ZGetRealm(), realmname))
-       return(ZGetRealm());
-#endif
-
-    for (realm = otherrealms, a = 0; a < nrealms; a++, realm++)
-      if (!strcasecmp(realm->name, realmname))
-       return(realm->name);
-
-    /* No exact match. See if there's a partial match */
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-    if (!strncasecmp(ZGetRealm(), realmname, strlen(realmname)))
-       return(ZGetRealm());
-#endif
-
-    for (realm = otherrealms, a = 0; a < nrealms; a++, realm++)
-       if (!strncasecmp(realm->name, realmname, strlen(realmname)))
-           return(realm->name);
-    return(realmname);
-}
-
-ZRealm *
-realm_get_realm_by_pid(int pid)
-{
-    ZRealm *realm;
-    int a;
-
-    for (realm = otherrealms, a = 0; a < nrealms; a++, realm++)
-       if (realm->child_pid == pid)
-           return(realm);
-   
-    return 0;
-}
-
-void
-kill_realm_pids(void)
-{
-    ZRealm *realm;
-    int a;
-
-    for (realm = otherrealms, a = 0; a < nrealms; a++, realm++)
-       if (realm->child_pid != 0)
-           kill(realm->child_pid, 9);
-   
-    return;
-}
-
-ZRealmname *
-get_realm_lists(char *file)
-{
-    ZRealmname *rlm_list, *rlm;
-    int ii, nused, ntotal;
-    FILE *fp;
-    char buf[REALM_SZ + MAXHOSTNAMELEN + 1]; /* one for newline */
-    char realm[REALM_SZ], server[MAXHOSTNAMELEN + 1];
-  
-    nused = 0;
-    if (!(fp = fopen(file, "r")))
-       return((ZRealmname *)0);
-  
-    /* start with 16, realloc if necessary */
-    ntotal = 16;
-    rlm_list = (ZRealmname *)malloc(ntotal * sizeof(ZRealmname));
-    if (!rlm_list) {
-       syslog(LOG_CRIT, "get_realm_lists malloc");
-       abort();
-    }
-
-    while (fgets(buf, REALM_SZ + MAXHOSTNAMELEN + 1, fp)) {
-       if (sscanf(buf, "%s %s", realm, server) != 2) {
-           syslog(LOG_CRIT, "bad format in %s", file);
-           abort();
-       }
-       for (ii = 0; ii < nused; ii++) {
-           /* look for this realm */
-           if (!strcmp(rlm_list[ii].name, realm))
-               break;
-       }
-       if (ii < nused) {
-           rlm = &rlm_list[ii];
-           if (rlm->nused +1 >= rlm->nservers) {
-               /* make more space */
-               rlm->servers = (char **)realloc((char *)rlm->servers, 
-                                               (unsigned)rlm->nservers * 2 * 
-                                               sizeof(char *));
-               if (!rlm->servers) {
-                   syslog(LOG_CRIT, "get_realm_lists realloc");
-                   abort();
-               }
-               rlm->nservers *= 2;
-           }
-           rlm->servers[rlm->nused++] = strsave(server);
-       } else {
-           /* new realm */
-           if (nused + 1 >= ntotal) {
-               /* make more space */
-               rlm_list = (ZRealmname *)realloc((char *)rlm_list,
-                                               (unsigned)ntotal * 2 * 
-                                               sizeof(ZRealmname));
-               if (!rlm_list) {
-                   syslog(LOG_CRIT, "get_realm_lists realloc");
-                   abort();
-               }
-               ntotal *= 2;
-           }
-           rlm = &rlm_list[nused++];
-           strcpy(rlm->name, realm);
-           rlm->nused = 0;
-           rlm->nservers = 16;
-           rlm->servers = (char **)malloc(rlm->nservers * sizeof(char *));
-           if (!rlm->servers) {
-               syslog(LOG_CRIT, "get_realm_lists malloc");
-               abort();
-           }
-           rlm->servers[rlm->nused++] = strsave(server);
-       }
-    }
-    if (nused + 1 >= ntotal) {
-       rlm_list = (ZRealmname *)realloc((char *)rlm_list,
-                                       (unsigned)(ntotal + 1) * 
-                                       sizeof(ZRealmname));
-       if (!rlm_list) {
-           syslog(LOG_CRIT, "get_realm_lists realloc");
-           abort();
-       }
-    }
-    *rlm_list[nused].name = '\0';
-  
-    fclose(fp);
-    return(rlm_list);
-}
-
-Code_t 
-realm_send_realms(void)
-{
-    int cnt, retval;
-    for (cnt = 0; cnt < nrealms; cnt++) {
-       retval = subscr_send_realm_subs(&otherrealms[cnt]);
-       if (retval != ZERR_NONE)
-           return(retval);
-    }
-    return ZERR_NONE;
-}
-
-int
-realm_bound_for_realm(const char *realm, char *recip)
-{
-    char *rlm = NULL;
-    int remote = strcmp(ZGetRealm(), realm);
-    
-    if (recip)
-      rlm = strchr(recip, '@');
-    
-    if (!rlm && !remote) 
-       return 1;
-
-    if (rlm && strcmp(realm_expand_realm(rlm + 1), realm) == 0)
-       return 1;
-
-    return 0;
-}
-
-int
-realm_sender_in_realm(const char *realm, char *sender)
-{
-    char *rlm = NULL;
-    int remote = strcmp(ZGetRealm(), realm);
-
-    if (sender)
-       rlm = strchr(sender, '@');
-
-    if (!rlm && !remote)
-       return 1;
-
-    if (rlm && strcmp((rlm + 1), realm) == 0)
-       return 1;
-
-    return 0;
-}
-
-int sender_in_realm(ZNotice_t *notice)
-{
-  char *realm;
-
-  realm = strchr(notice->z_sender, '@');
-
-  if (!realm || !strcmp(realm + 1, ZGetRealm()))
-    return 1;
-
-  return 0;
-}
-
-ZRealm *
-realm_which_realm(struct sockaddr_in *who)
-{
-    ZRealm *realm;
-    struct sockaddr_in *addr;
-    int a, b;
-
-    if (who->sin_port != srv_addr.sin_port)
-       return 0;
-
-    /* loop through the realms */
-    for (realm = otherrealms, a = 0; a < nrealms; a++, realm++)
-       /* loop through the addresses for the realm */
-       for (addr = realm->addrs, b = 0; b < realm->count; b++, addr++)
-           if (addr->sin_addr.s_addr == who->sin_addr.s_addr)
-               return(realm);
-  
-    return 0;
-}
-
-ZRealm *
-realm_get_realm_by_name(char *name)
-{
-    int a;
-    ZRealm *realm;
-
-    /* First, look for an exact match (case insensitive) */
-    for (realm = otherrealms, a = 0; a < nrealms; a++, realm++)
-       if (!strcasecmp(realm->name, name))
-           return(realm);
-
-    /* Failing that, look for an inexact match */
-    for (realm = otherrealms, a = 0; a < nrealms; a++, realm++)
-       if (!strncasecmp(realm->name, name, strlen(name)))
-           return(realm);
-
-    return 0;
-}
-
-static void
-rlm_nack_cancel(register ZNotice_t *notice,
-               struct sockaddr_in *who)
-{
-    register ZRealm *which = realm_which_realm(who);
-    register Unacked *nacked;
-  
-    zdbug((LOG_DEBUG, "rlm_nack_cancel: %s:%08X,%08X",
-           inet_ntoa(notice->z_uid.zuid_addr),
-           notice->z_uid.tv.tv_sec, notice->z_uid.tv.tv_usec));
-
-    if (!which) {
-       syslog(LOG_ERR, "non-realm ack?");
-       return;
-    }
-
-    for (nacked = rlm_nacklist; nacked; nacked = nacked->next) {
-       if (&otherrealms[nacked->dest.rlm.rlm_idx] == which) {
-           /* First, note the realm appears to be up */
-           which->state = REALM_UP;
-           if (ZCompareUID(&nacked->uid, &notice->z_uid)) {
-               timer_reset(nacked->timer);
-        
-               if (nacked->ack_addr.sin_addr.s_addr)
-                   rlm_ack(notice, nacked);
-        
-               /* free the data */
-               free(nacked->packet);
-               Unacked_delete(nacked);
-               free(nacked);
-               return;
-           }
-       }
-    }
-    return;
-}
-
-static void
-rlm_ack(ZNotice_t *notice,
-       Unacked *nacked)
-{
-    ZNotice_t acknotice;
-    ZPacket_t ackpack;
-    int packlen;
-    Code_t retval;
-  
-    /* tell the original sender the result */
-    acknotice = *notice;
-    acknotice.z_message_len = strlen(acknotice.z_message) + 1;
-  
-    packlen = sizeof(ackpack);
-  
-    if ((retval = ZFormatSmallRawNotice(&acknotice, ackpack, &packlen)) 
-       != ZERR_NONE) {
-       syslog(LOG_ERR, "rlm_ack format: %s",
-              error_message(retval));
-       return;
-    }
-    zdbug((LOG_DEBUG, "rlm_ack sending to %s/%d",
-          inet_ntoa(nacked->ack_addr.sin_addr),
-          ntohs(nacked->ack_addr.sin_port)));
-    if ((retval = ZSetDestAddr(&nacked->ack_addr)) != ZERR_NONE) {
-       syslog(LOG_WARNING, "rlm_ack set addr: %s",
-              error_message(retval));
-       return;
-    }
-    if ((retval = ZSendPacket(ackpack, packlen, 0)) != ZERR_NONE) {
-       syslog(LOG_WARNING, "rlm_ack xmit: %s", error_message(retval));
-       return;
-    }
-}
-
-Code_t
-realm_dispatch(ZNotice_t *notice,
-              int auth,
-              struct sockaddr_in *who,
-              Server *server)
-{
-    ZRealm *realm;
-    struct sockaddr_in newwho;
-    Code_t status = ZERR_NONE;
-    char rlm_recipient[REALM_SZ + 1];
-    int external = 0;
-    String *notice_class;
-
-    if (notice->z_kind == SERVACK || notice->z_kind == SERVNAK) {
-       rlm_nack_cancel(notice, who);
-       return(ZERR_NONE);
-    }
-    /* set up a who for the real origin */
-    memset((caddr_t) &newwho, 0, sizeof(newwho));
-    newwho.sin_family = AF_INET;
-    newwho.sin_addr.s_addr = notice->z_sender_addr.s_addr;
-    newwho.sin_port = hm_port;
-    
-    /* check if it's a control message */
-    realm = realm_which_realm(who);
-
-    notice_class = make_string(notice->z_class,1);
-    
-    if (class_is_admin(notice_class)) {
-       syslog(LOG_WARNING, "%s sending admin opcode %s",
-              realm->name, notice->z_opcode);
-    } else if (class_is_hm(notice_class)) {
-       syslog(LOG_WARNING, "%s sending hm opcode %s",
-              realm->name, notice->z_opcode);
-    } else if (class_is_control(notice_class)) {
-       status = realm_control_dispatch(notice, auth, who,
-                                       server, realm);
-    } else if (class_is_ulogin(notice_class)) {
-       /* don't need to forward this */
-       if (server == me_server) {
-            sprintf(rlm_recipient, "@%s", realm->name);
-            notice->z_recipient = rlm_recipient;
-
-            sendit(notice, 1, who, 0);
-       }
-    } else if (class_is_ulocate(notice_class)) {
-       status = realm_ulocate_dispatch(notice, auth, who, server, realm);
-    } else {
-       /* redo the recipient */
-       if (*notice->z_recipient == '\0') {
-           sprintf(rlm_recipient, "@%s", realm->name);
-           notice->z_recipient = rlm_recipient;
-           external = 0;
-       } else if (realm_bound_for_realm(ZGetRealm(), notice->z_recipient)
-                  && *notice->z_recipient == '@') 
-       {
-           /* we're responsible for getting this message out */
-           external = 1;
-           notice->z_recipient = "";
-       }
-          
-       /* otherwise, send to local subscribers */
-       sendit(notice, auth, who, external);
-    }
-        
-    return(status);
-}
-
-void
-realm_init(void)
-{
-    Client *client;
-    ZRealmname *rlmnames;
-    ZRealm *rlm;
-    int ii, jj, found;
-    struct in_addr *addresses;
-    struct hostent *hp;
-    char list_file[128];
-    char rlmprinc[MAX_PRINCIPAL_SIZE];
-
-    sprintf(list_file, "%s/zephyr/%s", SYSCONFDIR, REALM_LIST_FILE);
-    rlmnames = get_realm_lists(list_file);
-    if (!rlmnames) {
-       zdbug((LOG_DEBUG, "No other realms"));
-       nrealms = 0;
-       return;
-    }
-    
-    for (nrealms = 0; *rlmnames[nrealms].name; nrealms++);
-    
-    otherrealms = (ZRealm *)malloc(nrealms * sizeof(ZRealm));
-    if (!otherrealms) {
-       syslog(LOG_CRIT, "malloc failed in realm_init");
-       abort();
-    }
-
-    for (ii = 0; ii < nrealms; ii++) {
-       rlm = &otherrealms[ii];
-       strcpy(rlm->name, rlmnames[ii].name);
-       
-       addresses = (struct in_addr *)malloc(rlmnames[ii].nused * 
-                                            sizeof(struct in_addr));
-       if (!addresses) {
-           syslog(LOG_CRIT, "malloc failed in realm_init");
-           abort();
-       }
-       /* convert names to addresses */
-       found = 0;
-       for (jj = 0; jj < rlmnames[ii].nused; jj++) {
-           hp = gethostbyname(rlmnames[ii].servers[jj]);
-           if (hp) {
-               memmove((caddr_t) &addresses[found], (caddr_t)hp->h_addr, 
-                       sizeof(struct in_addr));
-               found++;
-           } else
-               syslog(LOG_WARNING, "hostname failed, %s", 
-                      rlmnames[ii].servers[jj]);
-           /* free the hostname */
-           free(rlmnames[ii].servers[jj]);
-       }
-       rlm->count = found;
-       rlm->addrs = (struct sockaddr_in *)malloc(found * 
-                                                 sizeof (struct sockaddr_in));
-       if (!rlm->addrs) {
-           syslog(LOG_CRIT, "malloc failed in realm_init");
-           abort();
-       }
-       for (jj = 0; jj < rlm->count; jj++) {
-           rlm->addrs[jj].sin_family = AF_INET;
-           /* use the server port */
-           rlm->addrs[jj].sin_port = srv_addr.sin_port;
-           rlm->addrs[jj].sin_addr = addresses[jj];
-       }
-       client = (Client *) malloc(sizeof(Client));
-       if (!client) {
-           syslog(LOG_CRIT, "malloc failed in realm_init");
-           abort();
-       }
-       memset(&client->addr, 0, sizeof(struct sockaddr_in));
-#ifdef HAVE_KRB5
-        client->session_keyblock = NULL;
-#else
-#ifdef HAVE_KRB4
-       memset(&client->session_key, 0, sizeof(client->session_key));
-#endif
-#endif
-       snprintf(rlmprinc, MAX_PRINCIPAL_SIZE, "%s.%s@%s", SERVER_SERVICE, SERVER_INSTANCE, 
-               rlm->name);
-       client->principal = make_string(rlmprinc, 0);
-       client->last_send = 0;
-       client->last_ack = NOW;
-       client->subs = NULL;
-       client->realm = rlm;
-       client->addr.sin_family = 0;
-       client->addr.sin_port = 0;
-       client->addr.sin_addr.s_addr = 0;
-    
-       rlm->client = client;
-       rlm->idx = (rlm->count) ? random() % rlm->count : 0;
-       rlm->subs = NULL;
-       rlm->remsubs = NULL;
-       rlm->child_pid = 0;
-       /* Assume the best */
-       rlm->state = REALM_TARDY;
-       rlm->have_tkt = 1;
-       free(rlmnames[ii].servers);
-       free(addresses);
-    }
-    free(rlmnames);
-}
-
-void
-realm_deathgram(Server *server)
-{
-    ZRealm *realm;
-    int jj = 0;
-
-    /* Get it out once, and assume foreign servers will share */
-    for (realm = otherrealms, jj = 0; jj < nrealms; jj++, realm++) {
-       ZNotice_t snotice;
-       char *pack;
-       char rlm_recipient[REALM_SZ + 1];
-       int packlen, retval;
-    
-       memset (&snotice, 0, sizeof (snotice));
-
-       snotice.z_kind = ACKED;
-       snotice.z_port = srv_addr.sin_port;
-       snotice.z_class = ZEPHYR_CTL_CLASS;
-       snotice.z_class_inst = ZEPHYR_CTL_REALM;
-       snotice.z_opcode = SERVER_SHUTDOWN;
-       snotice.z_sender = myname; /* my host name */
-       sprintf(rlm_recipient, "@%s", realm->name);
-       snotice.z_recipient = rlm_recipient;
-       snotice.z_default_format = "";
-       snotice.z_num_other_fields = 0;
-       snotice.z_default_format = "";
-       snotice.z_message = (server) ? server->addr_str : NULL;
-       snotice.z_message_len = (server) ? strlen(server->addr_str) + 1 : 0;
-
-       zdbug((LOG_DEBUG, "rlm_deathgram: suggesting %s to %s", 
-              (server) ? server->addr_str : "nothing", realm->name));
-
-#ifdef HAVE_KRB5
-       if (!ticket_lookup(realm->name))
-           if ((retval = ticket_retrieve(realm)) != ZERR_NONE) {
-               syslog(LOG_WARNING, "rlm_deathgram failed: %s", 
-                      error_message(retval));
-               return;
-           }
-#endif
-
-       if ((retval = ZFormatNotice(&snotice, &pack, &packlen, ZCAUTH)) 
-           != ZERR_NONE) 
-       {
-           syslog(LOG_WARNING, "rlm_deathgram format: %s",
-                  error_message(retval));
-           return;
-       }
-       if ((retval = ZParseNotice(pack, packlen, &snotice)) != ZERR_NONE) {
-           syslog(LOG_WARNING, "rlm_deathgram parse: %s",
-                  error_message(retval));
-           free(pack);
-           return;
-       }
-
-       realm_handoff(&snotice, 1, NULL, realm, 0);
-       free(pack);
-    }
-}
-
-void
-realm_wakeup(void)
-{
-    int jj, found = 0;
-    ZRealm *realm;
-    
-    for (jj = 1; jj < nservers; jj++) {    /* skip limbo server */
-       if (jj != me_server_idx && otherservers[jj].state == SERV_UP)
-           found++;
-    }
-  
-    if (nservers < 2 || !found) {
-       /* if we're the only server up, send a REALM_BOOT to one of their 
-          servers here */
-       for (realm = otherrealms, jj = 0; jj < nrealms; jj++, realm++) {
-           ZNotice_t snotice;
-           char *pack;
-           char rlm_recipient[REALM_SZ + 1];
-           int packlen, retval;
-           
-           memset (&snotice, 0, sizeof (snotice));
-
-           snotice.z_opcode = REALM_BOOT;
-           snotice.z_port = srv_addr.sin_port;
-           snotice.z_class_inst = ZEPHYR_CTL_REALM;
-           snotice.z_class = ZEPHYR_CTL_CLASS;
-           snotice.z_recipient = "";
-           snotice.z_kind = ACKED;
-           snotice.z_num_other_fields = 0;
-           snotice.z_default_format = "";
-           snotice.z_sender = myname; /* my host name */
-           sprintf(rlm_recipient, "@%s", realm->name);
-           snotice.z_recipient = rlm_recipient;
-           snotice.z_default_format = "";
-           snotice.z_message = NULL;
-           snotice.z_message_len = 0;
-
-#ifdef HAVE_KRB5
-           if (!ticket_lookup(realm->name))
-               if ((retval = ticket_retrieve(realm)) != ZERR_NONE) {
-                   syslog(LOG_WARNING, "rlm_wakeup failed: %s", 
-                          error_message(retval));
-                   continue;
-               }
-#endif
-
-           if ((retval = ZFormatNotice(&snotice, &pack, &packlen, ZAUTH)) 
-               != ZERR_NONE) 
-           {
-               syslog(LOG_WARNING, "rlm_wakeup format: %s",
-                      error_message(retval));
-               return;
-           }
-           if ((retval = ZParseNotice(pack, packlen, &snotice)) 
-               != ZERR_NONE) {
-               syslog(LOG_WARNING, "rlm_wakeup parse: %s",
-                      error_message(retval));
-               free(pack);
-               return;
-           }
-
-           realm_handoff(&snotice, 1, NULL, realm, 0);
-           free(pack);
-       }      
-    }
-}
-
-static Code_t
-realm_ulocate_dispatch(ZNotice_t *notice,
-                      int auth,
-                      struct sockaddr_in *who,
-                      Server *server,
-                      ZRealm *realm)
-{
-    register char *opcode = notice->z_opcode;
-  
-    if (!auth) {
-       syslog(LOG_WARNING, "unauth locate msg from %s (%s/%s/%s)",
-              inet_ntoa(who->sin_addr), 
-              notice->z_class, notice->z_class_inst, 
-              notice->z_opcode); /* XXX */
-       clt_ack(notice, who, AUTH_FAILED);
-       return(ZERR_NONE);
-    }
-    
-    if (!strcmp(opcode, REALM_REQ_LOCATE)) {
-       ack(notice, who);
-       ulogin_realm_locate(notice, who, realm);
-    } else if (!strcmp(opcode, REALM_ANS_LOCATE)) {
-       ack(notice, who);
-       ulogin_relay_locate(notice, who);
-    } else {
-       syslog(LOG_WARNING, "%s unknown/illegal loc opcode %s",
-              realm->name, opcode);
-       nack(notice, who);
-    }
-    
-    return(ZERR_NONE);
-}
-
-
-Code_t
-realm_control_dispatch(ZNotice_t *notice,
-                      int auth,
-                      struct sockaddr_in *who,
-                      Server *server,
-                      ZRealm *realm)
-{
-    register char *opcode = notice->z_opcode;
-    Code_t status;
-
-    if (!auth) {
-       syslog(LOG_WARNING, "unauth ctl msg from %s (%s/%s/%s)",
-              inet_ntoa(who->sin_addr), 
-              notice->z_class, notice->z_class_inst, 
-              notice->z_opcode); /* XXX */
-       if (server == me_server)
-           clt_ack(notice, who, AUTH_FAILED);
-       return(ZERR_NONE);
-    }
-
-    if (strcmp(notice->z_class_inst, ZEPHYR_CTL_REALM)) {
-       syslog(LOG_WARNING, "Invalid rlm_dispatch instance %s",
-              notice->z_class_inst);
-       return(ZERR_NONE);
-    }
-
-    if (!strcmp(opcode, REALM_REQ_SUBSCRIBE) || !strcmp(opcode, REALM_ADD_SUBSCRIBE)) {
-       /* try to add subscriptions */
-       /* attempts to get defaults are ignored */
-       if ((status = subscr_foreign_user(notice, who, server, realm)) != ZERR_NONE) {
-           clt_ack(notice, who, AUTH_FAILED);
-       } else if (server == me_server) {
-           server_forward(notice, auth, who);
-           ack(notice, who);
-       }
-    } else if (!strcmp(opcode, REALM_UNSUBSCRIBE)) {
-       /* try to remove subscriptions */
-       if ((status = subscr_realm_cancel(who, notice, realm)) != ZERR_NONE) {
-           clt_ack(notice, who, NOT_FOUND);
-       } else if (server == me_server) {
-           server_forward(notice, auth, who);
-           ack(notice, who);
-       }
-    } else if (!strcmp(opcode, REALM_BOOT)) {
-       zdbug((LOG_DEBUG, "got a REALM_BOOT from %d (me %d)", server, me_server));
-       realm->state = REALM_STARTING;
-       realm_set_server(who, realm);
-#ifdef REALM_MGMT
-       /* resend subscriptions but only if this was to us */
-       if (server == me_server) {
-           if ((status = subscr_realm_subs(realm)) != ZERR_NONE) {
-               clt_ack(notice, who, NOT_FOUND);
-           } else {
-               /* do forward the hint in case it ever matters */
-               server_forward(notice, auth, who);
-               ack(notice, who);
-           }
-       }
-#endif
-    } else if (!strcmp(opcode, SERVER_SHUTDOWN)) {
-       /* try to remove subscriptions */
-       if ((status = realm_new_server(who, notice, realm)) != ZERR_NONE) {
-           clt_ack(notice, who, NOT_FOUND);
-       } else if (server == me_server) {
-           server_forward(notice, auth, who);
-           ack(notice, who);
-       }
-    } else {
-       syslog(LOG_WARNING, "%s unknown/illegal ctl opcode %s",
-              realm->name, opcode);
-       if (server == me_server)
-           nack(notice, who);
-       return(ZERR_NONE);
-    }
-    return(ZERR_NONE);
-}
-
-static Code_t
-realm_new_server(struct sockaddr_in *sin,
-                ZNotice_t *notice,
-                ZRealm *realm)
-{
-    unsigned long addr;
-    ZRealm *rlm;
-    struct sockaddr_in sinaddr;
-    int srvidx;
-
-    if (!realm)
-       return ZSRV_NORLM;
-
-    srvidx = realm_get_idx_by_addr(realm, sin);
-    zdbug((LOG_DEBUG, "rlm_new_srv: message from %d in %s (%s)", 
-          srvidx, realm->name, inet_ntoa(sin->sin_addr)));
-    if (realm->idx == srvidx) {
-       if (notice->z_message_len) {
-           addr = inet_addr(notice->z_message);
-           sinaddr.sin_addr.s_addr = addr;
-           rlm = realm_which_realm(&sinaddr);
-           /* Not exactly */
-           if (!rlm || (rlm != realm))
-               return ZSRV_NORLM;
-           realm->idx = realm_get_idx_by_addr(realm, &sinaddr);
-       } else {
-           realm->idx = (realm->idx + 1) % realm->count;
-       } 
-       zdbug((LOG_DEBUG, "rlm_new_srv: switched servers (%s)", inet_ntoa((realm->addrs[realm->idx]).sin_addr)));
-    } else {
-      zdbug((LOG_DEBUG, "rlm_new_srv: not switching servers (%s)", inet_ntoa((realm->addrs[realm->idx]).sin_addr)));
-    }
-    return 0;
-}
-
-static Code_t
-realm_set_server(struct sockaddr_in *sin,
-                ZRealm *realm)
-{
-    ZRealm *rlm;
-
-    rlm = realm_which_realm(sin);
-    /* Not exactly */
-    if (!rlm || (rlm != realm))
-       return ZSRV_NORLM;
-    realm->idx = realm_get_idx_by_addr(realm, sin);
-    zdbug((LOG_DEBUG, "rlm_pick_srv: switched servers (%s)", inet_ntoa((realm->addrs[realm->idx]).sin_addr)));
-
-    return 0;
-}
-
-void
-realm_handoff(ZNotice_t *notice,
-             int auth,
-             struct sockaddr_in *who,
-             ZRealm *realm,
-             int ack_to_sender)
-{
-#ifdef HAVE_KRB5
-    Code_t retval;
-
-    if (!auth) {
-       zdbug((LOG_DEBUG, "realm_sendit unauthentic to realm %s", 
-              realm->name));
-       realm_sendit(notice, who, auth, realm, ack_to_sender);
-       return;
-    }
-  
-    if (!ticket_lookup(realm->name))
-       if ((retval = ticket_retrieve(realm)) != ZERR_NONE) {
-           syslog(LOG_WARNING, "rlm_handoff failed: %s", 
-                  error_message(retval));
-           realm_sendit(notice, who, auth, realm, ack_to_sender);
-           return;
-       }
-    
-    zdbug((LOG_DEBUG, "realm_sendit to realm %s auth %d", realm->name, auth)); 
-    /* valid ticket available now, send the message */
-    retval = realm_sendit_auth(notice, who, auth, realm, ack_to_sender);
-#else /* HAVE_KRB4 */
-    realm_sendit(notice, who, auth, realm, ack_to_sender);
-#endif /* HAVE_KRB4 */
-}
-
-static void
-realm_sendit(ZNotice_t *notice,
-            struct sockaddr_in *who,
-            int auth,
-            ZRealm *realm,
-            int ack_to_sender)
-{
-    caddr_t pack;
-    int packlen;
-    Code_t retval;
-    Unacked *nacked;
-
-    notice->z_auth = auth;
-  
-    /* format the notice */
-    if ((retval = ZFormatRawNotice(notice, &pack, &packlen)) != ZERR_NONE) {
-       syslog(LOG_WARNING, "rlm_sendit format: %s",
-              error_message(retval));
-       return;
-    }
-  
-    /* now send */
-    if ((retval = ZSetDestAddr(&realm->addrs[realm->idx])) != ZERR_NONE) {
-       syslog(LOG_WARNING, "rlm_sendit set addr: %s",
-              error_message(retval));
-       free(pack);
-       return;
-    }
-    if ((retval = ZSendPacket(pack, packlen, 0)) != ZERR_NONE) {
-       syslog(LOG_WARNING, "rlm_sendit xmit: %s", error_message(retval));
-       free(pack);
-       return;
-    }
-    
-    /* now we've sent it, mark it as not ack'ed */
-  
-    if (!(nacked = (Unacked *)malloc(sizeof(Unacked)))) {
-       /* no space: just punt */
-       syslog(LOG_ERR, "rlm_sendit nack malloc");
-       free(pack);
-       return;
-    }
-
-    nacked->client = NULL;
-    nacked->rexmits = 0;
-    nacked->packet = pack;
-    nacked->dest.rlm.rlm_idx = realm - otherrealms;
-    nacked->dest.rlm.rlm_srv_idx = realm->idx;
-    nacked->packsz = packlen;
-    nacked->uid = notice->z_uid;
-    if (ack_to_sender)
-       nacked->ack_addr = *who;
-    else
-       nacked->ack_addr.sin_addr.s_addr = 0;
-
-    /* set a timer to retransmit */
-    nacked->timer = timer_set_rel(rexmit_times[0], rlm_rexmit, nacked);
-    /* chain in */
-    Unacked_insert(&rlm_nacklist, nacked);
-    return;
-}
-
-static void
-packet_ctl_nack(Unacked *nackpacket)
-{
-    ZNotice_t notice;
-
-    /* extract the notice */
-    ZParseNotice(nackpacket->packet, nackpacket->packsz, &notice);
-    if (nackpacket->ack_addr.sin_addr.s_addr != 0)
-       nack(&notice, &nackpacket->ack_addr);
-    else
-       syslog(LOG_WARNING, "would have acked nobody (%s/%s/%s)",
-              notice.z_class, notice.z_class_inst, notice.z_opcode); /* XXX */
-}
-
-static void
-rlm_rexmit(void *arg)
-{
-    Unacked *nackpacket = (Unacked *) arg;
-    Code_t retval;
-    register ZRealm *realm;
-
-    zdbug((LOG_DEBUG,"rlm_rexmit"));
-
-    realm = &otherrealms[nackpacket->dest.rlm.rlm_idx];
-
-    zdbug((LOG_DEBUG, "rlm_rexmit: sending to %s:%d (%d)",
-          realm->name, realm->idx, nackpacket->rexmits));
-
-    if (realm->count == 0)
-       return;
-
-    /* Check to see if we've retransmitted as many times as we can */
-    if (nackpacket->rexmits >= (NUM_REXMIT_TIMES * realm->count)) {
-       /* give a server ack that the packet is lost/realm dead */
-       packet_ctl_nack(nackpacket);
-       Unacked_delete(nackpacket);
-       
-       zdbug((LOG_DEBUG, "rlm_rexmit: %s appears dead", realm->name));
-       realm->state = REALM_DEAD;
-
-       free(nackpacket->packet);
-       free(nackpacket);
-       return;
-    }
-
-    /* if we've reached our limit, move on to the next server */
-    if ((realm->state == REALM_TARDY) || 
-       (nackpacket->rexmits && 
-        !((nackpacket->rexmits+1) % (NUM_REXMIT_TIMES/3)))) 
-    {
-       realm->idx = (realm->idx + 1) % realm->count;
-       zdbug((LOG_DEBUG, "rlm_rexmit: %s switching servers:%d (%s)", 
-              realm->name, realm->idx, 
-              inet_ntoa((realm->addrs[realm->idx]).sin_addr)));
-    }
-
-    /* throttle back if it looks like the realm is down */
-    if ((realm->state != REALM_DEAD) || 
-       ((nackpacket->rexmits % (realm->count+1)) == 1)) {
-       /* do the retransmit */
-       retval = ZSetDestAddr(&realm->addrs[realm->idx]);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_WARNING, "rlm_rexmit set addr: %s", 
-                  error_message(retval));
-       } else {
-           retval = ZSendPacket(nackpacket->packet, nackpacket->packsz, 0);
-           if (retval != ZERR_NONE)
-               syslog(LOG_WARNING, "rlm_rexmit xmit: %s",
-                      error_message(retval));
-       }
-       /* no per-server nack queues for foreign realms yet, doesn't matter */
-       nackpacket->dest.rlm.rlm_srv_idx = realm->idx;
-       zdbug((LOG_DEBUG, "rlm_rexmit(%s): send to %s", realm->name,
-              inet_ntoa((realm->addrs[realm->idx]).sin_addr)));
-    } else {
-       zdbug((LOG_DEBUG, "rlm_rexmit(%s): not sending to %s", realm->name,
-              inet_ntoa((realm->addrs[realm->idx]).sin_addr)));
-    }
-
-    /* reset the timer */
-    nackpacket->rexmits++;
-    nackpacket->timer = 
-       timer_set_rel(rexmit_times[nackpacket->rexmits%NUM_REXMIT_TIMES], 
-                     rlm_rexmit, nackpacket);
-    if (rexmit_times[nackpacket->rexmits%NUM_REXMIT_TIMES] == -1)
-       zdbug((LOG_DEBUG, "rlm_rexmit(%s): would send at -1 to %s", 
-              realm->name, inet_ntoa((realm->addrs[realm->idx]).sin_addr)));
-    
-    return;
-}
-
-void
-realm_dump_realms(FILE *fp)
-{
-    register int ii, jj;
-  
-    for (ii = 0; ii < nrealms; ii++) {
-       (void) fprintf(fp, "%d:%s\n", ii, otherrealms[ii].name);
-       for (jj = 0; jj < otherrealms[ii].count; jj++) {
-           (void) fprintf(fp, "\t%s\n",
-                          inet_ntoa(otherrealms[ii].addrs[jj].sin_addr));
-       }
-       /* dump the subs */
-       subscr_dump_subs(fp, otherrealms[ii].subs);
-    }
-}
-
-#ifdef HAVE_KRB5
-static Code_t
-realm_sendit_auth(ZNotice_t *notice,
-                 struct sockaddr_in *who,
-                 int auth,
-                 ZRealm *realm,
-                 int ack_to_sender)
-{
-    char *buffer, *ptr;
-    int buffer_len, hdrlen, offset, fragsize, message_len;
-    int origoffset, origlen;
-    Code_t retval;
-    Unacked *nacked;
-    char multi[64];
-    ZNotice_t partnotice, newnotice;
-
-    offset = 0;
-
-    buffer = (char *) malloc(sizeof(ZPacket_t));
-    if (!buffer) {
-        syslog(LOG_ERR, "realm_sendit_auth malloc");
-        return ENOMEM;                 /* DON'T put on nack list */
-    }
-
-    buffer_len = sizeof(ZPacket_t);
-
-    newnotice = *notice;
-
-    hdrlen = 0;
-    retval = ZMakeZcodeRealmAuthentication(&newnotice, buffer, buffer_len,
-                                          &hdrlen, realm->name);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "rlm_sendit_auth make zcksum: %s", 
-              error_message(retval));
-       return (retval);
-    }
-
-    /* set the dest addr */
-    retval = ZSetDestAddr(&realm->addrs[realm->idx]);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "rlm_sendit_auth set addr: %s", 
-              error_message(retval));
-       return (retval);
-    }
-  
-    /* This is not terribly pretty, but it does do its job. 
-     * If a packet we get that needs to get sent off to another realm is
-     * too big after we slap on our authent, we refragment it further,
-     * a la Z_SendFragmentedNotice. This obviates the need for what
-     * used to be done in ZFormatAuthenticRealmNotice, as we do it here.
-     * At some point it should be pulled back out into its own function,
-     * but only the server uses it.
-     */ 
-
-    if ((notice->z_message_len+hdrlen > buffer_len) || 
-       (notice->z_message_len+hdrlen > Z_MAXPKTLEN)) {
-
-       /* Reallocate buffers inside the refragmenter */
-       free(buffer);
-
-       partnotice = *notice;
-
-       origoffset = 0;
-       origlen = notice->z_message_len;
-
-       if (notice->z_multinotice && strcmp(notice->z_multinotice, ""))
-           if (sscanf(notice->z_multinotice, "%d/%d", &origoffset, 
-                      &origlen) != 2) {
-               syslog(LOG_WARNING, "rlm_sendit_auth frag: parse failed");
-               return ZERR_BADFIELD;
-           }
-
-       fragsize = Z_MAXPKTLEN-hdrlen-Z_FRAGFUDGE;
-
-       while (offset < notice->z_message_len || !notice->z_message_len) {
-           (void) sprintf(multi, "%d/%d", offset+origoffset, origlen);
-           partnotice.z_multinotice = multi;
-           if (offset > 0) {
-               (void) Z_gettimeofday(&partnotice.z_uid.tv, 
-                                     (struct timezone *)0);
-               partnotice.z_uid.tv.tv_sec = htonl((u_long) 
-                                                  partnotice.z_uid.tv.tv_sec);
-               partnotice.z_uid.tv.tv_usec = 
-                   htonl((u_long) partnotice.z_uid.tv.tv_usec);
-               (void) memcpy((char *)&partnotice.z_uid.zuid_addr, &__My_addr, 
-                             sizeof(__My_addr));
-               partnotice.z_sender_sockaddr.ip4.sin_family = AF_INET; /* XXX */
-               (void) memcpy((char *)&partnotice.z_sender_sockaddr.ip4.sin_addr,
-                             &__My_addr, sizeof(__My_addr));
-           }
-           message_len = min(notice->z_message_len-offset, fragsize);
-           partnotice.z_message = notice->z_message+offset;
-           partnotice.z_message_len = message_len;
-
-           buffer = (char *) malloc(sizeof(ZPacket_t));
-           if (!buffer) {
-               syslog(LOG_ERR, "realm_sendit_auth malloc");
-               return ENOMEM;                 /* DON'T put on nack list */
-           }
-
-           buffer_len = sizeof(ZPacket_t);
-           
-           retval = ZMakeZcodeRealmAuthentication(&partnotice, buffer, 
-                                                  buffer_len, &hdrlen, 
-                                                  realm->name);
-           if (retval != ZERR_NONE) {
-               syslog(LOG_WARNING, "rlm_sendit_auth set addr: %s", 
-                      error_message(retval));
-               free(buffer);
-               return (retval);
-           }
-
-           ptr = buffer+hdrlen;
-
-           (void) memcpy(ptr, partnotice.z_message, partnotice.z_message_len);
-
-           buffer_len = hdrlen+partnotice.z_message_len;
-
-           /* now send */
-           if ((retval = ZSendPacket(buffer, buffer_len, 0)) != ZERR_NONE) {
-               syslog(LOG_WARNING, "rlm_sendit_auth xmit: %s", 
-                      error_message(retval));
-               free(buffer);
-               return(retval);
-           }
-
-           if (!(nacked = (Unacked *)malloc(sizeof(Unacked)))) {
-               /* no space: just punt */
-               syslog(LOG_ERR, "rlm_sendit_auth nack malloc");
-               free(buffer);
-               return ENOMEM;
-           }
-
-           nacked->rexmits = 0;
-           nacked->packet = buffer;
-           nacked->dest.rlm.rlm_idx = realm - otherrealms;
-           nacked->dest.rlm.rlm_srv_idx = realm->idx;
-           nacked->packsz = buffer_len;
-           nacked->uid = partnotice.z_uid;
-
-           /* Do the ack for the last frag, below */
-           if (ack_to_sender)
-               nacked->ack_addr = *who;
-           else
-               nacked->ack_addr.sin_addr.s_addr = 0;
-
-           /* set a timer to retransmit */
-           nacked->timer = timer_set_rel(rexmit_times[0], rlm_rexmit, nacked);
-
-           /* chain in */
-           Unacked_insert(&rlm_nacklist, nacked);
-
-           offset += fragsize;
-           
-           if (!notice->z_message_len)
-               break;
-       }
-    }
-    else {
-       /* This is easy, no further fragmentation needed */
-       ptr = buffer+hdrlen;
-
-       (void) memcpy(ptr, newnotice.z_message, newnotice.z_message_len);
-
-        buffer_len = hdrlen+newnotice.z_message_len;
-    
-       /* now send */
-       if ((retval = ZSendPacket(buffer, buffer_len, 0)) != ZERR_NONE) {
-           syslog(LOG_WARNING, "rlm_sendit_auth xmit: %s", 
-                  error_message(retval));
-           free(buffer);
-           return(retval);
-       }
-
-       /* now we've sent it, mark it as not ack'ed */
-    
-       if (!(nacked = (Unacked *)malloc(sizeof(Unacked)))) {
-           /* no space: just punt */
-           syslog(LOG_ERR, "rlm_sendit_auth nack malloc");
-           free(buffer);
-           return 0;
-       }
-
-       nacked->rexmits = 0;
-       nacked->packet = buffer;
-       nacked->dest.rlm.rlm_idx = realm - otherrealms;
-       nacked->dest.rlm.rlm_srv_idx = realm->idx;
-       nacked->packsz = buffer_len;
-       nacked->uid = notice->z_uid;
-       
-       /* Do the ack for the last frag, below */
-       if (ack_to_sender)
-           nacked->ack_addr = *who;
-       else
-           nacked->ack_addr.sin_addr.s_addr = 0;
-    
-       /* set a timer to retransmit */
-       nacked->timer = timer_set_rel(rexmit_times[0], rlm_rexmit, nacked);
-       /* chain in */
-       Unacked_insert(&rlm_nacklist, nacked);
-    }
-    return 0;
-}
-
-static int
-ticket_lookup(char *realm)
-{
-    krb5_error_code result;
-    krb5_timestamp sec;
-    krb5_ccache ccache; 
-    krb5_creds creds_in, *creds; 
-
-    result = krb5_cc_default(Z_krb5_ctx, &ccache); 
-    if (result) 
-      return 0;
-
-    memset(&creds_in, 0, sizeof(creds_in)); 
-    result = krb5_cc_get_principal(Z_krb5_ctx, ccache, &creds_in.client); 
-    if (result) {
-      krb5_cc_close(Z_krb5_ctx, ccache);
-      return 0;
-    }
-
-    result = krb5_build_principal(Z_krb5_ctx, &creds_in.server, 
-                                  strlen(realm), 
-                                  realm, 
-                                  SERVER_KRB5_SERVICE, SERVER_INSTANCE, 0); 
-    if (result) {
-      krb5_cc_close(Z_krb5_ctx, ccache);
-      return 0;
-    }
-
-    result = krb5_get_credentials(Z_krb5_ctx, 0 /* flags */, ccache, 
-                                  &creds_in, &creds); 
-    krb5_cc_close(Z_krb5_ctx, ccache);
-    /* good ticket? */
-
-    krb5_timeofday (Z_krb5_ctx, &sec);
-    krb5_free_cred_contents(Z_krb5_ctx, &creds_in); /* hope this is OK */ 
-    if ((result == 0) && (sec < creds->times.endtime)) {
-      krb5_free_creds(Z_krb5_ctx, creds);
-      return (1);
-    }
-    if (!result) krb5_free_creds(Z_krb5_ctx, creds);
-
-    return (0);
-}
-
-static Code_t
-ticket_retrieve(ZRealm *realm)
-{
-    int pid;
-    krb5_ccache ccache;
-    krb5_error_code result; 
-    krb5_creds creds_in, *creds; 
-    
-    get_tgt();
-
-    if (realm->child_pid) 
-       /* Right idea. Basically, we haven't gotten it yet */
-       return KRB5KRB_AP_ERR_TKT_EXPIRED;
-
-    if (realm->have_tkt) {
-       /* Get a pointer to the default ccache. We don't need to free this. */ 
-       result = krb5_cc_default(Z_krb5_ctx, &ccache); 
-
-       /* GRRR.  There's no allocator or constructor for krb5_creds */ 
-       /* GRRR.  It would be nice if this API were documented at all */ 
-       memset(&creds_in, 0, sizeof(creds_in)); 
-       if (!result) 
-           result = krb5_cc_get_principal(Z_krb5_ctx, ccache, &creds_in.client); 
-       /* construct the service principal */ 
-       if (!result)  
-           result = krb5_build_principal(Z_krb5_ctx, &creds_in.server, 
-                                         strlen(realm->name), realm->name, 
-                                         SERVER_KRB5_SERVICE, SERVER_INSTANCE, 
-                                         0); 
-
-       /* HOLDING: creds_in.server */ 
-     
-       /* look up or get the credentials we need */ 
-       if (!result) 
-           result = krb5_get_credentials(Z_krb5_ctx, 0 /* flags */, ccache, 
-                                         &creds_in, &creds); 
-       krb5_cc_close(Z_krb5_ctx, ccache);
-       krb5_free_cred_contents(Z_krb5_ctx, &creds_in); /* hope this is OK */ 
-       if (!result) {
-           krb5_free_creds(Z_krb5_ctx, creds); 
-           return 0; 
-       }
-    } else {
-       syslog(LOG_ERR, "tkt_rtrv: don't have ticket, but have no child");
-        result = KRB5KRB_AP_ERR_TKT_EXPIRED;
-    }
-    pid = fork();
-    if (pid < 0) {
-       syslog(LOG_ERR, "tkt_rtrv: can't fork");
-       return errno;
-    }
-    else if (pid == 0) {
-#ifdef _POSIX_VERSION
-       struct sigaction action;
-
-       action.sa_flags = 0;
-       sigemptyset(&action.sa_mask);
-       action.sa_handler = 0;
-       sigaction(SIGCHLD, &action, NULL);
-       sigaction(SIGINT, &action, NULL);
-       sigaction(SIGTERM, &action, NULL);
-       sigaction(SIGUSR1, &action, NULL);
-       sigaction(SIGUSR2, &action, NULL);
-       sigaction(SIGFPE, &action, NULL);
-       sigaction(SIGHUP, &action, NULL);
-#ifdef SIGEMT
-       sigaction(SIGEMT, &action, NULL);
-#endif
-#else
-       signal(SIGCHLD, SIG_DFL);
-       signal(SIGINT, SIG_DFL);
-       signal(SIGTERM, SIG_DFL);
-       signal(SIGUSR1, SIG_DFL);
-       signal(SIGUSR2, SIG_DFL);
-       signal(SIGFPE, SIG_DFL);
-       signal(SIGHUP, SIG_DFL);
-#ifdef SIGEMT
-       signal(SIGEMT, SIG_DFL);
-#endif
-#endif
-
-       syslog(LOG_INFO, "tkt_rtrv running for %s", realm->name);
-       while (1) {
-           /* Get a pointer to the default ccache. We don't need to free this. */ 
-           result = krb5_cc_default(Z_krb5_ctx, &ccache); 
-
-           /* GRRR.  There's no allocator or constructor for krb5_creds */ 
-           /* GRRR.  It would be nice if this API were documented at all */ 
-           memset(&creds_in, 0, sizeof(creds_in)); 
-           if (!result) 
-               result = krb5_cc_get_principal(Z_krb5_ctx, ccache, &creds_in.client); 
-           /* construct the service principal */ 
-           if (!result)  
-               result = krb5_build_principal(Z_krb5_ctx, &creds_in.server, 
-                                             strlen(realm->name), realm->name, 
-                                             SERVER_KRB5_SERVICE, SERVER_INSTANCE, 
-                                             0); 
-
-           /* HOLDING: creds_in.server */ 
-           
-           /* look up or get the credentials we need */ 
-           if (!result) 
-               result = krb5_get_credentials(Z_krb5_ctx, 0 /* flags */, ccache, 
-                                             &creds_in, &creds); 
-           krb5_cc_close(Z_krb5_ctx, ccache);
-           krb5_free_cred_contents(Z_krb5_ctx, &creds_in); /* hope this is OK */ 
-           if (!result) {
-               krb5_free_creds(Z_krb5_ctx, creds); 
-               syslog(LOG_INFO, "tkt_rtrv succeeded for %s", realm->name);
-               exit(0);
-           }
-      
-           /* Sleep a little while before retrying */
-           sleep(30);
-       }
-    } else {
-       realm->child_pid = pid;
-       realm->have_tkt = 0;
-
-       syslog(LOG_WARNING, "tkt_rtrv: %s: %d", realm->name,
-              result);
-       return (result);
-    }
-}
-#endif /* HAVE_KRB5 */
-
diff --git a/zephyr/server/server.c b/zephyr/server/server.c
deleted file mode 100644 (file)
index ddacead..0000000
+++ /dev/null
@@ -1,1533 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for communication with other servers.
- *
- *     Created by:     John T. Kohl
- *
- *     $Source: /afs/dev.mit.edu/source/repository/athena/lib/zephyr/server/server.c,v $
- *     $Author: kcr $
- *
- *     Copyright (c) 1987, 1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"
-#include <sys/socket.h>
-
-#ifndef lint
-#ifndef SABER
-static const char rcsid_server_c[] = "$Id: server.c 2157 2008-01-21 20:06:42Z kcr $";
-#endif
-#endif
-
-#define SRV_NACKTAB_HASHSIZE           1023
-#define SRV_NACKTAB_HASHVAL(which, uid)        (((which) ^ (uid).zuid_addr.s_addr ^ \
-                                         (uid).tv.tv_sec ^ (uid).tv.tv_usec) \
-                                        % SRV_NACKTAB_HASHSIZE)
-/*
- * Server manager.  Deal with  traffic to and from other servers.
- *
- * void server_init()
- *
- * void server_shutdown()
- *
- * void server_timo(which)
- *     Server *which;
- *
- * void server_dispatch(notice, auth, who)
- *     ZNotice_t *notice;
- *     int auth;
- *     struct sockaddr_in *who;
- *
- * void server_recover(client)
- *     Client *client;
- *
- * void server_adispatch(notice, auth, who, server)
- *     ZNotice_t *notice;
- *     int auth;
- *     struct sockaddr_in *who;
- *     Server *server;
- *
- * void server_forward(notice, auth, who)
- *     ZNotice_t *notice;
- *     int auth;
- *     struct sockaddr_in *who;
- *
- * Server *server_which_server(who)
- *     struct sockaddr_in *who;
- *
- * void server_kill_clt(client);
- *     Client *client;
- *
- * void server_dump_servers(fp);
- *     FILE *fp;
- *
- * void server_reset();
- */
-
-static void server_flush __P((Server *));
-static void hello_respond __P((struct sockaddr_in *, int, int));
-static void srv_responded __P((struct sockaddr_in *));
-static void send_msg __P((struct sockaddr_in *, char *, int));
-static void send_msg_list __P((struct sockaddr_in *, char *, char **, int,
-                              int));
-static void srv_nack_cancel __P((ZNotice_t *, struct sockaddr_in *));
-static void srv_nack_release __P((Server *));
-static void srv_nack_renumber  __P((int *));
-static void send_stats __P((struct sockaddr_in *));
-static void server_queue __P((Server *, int, void *, int,
-                             struct sockaddr_in *));
-static void server_hello __P((Server *, int));
-static void setup_server __P((Server *, struct in_addr *));
-static void srv_rexmit __P((void *));
-static void server_forw_reliable __P((Server *, caddr_t, int, ZNotice_t *));
-static Code_t admin_dispatch __P((ZNotice_t *, int, struct sockaddr_in *,
-                                 Server *));
-static Code_t kill_clt __P((ZNotice_t *, Server *));
-static Code_t extract_addr __P((ZNotice_t *, struct sockaddr_in *));
-
-static struct in_addr *get_server_addrs __P((int *number));
-static char **get_server_list __P((char *file));
-static char **get_single_server __P((void));
-static void free_server_list __P((char **list));
-
-static Unacked *srv_nacktab[SRV_NACKTAB_HASHSIZE];
-Server *otherservers;          /* points to an array of the known
-                                  servers */
-int nservers;                  /* number of other servers */
-int me_server_idx;             /* # of my entry in the array */
-
-#define        ADJUST          (1)     /* adjust timeout on hello input */
-#define        DONT_ADJUST     (0)     /* don't adjust timeout */
-
-/* parameters controlling the transitions of the FSM's--patchable with adb */
-long timo_up = TIMO_UP;
-long timo_tardy = TIMO_TARDY;
-long timo_dead = TIMO_DEAD;
-
-/* counters to measure old protocol use */
-#ifdef OLD_COMPAT
-int old_compat_count_uloc = 0;
-int old_compat_count_ulocate = 0;
-int old_compat_count_subscr = 0;
-#endif /* OLD_COMPAT */
-#ifdef NEW_COMPAT
-int new_compat_count_uloc = 0;
-int new_compat_count_subscr = 0;
-#endif /* NEW_COMPAT */
-
-#ifdef DEBUG
-int zalone;
-#endif /* DEBUG */
-/*
- * Initialize the array of servers.  The `limbo' server goes in the first
- * slot (otherservers[0]).
- * Contact Hesiod to find all the other servers, allocate space for the
- * structure, initialize them all to SERV_DEAD with expired timeouts.
- * Set up a list header for server_forward retransmits.
- */
-
-void
-server_init(void)
-{
-    int i;
-    struct in_addr *serv_addr, *server_addrs, limbo_addr;
-
-    /* we don't need to mask SIGFPE here since when we are called,
-       the signal handler isn't set up yet. */
-
-    /* talk to hesiod here, set nservers */
-    server_addrs = get_server_addrs(&nservers);
-    if (!server_addrs) {
-       syslog(LOG_ERR, "No servers?!?");
-       exit(1);
-    }
-
-#ifdef DEBUG
-    if (zalone)
-       nservers = 1;
-    else
-#endif /* DEBUG */
-       /* increment servers to make room for 'limbo' */
-       nservers++;
-
-    otherservers = (Server *) malloc(nservers * sizeof(Server));
-    me_server_idx = -1;
-
-    /* set up limbo */
-    limbo_addr.s_addr = 0;
-    setup_server(otherservers, &limbo_addr);
-    timer_reset(otherservers[0].timer);
-    otherservers[0].timer = NULL;
-    otherservers[0].queue = NULL;
-    otherservers[0].dumping = 0;
-
-    for (serv_addr = server_addrs, i = 1; i < nservers; serv_addr++, i++) {
-       setup_server(&otherservers[i], serv_addr);
-       /* is this me? */
-       if (serv_addr->s_addr == my_addr.s_addr) {
-           me_server_idx = i;
-           otherservers[i].state = SERV_UP;
-           timer_reset(otherservers[i].timer);
-           otherservers[i].timer = NULL;
-           otherservers[i].queue = NULL;
-           otherservers[i].dumping = 0;
-       }
-    }
-
-    /* free up the addresses */
-    free(server_addrs);
-
-    if (me_server_idx == -1) {
-       syslog(LOG_WARNING, "I'm a renegade server!");
-       otherservers = (Server *) realloc(otherservers,
-                                         ++nservers * sizeof(Server));
-       if (!otherservers) {
-           syslog(LOG_CRIT, "renegade realloc");
-           abort();
-       }
-       setup_server(&otherservers[nservers - 1], &my_addr);
-       /* we are up. */
-       otherservers[nservers - 1].state = SERV_UP;
-
-       /* I don't send hello's to myself--cancel the timer */
-       timer_reset(otherservers[nservers - 1].timer);
-       otherservers[nservers - 1].timer = NULL;
-
-       /* cancel and reschedule all the timers--pointers need
-          adjusting */
-       /* don't reschedule limbo's timer, so start i=1 */
-       for (i = 1; i < nservers - 1; i++) {
-           timer_reset(otherservers[i].timer);
-           /* all the HELLO's are due now */
-           otherservers[i].timer = timer_set_rel(0L, server_timo,
-                                                 &otherservers[i]);
-       }
-       me_server_idx = nservers - 1;
-    }
-
-}
-
-/*
- * server_reset: re-initializes otherservers array by refreshing from Hesiod
- * or disk file.
- *
- * If any server is no longer named in the new list, and that server is in
- * state SERV_DEAD, it is dropped from the server list.
- * All other currently-known servers are retained.
- * Any additional servers not previously known are added to the table.
- *
- * WARNING: Don't call this routine if any of the ancestor procedures have a
- * handle on a particular server other than by indexing on otherservers[].
- */
-void
-server_reset(void)
-{
-    int num_servers;
-    struct in_addr *server_addrs;
-    struct in_addr *serv_addr;
-    Server *servers;
-    int i, j;
-    int *ok_list_new, *ok_list_old;
-    int num_ok, new_num;
-
-#ifdef DEBUG
-    if (zalone) {
-       syslog(LOG_INFO, "server_reset while alone, punt");
-       return;
-    }
-#endif /* DEBUG */
-
-    /* Find out what servers are supposed to be known. */
-    server_addrs = get_server_addrs(&num_servers);
-    if (!server_addrs) {
-       syslog(LOG_ERR, "server_reset no servers. nothing done.");
-       return;
-    }
-    ok_list_new = (int *) malloc(num_servers * sizeof(int));
-    if (!ok_list_new) {
-       syslog(LOG_ERR, "server_reset no mem new");
-       return;
-    }
-    ok_list_old = (int *) malloc(nservers * sizeof(int));
-    if (!ok_list_old) {
-       syslog(LOG_ERR, "server_reset no mem old");
-       free(ok_list_new);
-       return;
-    }
-
-    memset(ok_list_old, 0, nservers * sizeof(int));
-    memset(ok_list_new, 0, num_servers * sizeof(int));
-       
-    /* reset timers--pointers will move */
-    for (j = 1; j < nservers; j++) {   /* skip limbo */
-       if (j == me_server_idx)
-           continue;
-       timer_reset(otherservers[j].timer);
-       otherservers[j].timer = NULL;
-    }
-
-    /* check off entries on new list which are on old list.
-       check off entries on old list which are on new list. */
-
-    /* count limbo as "OK" */
-    num_ok = 1;
-    ok_list_old[0] = 1;        /* limbo is OK */
-
-    for (serv_addr = server_addrs, i = 0; i < num_servers; serv_addr++, i++) {
-       for (j = 1; j < nservers; j++) { /* j = 1 since we skip limbo */
-           if (otherservers[j].addr.sin_addr.s_addr == serv_addr->s_addr) {
-               /* if server is on both lists, mark */
-               ok_list_new[i] = 1;
-               ok_list_old[j] = 1;
-               num_ok++;
-               break;  /* for j loop */
-           }
-       }
-    }
-
-    /* remove any dead servers on old list not on new list. */
-    if (num_ok < nservers) {
-       int *srv;
-
-       new_num = 1;            /* limbo */
-       /* count number of servers to keep */
-       for (j = 1; j < nservers; j++) {
-           /* since we are never SERV_DEAD, the following
-              test prevents removing ourself from the list */
-           if (ok_list_old[j] || (otherservers[j].state != SERV_DEAD)) {
-               syslog(LOG_INFO, "keeping server %s",
-                      otherservers[j].addr_str);
-               new_num++;
-           }
-       }
-       if (new_num < nservers) {
-           servers = (Server *) malloc(new_num * sizeof(Server));
-           if (!servers) {
-               syslog(LOG_CRIT, "server_reset server malloc");
-               abort();
-           }
-           i = 1;
-           servers[0] = otherservers[0]; /* copy limbo */
-
-           srv = (int *) malloc(nservers * sizeof(int));
-           memset(srv, 0, nservers * sizeof(int));
-
-           /* copy the kept servers */
-           for (j = 1; j < nservers; j++) { /* skip limbo */
-               if (ok_list_old[j] ||
-                   otherservers[j].state != SERV_DEAD) {
-                   servers[i] = otherservers[j];
-                   srv[j] = i;
-                   i++;
-               } else {
-                   syslog(LOG_INFO, "flushing server %s",
-                          otherservers[j].addr_str);
-                   server_flush(&otherservers[j]);
-                   srv[j] = -1;
-               }
-
-           }
-           srv_nack_renumber(srv);
-
-           free(srv);
-           free(otherservers);
-           otherservers = servers;
-           nservers = new_num;
-       }
-    }
-
-    /* add any new servers on new list not on old list. */
-    new_num = 0;
-    for (i = 0; i < num_servers; i++) {
-       if (!ok_list_new[i])
-           new_num++;
-    }
-
-    /* new_num is number of extras. */
-    nservers += new_num;
-    otherservers = (Server *) realloc(otherservers, nservers * sizeof(Server));
-    if (!otherservers) {
-       syslog(LOG_CRIT, "server_reset realloc");
-       abort();
-    }
-
-    me_server_idx = 0;
-    for (j = 1; j < nservers - new_num; j++) {
-       if (otherservers[j].addr.sin_addr.s_addr == my_addr.s_addr) {
-           me_server_idx = j;
-           break;
-       }
-    }
-    if (!me_server_idx) {
-       syslog(LOG_CRIT, "can't find myself");
-       abort();
-    }
-
-    /* fill in otherservers with the new servers */
-    for (i = 0; i < num_servers; i++) {
-       if (!ok_list_new[i]) {
-           setup_server(&otherservers[nservers - (new_num--)],
-                        &server_addrs[i]);
-           syslog(LOG_INFO, "adding server %s", inet_ntoa(server_addrs[i]));
-       }
-    }
-
-    free(server_addrs);
-    /* reset timers, to go off now.
-       We can't get a time-left indication (bleagh!)
-       so we expire them all now.  This will generally
-       be non-destructive.  We assume that when this code is
-       entered via a SIGHUP trigger that a system wizard
-       is watching the goings-on to make sure things straighten
-       themselves out.
-       */
-    for (i = 1; i < nservers; i++) {   /* skip limbo */
-       if (i != me_server_idx && !otherservers[i].timer) {
-           otherservers[i].timer =
-               timer_set_rel(0L, server_timo, &otherservers[i]);
-       }
-    }
-    free(ok_list_old);
-    free(ok_list_new);
-
-}
-
-/* note: these must match the order given in zserver.h */
-static char *
-srv_states[] = {
-    "SERV_UP",
-    "SERV_TARDY",
-    "SERV_DEAD",
-    "SERV_STARTING"
-};
-static char *
-rlm_states[] = {
-    "REALM_UP",
-    "REALM_TARDY",
-    "REALM_DEAD",
-    "REALM_STARTING"
-};
-
-/* 
- * A server timout has expired.  If enough hello's have been unanswered,
- * change state and act accordingly. Send a "hello" and reset the timer,
- * incrementing the number of hello's sent.
- *
- * See the FSM in the Zephyr document for a better picture of what's
- * happening here. 
- */
-
-void
-server_timo(void *arg)
-{
-    Server *which = (Server *) arg;
-    int auth = 0;
-
-    /* change state and reset if appropriate */
-    switch(which->state) {
-      case SERV_DEAD:                  /* leave him dead */
-       server_flush(which);
-       auth = 1;
-       break;
-      case SERV_UP:                    /* he's now tardy */
-       which->state = SERV_TARDY;
-       which->num_hello_sent = 0;
-       which->timeout = timo_tardy;
-       auth = 0;
-       break;
-      case SERV_TARDY:
-      case SERV_STARTING:
-       if (which->num_hello_sent >= ((which->state == SERV_TARDY) ?
-                                     H_NUM_TARDY :
-                                     H_NUM_STARTING)) {
-           /* he hasn't answered, assume DEAD */
-           which->state = SERV_DEAD;
-           which->num_hello_sent = 0;
-           which->timeout = timo_dead;
-           srv_nack_release(which);
-       }
-       auth = 0;
-       break;
-      default:
-       syslog(LOG_ERR,"Bad server state, server 0x%x\n", (int)which);
-       abort();
-    }
-    /* now he's either TARDY, STARTING, or DEAD
-       We send a "hello," which increments the counter */
-    server_hello(which, auth);
-    /* reschedule the timer */
-    which->timer = timer_set_rel(which->timeout, server_timo, which);
-}
-
-/*
- * Dispatch a notice from some other server
- */
-
-/*ARGSUSED*/
-Code_t
-server_dispatch(ZNotice_t *notice,
-               int auth,
-               struct sockaddr_in *who)
-{
-    Server *server;
-    struct sockaddr_in newwho;
-    Code_t status;
-    String *notice_class;
-
-
-    if (notice->z_kind == SERVACK) {
-       srv_nack_cancel(notice, who);
-       srv_responded(who);
-       return ZERR_NONE;
-    }
-    /* set up a who for the real origin */
-    memset(&newwho, 0, sizeof(newwho));
-    newwho.sin_family = AF_INET;
-    newwho.sin_addr.s_addr = notice->z_sender_addr.s_addr;
-    newwho.sin_port = notice->z_port;
-
-    server = server_which_server(who);
-
-    /* we can dispatch to routines safely here, since they will
-       return ZSRV_REQUEUE if appropriate.  We bounce this back
-       to the caller, and the caller will re-queue the message
-       for us to process later. */
-
-    notice_class = make_string(notice->z_class, 1);
-
-    if (realm_which_realm(&newwho))
-       status = realm_dispatch(notice, auth, &newwho, server);
-    else if (class_is_admin(notice_class)) {
-       /* admins don't get acked, else we get a packet loop */
-       /* will return  requeue if bdump request and dumping */
-       i_s_admins.val++;
-       return admin_dispatch(notice, auth, who, server);
-    } else if (class_is_control(notice_class)) {
-       status = control_dispatch(notice, auth, &newwho, server);
-       i_s_ctls.val++;
-    } else if (class_is_ulogin(notice_class)) {
-       status = ulogin_dispatch(notice, auth, &newwho, server);
-       i_s_logins.val++;
-    } else if (class_is_ulocate(notice_class)) {
-       status = ulocate_dispatch(notice, auth, &newwho, server);
-       i_s_locates.val++;
-    } else {
-       /* shouldn't come from another server */
-       syslog(LOG_WARNING, "srv_disp: pkt cls %s", notice->z_class);
-       status = ZERR_NONE;     /* XXX */
-    }
-    if (status != ZSRV_REQUEUE)
-       ack(notice, who); /* acknowledge it if processed */
-    free_string(notice_class);
-    return status;
-}
-
-/*
- * Tell the other servers that this client died.
- */
-
-void
-server_kill_clt(Client *client)
-{
-    int i;
-    char buf[512], *lyst[2];
-    ZNotice_t notice;
-    ZNotice_t *pnotice; /* speed hack */
-    caddr_t pack;
-    int packlen, auth;
-    Code_t retval;
-
-    lyst[0] = inet_ntoa(client->addr.sin_addr),
-    sprintf(buf, "%d", ntohs(client->addr.sin_port));
-    lyst[1] = buf;
-
-    pnotice = &notice;
-
-    memset (&notice, 0, sizeof(notice));
-    pnotice->z_kind = ACKED;
-
-    pnotice->z_port = srv_addr.sin_port;
-    pnotice->z_class = ZEPHYR_ADMIN_CLASS;
-    pnotice->z_class_inst = "";
-    pnotice->z_opcode = ADMIN_KILL_CLT;
-    pnotice->z_sender = myname;        /* myname is the hostname */
-    pnotice->z_recipient = "";
-    pnotice->z_default_format = "";
-    pnotice->z_num_other_fields = 0;
-
-    /* XXX */
-    auth = 0;
-
-    /* don't tell limbo to flush, start at 1*/
-    for (i = 1; i < nservers; i++) {
-       if (i == me_server_idx) /* don't xmit to myself */
-           continue;
-       if (otherservers[i].state == SERV_DEAD)
-           continue;
-
-       retval = ZFormatNoticeList(pnotice, lyst, 2, &pack, &packlen,
-                                  auth ? ZAUTH : ZNOAUTH);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_WARNING, "kill_clt format: %s", error_message(retval));
-           return;
-       }
-       server_forw_reliable(&otherservers[i], pack, packlen, pnotice);
-    }
-}
-
-/*
- * A client has died.  remove it
- */
-
-static Code_t
-kill_clt(ZNotice_t *notice,
-        Server *server)
-{
-    struct sockaddr_in who;
-    Client *client;
-
-    if (extract_addr(notice, &who) != ZERR_NONE)
-       return ZERR_NONE;       /* XXX */
-    client = client_find(&who.sin_addr, notice->z_port);
-    if (!client) {
-       syslog(LOG_NOTICE, "kill_clt: no such client (%s/%d) from %s",
-              inet_ntoa(who.sin_addr), ntohs(who.sin_port),
-              server->addr_str);
-       return ZERR_NONE;       /* XXX */
-    }
-
-    if (zdebug) {
-       syslog(LOG_DEBUG, "kill_clt clt_dereg %s/%d from %s",
-              inet_ntoa(who.sin_addr), ntohs(who.sin_port), server->addr_str);
-    }
-
-    /* remove the locations, too */
-    client_deregister(client, 1);
-    return ZERR_NONE;
-}
-
-/*
- * extract a sockaddr_in from a message body
- */
-
-static Code_t
-extract_addr(ZNotice_t *notice,
-            struct sockaddr_in *who)
-{
-    char *cp = notice->z_message;
-
-    if (!notice->z_message_len) {
-       syslog(LOG_WARNING, "bad addr pkt");
-       return ZSRV_PKSHORT;
-    }
-    who->sin_addr.s_addr = inet_addr(notice->z_message);
-
-    cp += strlen(cp) + 1;
-    if (cp >= notice->z_message + notice->z_message_len) {
-       syslog(LOG_WARNING, "short addr pkt");
-       return ZSRV_PKSHORT;
-    }
-    who->sin_port = notice->z_port = htons((u_short) atoi(cp));
-    who->sin_family = AF_INET;
-    return ZERR_NONE;
-}
-
-/*
- * Flush all data associated with the server which
- */
-
-static void
-server_flush(Server *which)
-{
-    srv_nack_release(which);
-}
-
-/*
- * send a hello to which, updating the count of hello's sent
- * Authenticate if auth is set.
- */
-
-static void
-server_hello(Server *which,
-            int auth)
-{
-    send_msg(&which->addr, ADMIN_HELLO, auth);
-    which->num_hello_sent++;
-}
-
-/*
- * Handle an ADMIN message from a server
- */
-
-/*ARGSUSED*/
-static Code_t
-admin_dispatch(ZNotice_t *notice,
-              int auth,
-              struct sockaddr_in *who,
-              Server *server)
-{
-    char *opcode = notice->z_opcode;
-    Code_t status = ZERR_NONE;
-
-    if (strcmp(opcode, ADMIN_HELLO) == 0) {
-       hello_respond(who, ADJUST, auth);
-    } else if (strcmp(opcode, ADMIN_IMHERE) == 0) {
-       srv_responded(who);
-    } else if (strcmp(opcode, ADMIN_SHUTDOWN) == 0) {
-       if (server) {
-           srv_nack_release(server);
-           server->state = SERV_DEAD;
-           server->timeout = timo_dead;
-           /* don't worry about the timer, it will
-              be set appropriately on the next send */
-       }
-    } else if (strcmp(opcode, ADMIN_BDUMP) == 0) {
-       /* Ignore a brain dump request if this is a brain dump packet
-         * or a packet being processed concurrently during a brain
-         * dump. */
-       if (bdumping || bdump_concurrent)
-           return ZERR_NONE;
-       bdump_get(notice, auth, who, server);
-    } else if (strcmp(opcode, ADMIN_KILL_CLT) == 0) {
-       status = kill_clt(notice, server);
-       if (status == ZERR_NONE)
-           ack(notice, who);
-    } else {
-       syslog(LOG_WARNING, "ADMIN unknown opcode %s",opcode);
-    }
-    return status;
-}
-
-
-/*
- * Handle an ADMIN message from some random client.
- * For now, assume it's a registration-type message from some other
- * previously unknown server
- */
-
-/*ARGSUSED*/
-Code_t
-server_adispatch(ZNotice_t *notice,
-                int auth,
-                struct sockaddr_in *who,
-                Server *server)
-{
-
-    /* this had better be a HELLO message--start of acquisition
-       protocol, OR a status req packet */
-
-    if (strcmp(notice->z_opcode, ADMIN_STATUS) == 0) {
-       /* status packet */
-       send_stats(who);
-       return ZERR_NONE;
-    }
-
-    syslog(LOG_INFO, "srv_adisp: server attempt from %s",
-          inet_ntoa(who->sin_addr));
-
-    return ZERR_NONE;
-}
-
-static void
-send_stats(struct sockaddr_in *who)
-{
-    int i;
-    char buf[BUFSIZ];
-    char **responses;
-    int num_resp;
-    char *vers, *pkts, *upt;
-    ZRealm *realm;
-
-    int extrafields = 0;
-#define        NUM_FIXED 3                     /* 3 fixed fields, plus server info */
-                                       /* well, not really...but for
-                                          backward compatibility, we gotta
-                                          do it this way. */
-    vers = get_version();
-
-    sprintf(buf, "%lu pkts", npackets);
-    pkts = strsave(buf);
-    sprintf(buf, "%ld seconds operational",NOW - uptime);
-    upt = strsave(buf);
-
-#ifdef OLD_COMPAT
-    if (old_compat_count_uloc)
-       extrafields++;
-    if (old_compat_count_ulocate)
-       extrafields++;
-    if (old_compat_count_subscr)
-       extrafields++;
-#endif /* OLD_COMPAT */
-#ifdef NEW_COMPAT
-    if (new_compat_count_uloc)
-       extrafields++;
-    if (new_compat_count_subscr)
-       extrafields++;
-#endif /* NEW_COMPAT */
-    extrafields += nrealms;
-    responses = (char **) malloc((NUM_FIXED + nservers + extrafields) *
-                                sizeof(char *));
-    responses[0] = vers;
-    responses[1] = pkts;
-    responses[2] = upt;
-
-    num_resp = NUM_FIXED;
-    /* start at 1 and ignore limbo */
-    for (i = 1; i < nservers ; i++) {
-       sprintf(buf, "%s/%s%s", otherservers[i].addr_str,
-               srv_states[(int) otherservers[i].state],
-               otherservers[i].dumping ? " (DUMPING)" : "");
-       responses[num_resp++] = strsave(buf);
-    }
-#ifdef OLD_COMPAT
-    if (old_compat_count_uloc) {
-       sprintf(buf, "%d old old location requests", old_compat_count_uloc);
-       responses[num_resp++] = strsave(buf);
-    }
-    if (old_compat_count_ulocate) {
-       sprintf(buf, "%d old old loc lookup requests",
-               old_compat_count_ulocate);
-       responses[num_resp++] = strsave(buf);
-    }
-    if (old_compat_count_subscr) {
-       sprintf(buf, "%d old old subscr requests", old_compat_count_subscr);
-       responses[num_resp++] = strsave(buf);
-    }
-#endif /* OLD_COMPAT */
-#ifdef NEW_COMPAT
-    if (new_compat_count_uloc) {
-       sprintf(buf, "%d new old location requests", new_compat_count_uloc);
-       responses[num_resp++] = strsave(buf);
-    }
-    if (new_compat_count_subscr) {
-       sprintf(buf, "%d new old subscr requests", new_compat_count_subscr);
-       responses[num_resp++] = strsave(buf);
-    }
-#endif /* NEW_COMPAT */
-    for (realm = otherrealms, i = 0; i < nrealms ; i++, realm++) {
-      sprintf(buf, "%s(%s)/%s", realm->name, 
-             inet_ntoa((realm->addrs[realm->idx]).sin_addr),
-             rlm_states[(int) realm->state]);
-      responses[num_resp++] = strsave(buf);
-    }
-
-    send_msg_list(who, ADMIN_STATUS, responses, num_resp, 0);
-
-    /* Start at one; don't try to free static version string */
-    for (i = 1; i < num_resp; i++)
-       free(responses[i]);
-    free(responses);
-}
-
-/*
- * Get a list of server addresses.
-#ifdef HAVE_HESIOD
- * This list is retrieved from Hesiod.
-#else
- * This list is read from a file.
-#endif
- * Return a pointer to an array of allocated storage.  This storage is
- * freed by the caller.
- */
-
-static struct in_addr *
-get_server_addrs(int *number)
-{
-    int i;
-    char **server_hosts = NULL;
-    char **server_hosts_free = NULL;
-    char **cpp;
-    struct in_addr *addrs;
-    struct in_addr *addr;
-    struct hostent *hp;
-
-    server_hosts = get_server_list(list_file);
-    server_hosts_free = server_hosts;
-#ifdef HAVE_HESIOD
-    if (!server_hosts)
-       server_hosts = hes_resolve("zephyr","sloc");
-#endif
-    if (!server_hosts) {
-       server_hosts = get_single_server();
-       server_hosts_free = server_hosts;
-    }
-    if (!server_hosts)
-       return NULL;
-    /* count up */
-    i = 0;
-    for (cpp = server_hosts; *cpp; cpp++)
-       i++;
-       
-    addrs = (struct in_addr *) malloc(i * sizeof(struct in_addr));
-
-    /* Convert to in_addr's */
-    for (cpp = server_hosts, addr = addrs, i = 0; *cpp; cpp++) {
-       hp = gethostbyname(*cpp);
-       if (hp) {
-           memcpy(addr, hp->h_addr, sizeof(struct in_addr));
-           addr++, i++;
-       } else {
-           syslog(LOG_WARNING, "hostname failed, %s", *cpp);
-       }
-    }
-    *number = i;
-    if (server_hosts_free)
-      free_server_list(server_hosts_free);
-    return addrs;
-}
-
-static int nhosts = 0;
-
-/*
- * read "file" to get a list of names of hosts to peer with.
- * The file should contain a list of host names, one per line.
- */
-
-static char **
-get_server_list(char *file)
-{
-    FILE *fp;
-    char buf[MAXHOSTNAMELEN];
-    char **ret_list;
-    int nused = 0;
-    char *newline;
-
-    fp = fopen(file, "r");
-    if (!fp)
-       return NULL;
-    /* start with 16, realloc if necessary */
-    nhosts = 16;
-    ret_list = (char **) malloc(nhosts * sizeof(char *));
-    if (!ret_list)
-       return NULL;
-
-    while (fgets(buf, MAXHOSTNAMELEN, fp)) {
-       /* nuke the newline, being careful not to overrun
-          the buffer searching for it with strlen() */
-       buf[MAXHOSTNAMELEN - 1] = '\0';
-       newline = strchr(buf, '\n');
-       if (newline)
-           *newline = '\0';
-
-       if (nused + 1 >= nhosts) {
-           /* get more pointer space if necessary */
-           /* +1 to leave room for null pointer */
-           ret_list = (char **) realloc(ret_list, nhosts * 2);
-           nhosts = nhosts * 2;
-       }
-       ret_list[nused++] = strsave(buf);
-    }
-    fclose(fp);
-    if (!nused) {
-       free(ret_list);
-       return NULL;
-    }
-    ret_list[nused] = NULL;
-    return ret_list;
-}
-
-static char **
-get_single_server(void)
-{
-    char buf[MAXHOSTNAMELEN];
-    char **ret_list;
-    int nused = 0;
-    nhosts = 2;
-    ret_list = (char **) malloc(nhosts * sizeof(char *));
-    if (!ret_list)
-       return NULL;
-    if (gethostname(buf, sizeof(buf)) < 0) {
-       free(ret_list);
-       return NULL;
-    }
-    ret_list[nused++] = strsave(buf);
-    ret_list[nused] = NULL;
-    return ret_list;
-}
-
-/* 
- * free storage allocated by get_server_list
- */
-static void
-free_server_list(char **list)
-{
-    char **orig_list = list;
-
-    if (!nhosts)                       /* nothing allocated */
-       return;
-    for (; *list; list++)
-       free(*list);
-    free(orig_list);
-    return;
-}
-
-/*
- * initialize the server structure for address addr, and set a timer
- * to go off immediately to send hello's to other servers.
- */
-
-static void
-setup_server(Server *server,
-            struct in_addr *addr)
-{
-    server->state = SERV_DEAD;
-    server->timeout = timo_dead;
-    server->num_hello_sent = 0;
-    server->addr.sin_family = AF_INET;
-    /* he listens to the same port we do */
-    server->addr.sin_port = srv_addr.sin_port;
-    server->addr.sin_addr = *addr;
-    strcpy(server->addr_str, inet_ntoa(*addr));
-    server->timer = timer_set_rel(0L, server_timo, server);
-    server->queue = NULL;
-    server->dumping = 0;
-}
-
-/*
- * Someone sent us a hello message, respond to them.
- */
-
-static void
-hello_respond(struct sockaddr_in *who,
-             int adj,
-             int auth)
-{
-    Server *which;
-
-    send_msg(who, ADMIN_IMHERE, auth);
-    if (adj != ADJUST)
-       return;
-
-    /* If we think he's down, schedule an immediate HELLO. */
-
-    which = server_which_server(who);
-    if (!which)
-       return;
-
-    switch (which->state) {
-      case SERV_DEAD:
-       /* he said hello, we thought he was dead.
-          reschedule his hello for now. */
-       timer_reset(which->timer);
-       which->timer = timer_set_rel(0L, server_timo, which);
-       break;
-      case SERV_STARTING:
-      case SERV_TARDY:
-      case SERV_UP:
-      default:
-       break;
-    }
-}    
-
-/*
- * return the server descriptor for server at who
- */
-
-Server *
-server_which_server(struct sockaddr_in *who)
-{
-    Server *server;
-    int i;
-
-    if (who->sin_port != srv_addr.sin_port)
-       return NULL;
-
-    /* don't check limbo */
-    for (server = &otherservers[1], i = 1; i < nservers; i++, server++) {
-       if (server->addr.sin_addr.s_addr == who->sin_addr.s_addr)
-           return server;
-    }
-    return NULL;
-}
-
-/*
- * We received a response to a hello packet or an ack. Adjust server state
- * appropriately.
- */
-static void
-srv_responded(struct sockaddr_in *who)
-{
-    Server *which = server_which_server(who);
-
-    if (!which) {
-       syslog(LOG_ERR, "hello input from non-server?!");
-       return;
-    }
-
-    switch (which->state) {
-      case SERV_DEAD:
-       /* he responded, we thought he was dead. mark as starting
-          and negotiate */
-       which->state = SERV_STARTING;
-       which->timeout = timo_tardy;
-       timer_reset(which->timer);
-       which->timer = timer_set_rel(0L, server_timo, which);
-
-      case SERV_STARTING:
-       /* here we negotiate and set up a braindump */
-       if (bdump_socket < 0)
-           bdump_offer(who);
-       break;
-
-      case SERV_TARDY:
-       which->state = SERV_UP;
-       /* Fall through. */
-
-      case SERV_UP:
-       /* reset the timer and counts */
-       which->num_hello_sent = 0;
-       which->timeout = timo_up;
-       timer_reset(which->timer);
-       which->timer = timer_set_rel(which->timeout, server_timo, which);
-       break;
-    }
-}
-
-/*
- * Send each of the other servers a shutdown message.
- */
-
-void
-server_shutdown(void)
-{
-    int i;
-
-    /* don't tell limbo to go away, start at 1*/
-    for (i = 1; i < nservers; i++)
-       send_msg(&otherservers[i].addr, ADMIN_SHUTDOWN, 1);
-}
-
-/*
- * send a message to who with admin class and opcode and clinst as specified.
- * auth is set if we want to send authenticated
- */
-
-static void
-send_msg(struct sockaddr_in *who,
-        char *opcode,
-        int auth)
-{
-    ZNotice_t notice;
-    ZNotice_t *pnotice; /* speed hack */
-    char *pack;
-    int packlen;
-    Code_t retval;
-
-    pnotice = &notice;
-
-    memset (&notice, 0, sizeof(notice));
-
-    pnotice->z_kind = ACKED;
-
-    pnotice->z_port = srv_addr.sin_port;
-    pnotice->z_class = ZEPHYR_ADMIN_CLASS;
-    pnotice->z_class_inst = "";
-    pnotice->z_opcode = opcode;
-    pnotice->z_sender = myname;        /* myname is the hostname */
-    pnotice->z_recipient = "";
-    pnotice->z_default_format = "";
-    pnotice->z_message = NULL;
-    pnotice->z_message_len = 0;
-    pnotice->z_num_other_fields = 0;
-
-    /* XXX for now, we don't do authentication */
-    auth = 0;
-
-    retval = ZFormatNotice(pnotice, &pack, &packlen, auth ? ZAUTH : ZNOAUTH);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "snd_msg format: %s", error_message(retval));
-       return;
-    }
-    retval = ZSetDestAddr(who);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "snd_msg set addr: %s", error_message(retval));
-       free(pack);
-       return;
-    }
-    /* don't wait for ack */
-    retval = ZSendPacket(pack, packlen, 0);
-    if (retval != ZERR_NONE)
-       syslog(LOG_WARNING, "snd_msg xmit: %s", error_message(retval));
-    free(pack);
-}
-
-/*
- * send a notice with a message to who with admin class and opcode and
- * message body as specified.
- * auth is set if we want to send authenticated
- * server_idx is -1 if we are sending to a client, or the server index
- *  if we are sending to a server.
- */
-
-static void
-send_msg_list(struct sockaddr_in *who,
-             char *opcode,
-             char **lyst,
-             int num,
-             int auth)
-{
-    ZNotice_t notice;
-    char *pack;
-    int packlen;
-    Code_t retval;
-
-    memset (&notice, 0, sizeof(notice));
-
-    notice.z_kind = UNSAFE;
-    notice.z_port = srv_addr.sin_port;
-    notice.z_class = ZEPHYR_ADMIN_CLASS;
-    notice.z_class_inst = "";
-    notice.z_opcode = opcode;
-    notice.z_sender = myname;  /* myname is the hostname */
-    notice.z_recipient = "";
-    notice.z_default_format = "";
-    notice.z_message = NULL;
-    notice.z_message_len = 0;
-    notice.z_num_other_fields = 0;
-
-    /* XXX for now, we don't do authentication */
-    auth = 0;
-
-    retval = ZFormatNoticeList(&notice, lyst, num, &pack, &packlen,
-                              auth ? ZAUTH : ZNOAUTH);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "snd_msg_lst format: %s", error_message(retval));
-       return;
-    }
-    retval = ZSetDestAddr(who);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "snd_msg_lst set addr: %s", error_message(retval));
-       free(pack);
-       return;
-    }
-    xmit_frag(&notice, pack, packlen, 0);
-    free(pack);
-}
-
-/*
- * Forward the notice to the other servers
- */
-/*ARGSUSED*/
-void
-server_forward(ZNotice_t *notice,
-              int auth,
-              struct sockaddr_in *who)
-{
-    int i;
-    caddr_t pack;
-    int packlen;
-    Code_t retval;
-
-    /* don't send to limbo */
-    for (i = 1; i < nservers; i++) {
-       if (i == me_server_idx) /* don't xmit to myself */
-           continue;
-       if (otherservers[i].state == SERV_DEAD &&
-           otherservers[i].dumping == 0) {
-           /* if we are dumping to him, we want to
-              queue it, even if he's dead */
-           continue;
-       }
-
-       pack = malloc(sizeof(ZPacket_t));
-       if (!pack) {
-           syslog(LOG_CRIT, "srv_fwd malloc");
-           abort();
-       }
-       retval = ZNewFormatSmallRawNotice(notice, pack, &packlen);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_WARNING, "srv_fwd format: %s", error_message(retval));
-           continue;
-       }
-       if (otherservers[i].dumping) {
-           server_queue(&otherservers[i], packlen, pack, auth, who);
-           continue;
-       }
-       server_forw_reliable(&otherservers[i], pack, packlen, notice);
-    }
-}
-
-static void
-server_forw_reliable(Server *server,
-                    caddr_t pack,
-                    int packlen,
-                    ZNotice_t *notice)
-{
-    Code_t retval;
-    Unacked *nacked;
-    int hashval;
-
-    retval = ZSetDestAddr(&server->addr);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "srv_fwd_rel set addr: %s", error_message(retval));
-       free(pack);
-       return;
-    }
-    retval = ZSendPacket(pack, packlen, 0);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "srv_fwd xmit: %s", error_message(retval));
-       free(pack);
-       return;
-    }                  
-    /* now we've sent it, mark it as not ack'ed */
-               
-    nacked = (Unacked *) malloc(sizeof(Unacked));
-    if (!nacked) {
-       /* no space: just punt */
-       syslog(LOG_ERR, "srv_forw_rel nack malloc");
-       free(pack);
-       return;
-    }
-
-    nacked->client = NULL;
-    nacked->rexmits = 0;
-    nacked->packet = pack;
-    nacked->dest.srv_idx = server - otherservers;
-    nacked->packsz = packlen;
-    nacked->uid = notice->z_uid;
-    nacked->timer = timer_set_rel(rexmit_times[0], srv_rexmit, nacked);
-    hashval = SRV_NACKTAB_HASHVAL(nacked->dest.srv_idx, nacked->uid);
-    Unacked_insert(&srv_nacktab[hashval], nacked);
-}
-
-/*
- * send the queued message for the server.
- */
-
-void
-server_send_queue(Server *server)
-{
-    Pending *pending;
-    ZNotice_t notice;
-    Code_t status;
-
-    while (server->queue) {
-       pending = server_dequeue(server);
-       status = ZParseNotice(pending->packet, pending->len, &notice);
-       if (status != ZERR_NONE) {
-           syslog(LOG_ERR, "ssq bad notice parse (%s): %s",
-                  inet_ntoa(pending->who.sin_addr), error_message(status));
-       } else {
-           server_forw_reliable(server, pending->packet, pending->len,
-                                &notice);
-           free(pending);
-           /* ACK handling routines will free the packet */
-       }
-    }
-}
-
-/*
- * a server has acknowledged a message we sent to him; remove it from
- * server unacked queue
- */
-
-static void
-srv_nack_cancel(ZNotice_t *notice,
-               struct sockaddr_in *who)
-{
-    Server *server = server_which_server(who);
-    Unacked *nacked;
-    int hashval;
-
-    if (!server) {
-       syslog(LOG_ERR, "non-server ack?");
-       return;
-    }
-    hashval = SRV_NACKTAB_HASHVAL(server - otherservers, notice->z_uid);
-    for (nacked = srv_nacktab[hashval]; nacked; nacked = nacked->next) {
-       if (nacked->dest.srv_idx == server - otherservers
-           && ZCompareUID(&nacked->uid, &notice->z_uid)) {
-           timer_reset(nacked->timer);
-           free(nacked->packet);
-           Unacked_delete(nacked);
-           free(nacked);
-           return;
-       }
-    }
-}
-
-/*
- * retransmit a message to another server
- */
-
-static void
-srv_rexmit(void *arg)
-{
-    Unacked *packet = (Unacked *) arg;
-    Code_t retval;
-    /* retransmit the packet */
-       
-    if (otherservers[packet->dest.srv_idx].state == SERV_DEAD) {
-       Unacked_delete(packet);
-       free(packet->packet);
-       srv_nack_release(&otherservers[packet->dest.srv_idx]);
-       free(packet);
-       return;
-    }
-    retval = ZSetDestAddr(&otherservers[packet->dest.srv_idx].addr);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "srv_rexmit set addr: %s", error_message(retval));
-    } else {
-       retval = ZSendPacket(packet->packet, packet->packsz, 0);
-       if (retval != ZERR_NONE)
-           syslog(LOG_WARNING, "srv_rexmit xmit: %s",
-                  error_message(retval));
-    }
-
-    /* reset the timer */
-    if (rexmit_times[packet->rexmits + 1] != -1)
-       packet->rexmits++;
-    packet->timer = timer_set_rel(rexmit_times[packet->rexmits], srv_rexmit,
-                                 packet);
-}
-
-/*
- * Clean up the not-yet-acked queue and release anything destined
- * to the server.
- */
-
-static void
-srv_nack_release(Server *server)
-{
-    int i;
-    Unacked *nacked, *next;
-
-    for (i = 0; i < SRV_NACKTAB_HASHSIZE; i++) {
-       for (nacked = srv_nacktab[i]; nacked; nacked = next) {
-           next = nacked->next;
-           if (nacked->dest.srv_idx == server - otherservers) {
-               timer_reset(nacked->timer);
-               Unacked_delete(nacked);
-               free(nacked->packet);
-               free(nacked);
-           }
-       }
-    }
-}
-
-/*
- * Adjust indices of not-yet-acked packets sent to other servers to
- * continue to refer to the correct server.
- */
-
-static void
-srv_nack_renumber (int *new_idx)
-{
-    /* XXX release any private queue for this server */
-    Unacked *nacked;
-    int idx, i;
-
-    /* search the not-yet-acked list for anything destined to 'from', and
-       change the index to 'to'. */
-    for (i = 0; i < SRV_NACKTAB_HASHSIZE; i++) {
-       for (nacked = srv_nacktab[i]; nacked; nacked = nacked->next) {
-           idx = new_idx[nacked->dest.srv_idx];
-           if (idx < 0) {
-               syslog(LOG_ERR, "srv_nack_renumber error: [%d]=%d",
-                      nacked->dest.srv_idx, idx);
-               idx = 0;
-           }
-           nacked->dest.srv_idx = idx;
-       }
-    }
-}
-
-/*
- * Queue this notice to be transmitted to the server when it is ready.
- */
-static void
-server_queue(Server *server,
-            int len,
-            void *pack,
-            int auth,
-            struct sockaddr_in *who)
-{
-    Pending *pending;
-
-    pending = (Pending *) malloc(sizeof(Pending));
-    if (!pending) {
-       syslog(LOG_CRIT, "update_queue malloc");
-       abort();
-    }
-    pending->packet = pack;
-    pending->len = len;
-    pending->auth = auth;
-    pending->who = *who;
-    pending->next = NULL;
-
-    /* put it on the end of the list */
-    if (server->queue)
-       server->queue_last->next = pending;
-    else
-       server->queue = server->queue_last = pending;
-}
-
-/*
- * Pull a notice off the hold queue.
- */
-
-Pending *
-server_dequeue(Server *server)
-{
-    Pending *pending;
-       
-    if (!server->queue)
-       return NULL;
-    pending = server->queue;
-    server->queue = pending->next;
-    return pending;
-}
-
-/*
- * free storage used by a pending queue entry.
- */
-
-void
-server_pending_free(Pending *pending)
-{
-    free(pending->packet);
-    free(pending);
-    return;
-}
-
-/*
- * Queue something to be handled later by this server.
- */
-
-void
-server_self_queue(ZNotice_t* notice,
-                 int auth,
-                 struct sockaddr_in * who)
-{
-    char *pack;
-    int packlen;
-    Code_t retval;
-
-    retval = ZFormatRawNotice(notice, &pack, &packlen);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_CRIT, "srv_self_queue format: %s", error_message(retval));
-       abort();
-    }
-    server_queue(me_server, packlen, pack, auth, who);
-}
-
-/*
- * dump info about servers onto the fp.
- * assumed to be called with SIGFPE blocked
- * (true if called from signal handler)
- */
-void
-server_dump_servers(FILE *fp)
-{
-    int i;
-
-    for (i = 0; i < nservers ; i++) {
-       fprintf(fp, "%d:%s/%s%s\n", i, otherservers[i].addr_str,
-               srv_states[otherservers[i].state],
-               otherservers[i].dumping ? " (DUMPING)" : "");
-    }
-}
-
diff --git a/zephyr/server/subscr.c b/zephyr/server/subscr.c
deleted file mode 100644 (file)
index d12623c..0000000
+++ /dev/null
@@ -1,1556 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for managing subscription lists.
- *
- *     Created by:     John T. Kohl
- *
- *     $Source: /afs/dev.mit.edu/source/repository/athena/lib/zephyr/server/subscr.c,v $
- *     $Author: kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"
-
-#ifndef lint
-#ifndef SABER
-static const char rcsid_subscr_c[] = "$Id: subscr.c 2335 2009-03-22 18:39:39Z kcr $";
-#endif
-#endif
-
-/*
- * The subscription manager.
- *
- * External functions:
- *
- * Code_t subscr_subscribe(who, notice)
- *     Client *who;
- *     ZNotice_t *notice;
- *
- * Code_t subscr_cancel(sin, notice)
- *     struct sockaddr_in *sin;
- *     ZNotice_t *notice;
- *
- * Code_t subscr_cancel_client(client)
- *     Client *client;
- *
- * Code_t subscr_cancel_host(addr)
- *     struct in_addr *addr;
- *
- * Client *subscr_match_list(notice)
- *     ZNotice_t *notice;
- *
- * void subscr_free_list(list)
- *     Client *list;
- *
- * void subscr_sendlist(notice, auth, who)
- *     ZNotice_t *notice;
- *     int auth;
- *     struct sockaddr_in *who;
- *
- * Code_t subscr_send_subs(client, vers)
- *     Client *client;
- *     char *vers;
- *
- * Code_t subscr_def_subs(who)
- *     Client *who;
- *
- * void subscr_reset();
- *
- */
-
-#if defined(HAVE_KRB4)
-C_Block        serv_key;
-Sched  serv_ksched;
-#endif
-
-/* for compatibility when sending subscription information to old clients */
-
-#ifdef OLD_COMPAT
-#define        OLD_ZEPHYR_VERSION      "ZEPH0.0"
-#define        OLD_CLIENT_INCOMPSUBS   "INCOMP"
-static void old_compat_subscr_sendlist(ZNotice_t *notice, int auth,
-                                      struct sockaddr_in *who);
-extern int old_compat_count_subscr;    /* counter of old use */
-#endif /* OLD_COMPAT */
-#ifdef NEW_COMPAT
-#define NEW_OLD_ZEPHYR_VERSION "ZEPH0.1"
-static void new_old_compat_subscr_sendlist(ZNotice_t *notice, int auth,
-                                          struct sockaddr_in *who); 
-extern int new_compat_count_subscr;    /* counter of old use */
-#endif /* NEW_COMPAT */
-
-static Code_t add_subscriptions(Client *who, Destlist *subs_queue,
-                               ZNotice_t *notice, Server *server);
-static Destlist *extract_subscriptions(ZNotice_t *notice);
-static void free_subscriptions(Destlist *subs);
-static void free_subscription(Destlist *sub);
-static char **subscr_marshal_subs(ZNotice_t *notice, int auth,
-                                 struct sockaddr_in *who,
-                                 int *found);
-static Destlist *subscr_copy_def_subs(char *person);
-static Code_t subscr_realm_sendit(Client *who, Destlist *subs,
-                                 ZNotice_t *notice, ZRealm *realm);
-static void subscr_unsub_sendit(Client *who, Destlist *subs, 
-                               ZRealm *realm);
-
-static int defaults_read = 0;          /* set to 1 if the default subs
-                                          are in memory */
-static ZNotice_t default_notice;       /* contains default subscriptions */
-
-String *wildcard_instance;
-String *empty;
-
-/* WARNING: make sure this is the same as the number of strings you */
-/* plan to hand back to the user in response to a subscription check, */
-/* else you will lose.  See subscr_sendlist() */  
-#define        NUM_FIELDS      3
-
-/*
- * subscribe the client to types described in notice.
- */
-
-Code_t
-subscr_subscribe(Client *who,
-                ZNotice_t *notice,
-                Server *server)
-{
-    Destlist *subs;
-
-    subs = extract_subscriptions(notice);
-    return add_subscriptions(who, subs, notice, server);
-}
-
-static Code_t
-add_subscriptions(Client *who,
-                 Destlist *subs,
-                 ZNotice_t *notice,
-                 Server *server)
-{
-    Destlist *next;
-    Code_t retval;
-    Acl *acl;
-    String *sender;
-    ZRealm *realm = NULL;
-
-    if (!subs)
-       return ZERR_NONE;       /* no subscr -> no error */
-
-    sender = make_string(notice->z_sender, 0);
-
-    /* Loop over the new subscriptions. */
-    for (; subs; subs = next) {
-       next = subs->next;
-       /* check the recipient for a realm which isn't ours */
-       realm = NULL;
-       if (subs->dest.recip->string[0] == '@' &&
-           strcmp((subs->dest.recip->string + 1), ZGetRealm()) != 0)
-           realm = realm_get_realm_by_name(subs->dest.recip->string + 1);
-       if (!bdumping) {
-           if (subs->dest.recip != empty && subs->dest.recip != sender
-               && subs->dest.recip->string[0] != '@') {
-               syslog(LOG_WARNING, "subscr unauth %s recipient %s",
-                      sender->string, subs->dest.recip->string);
-               free_subscription(subs); /* free this one - denied */
-               continue; /* the for loop */
-           }
-           acl = class_get_acl(subs->dest.classname);
-           if (acl && !realm) {
-               if (!access_check(sender->string, acl, SUBSCRIBE)) {
-                   syslog(LOG_WARNING, "subscr unauth %s class %s",
-                          sender->string, subs->dest.classname->string);
-                   free_subscription(subs); /* free this one - denied */
-                   continue; /* the for loop */
-               }
-               if (wildcard_instance == subs->dest.inst) {
-                   if (!access_check(sender->string, acl, INSTWILD)) {
-                       syslog(LOG_WARNING,
-                              "subscr unauth %s class %s wild inst",
-                              sender->string, subs->dest.classname->string);
-                       free_subscription(subs); /* free this one - denied */
-                       continue; /* the for loop */
-                   }
-               }
-           }
-       }
-       if (realm && !bdumping) {
-               retval = subscr_realm_sendit(who, subs, notice, realm);
-               if (retval != ZERR_NONE) {
-                   free_subscription(subs);
-                   continue; /* the for loop */
-           } else {
-                   /* Indicates we leaked traffic back to our realm */
-                   free_subscription(subs); /* free this one, wil get from
-                                               ADD */
-           }
-       } else {
-         retval = triplet_register(who, &subs->dest, NULL);
-         if (retval != ZERR_NONE) {
-             if (retval == ZSRV_CLASSXISTS) {
-                 free_subscription(subs); /* free this one */
-             } else {
-                 free_subscriptions(subs);
-                 free_string(sender);
-                 return retval;
-             }
-         } else {
-             /* If realm, let the REALM_ADD_SUBSCRIBE do insertion */
-             Destlist_insert(&who->subs, subs);
-         }
-       }
-    }
-
-    free_string(sender);
-    return ZERR_NONE;
-}
-
-/*
- * add default subscriptions to the client's subscription chain.
- */
-
-Code_t
-subscr_def_subs(Client *who)
-{
-    Destlist *subs;
-
-    subs = subscr_copy_def_subs(who->principal->string);
-    return add_subscriptions(who, subs, &default_notice, NULL);
-}
-
-void
-subscr_reset(void)
-{
-    free(default_notice.z_message);
-    default_notice.z_message = NULL;
-    defaults_read = 0;
-}
-
-static Destlist *
-subscr_copy_def_subs(char *person)
-{
-    int retval, fd;
-    struct stat statbuf;
-    char *def_sub_area, *cp;
-    Destlist *subs, *sub;
-
-    if (!defaults_read) {
-       fd = open(subs_file, O_RDONLY, 0666);
-       if (fd < 0) {
-           syslog(LOG_ERR, "can't open %s:%m", subs_file);
-           return NULL;
-       }
-       retval = fstat(fd, &statbuf);
-       if (retval < 0) {
-           syslog(LOG_ERR, "fstat failure on %s:%m", subs_file);
-           close(fd);
-           return NULL;
-       }
-       def_sub_area = (char *) malloc(statbuf.st_size + 1);
-       if (!def_sub_area) {
-           syslog(LOG_ERR, "no mem copy_def_subs");
-           close(fd);
-           return NULL;
-       }
-       retval = read(fd, def_sub_area, (size_t) statbuf.st_size);
-       if (retval != statbuf.st_size) {
-           syslog(LOG_ERR, "short read in copy_def_subs");
-           close(fd);
-           return NULL;
-       }
-
-       close(fd);
-       def_sub_area[statbuf.st_size] = '\0'; /* null-terminate it */
-
-       /*
-          def_subs_area now points to a buffer full of subscription info.
-          Each line of the stuff is of the form:
-          class,inst,recipient
-
-          Commas and newlines may not appear as part of the class,
-          instance, or recipient. XXX!
-          */
-
-       /* split up the subscription info */
-       for (cp = def_sub_area; cp < def_sub_area + statbuf.st_size; cp++) {
-           if (*cp == '\n' || *cp == ',')
-               *cp = '\0';
-       }
-       default_notice.z_message = def_sub_area;
-       default_notice.z_message_len = statbuf.st_size + 1;
-       default_notice.z_auth = 1;
-       defaults_read = 1;
-    }
-
-    /* needed later for access_check() */
-    default_notice.z_sender = person;
-    subs = extract_subscriptions(&default_notice);
-    /* replace any non-* recipients with "person" */
-
-    for (sub = subs; sub; sub = sub->next) {
-       /* if not a wildcard, replace it with person */
-       if (strcmp(sub->dest.recip->string, "*")) {
-           free_string(sub->dest.recip);
-           sub->dest.recip = make_string(person, 0);
-       } else {                /* replace with null recipient */
-           free_string(sub->dest.recip);
-           sub->dest.recip = dup_string(empty);
-       }
-    }
-    return subs;
-}
-
-/*
- * Cancel a specific set of subscriptions.
- */
-
-Code_t
-subscr_cancel(struct sockaddr_in *sin,
-             ZNotice_t *notice)
-{
-    ZRealm *realm;
-    Client *who;
-    Destlist *cancel_subs, *subs, *cancel_next, *client_subs, *client_next;
-    Code_t retval;
-    int found = 0;
-
-    who = client_find(&sin->sin_addr, notice->z_port);
-    if (!who)
-       return ZSRV_NOCLT;
-
-    if (!who->subs)
-       return ZSRV_NOSUB;
-
-    cancel_subs = extract_subscriptions(notice);
-    if (!cancel_subs)
-       return ZERR_NONE;       /* no subscr -> no error */
-
-    for (subs = cancel_subs; subs; subs = cancel_next) {
-       cancel_next = subs->next;
-       for (client_subs = who->subs; client_subs; client_subs = client_next) {
-           client_next = client_subs->next;
-           if (ZDest_eq(&client_subs->dest, &subs->dest)) {
-               Destlist_delete(client_subs);
-               retval = triplet_deregister(who, &client_subs->dest, NULL);
-               if (retval == ZSRV_EMPTYCLASS &&
-                   client_subs->dest.recip->string[0] == '@') {
-                   realm =
-                       realm_get_realm_by_name(client_subs->dest.recip->string
-                                               + 1);
-                   if (realm)
-                       subscr_unsub_sendit(who, client_subs, realm);
-                   realm = NULL;
-               }
-               free_subscription(client_subs);
-               found = 1;
-               break;
-           }
-       }
-    }
-
-    free_subscriptions(cancel_subs);
-
-    if (found) {
-       return ZERR_NONE;
-    } else {
-       return ZSRV_NOSUB;
-    }
-}
-
-Code_t
-subscr_realm_cancel(struct sockaddr_in *sin,
-                   ZNotice_t *notice,
-                   ZRealm *realm)
-{
-    Destlist *cancel_subs, *subs, *client_subs, *next, *next2;
-    Code_t retval;
-    int found = 0;
-
-    if (!realm)
-        return ZSRV_NORLM;
-
-    if (!realm->subs)
-        return ZSRV_NOSUB;
-
-    cancel_subs = extract_subscriptions(notice);
-    if (!cancel_subs)
-        return ZERR_NONE;       /* no subscr -> no error */
-
-    for (subs = cancel_subs; subs; subs = next) {
-        next = subs->next;
-        for (client_subs = realm->subs; client_subs; client_subs = next2) {
-            next2 = client_subs->next;
-            if (ZDest_eq(&client_subs->dest, &subs->dest)) {
-                Destlist_delete(client_subs);
-                retval = triplet_deregister(realm->client, &client_subs->dest, realm);
-               free_subscription(client_subs);
-                found = 1;
-                break;
-            }
-        }
-    }
-
-    free_subscriptions(cancel_subs);
-
-    if (found) {
-        return ZERR_NONE;
-    } else {
-        return ZSRV_NOSUB;
-    }
-}
-
-/*
- * Cancel all the subscriptions for this client.
- */
-
-void
-subscr_cancel_client(Client *client)
-{
-    Destlist *subs, *next;
-    Code_t retval;
-    ZRealm *realm;
-
-    if (!client->subs)
-       return;
-
-    for (subs = client->subs; subs; subs = next) {
-       next = subs->next;
-       retval = triplet_deregister(client, &subs->dest, NULL);
-       if (retval == ZSRV_EMPTYCLASS &&
-           subs->dest.recip->string[0] == '@') {
-           realm = realm_get_realm_by_name(subs->dest.recip->string + 1);
-           if (realm)
-               subscr_unsub_sendit(client, subs, realm);
-           realm = NULL;
-       }
-       free_subscription(subs);
-    }
-
-    client->subs = NULL;
-}
-
-/*
- * Send the requester a list of his current subscriptions
- */
-
-void
-subscr_sendlist(ZNotice_t *notice,
-               int auth,
-               struct sockaddr_in *who)
-{
-    char **answer;
-    int found;
-    struct sockaddr_in send_to_who;
-    Code_t retval;
-
-#ifdef OLD_COMPAT
-    if (strcmp(notice->z_version, OLD_ZEPHYR_VERSION) == 0) {
-       /* we are talking to an old client; use the old-style
-          acknowledgement-message */
-       old_compat_subscr_sendlist(notice, auth, who);
-       return;
-    }
-#endif /* OLD_COMPAT */
-#ifdef NEW_COMPAT
-    if (strcmp(notice->z_version, NEW_OLD_ZEPHYR_VERSION) == 0) {
-       /* we are talking to a new old client; use the new-old-style
-          acknowledgement-message */
-       new_old_compat_subscr_sendlist(notice, auth, who);
-       return;
-    }
-#endif /* NEW_COMPAT */
-    answer = subscr_marshal_subs(notice, auth, who, &found);
-    send_to_who = *who;
-    send_to_who.sin_port = notice->z_port;  /* Return port */
-
-    retval = ZSetDestAddr(&send_to_who);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "subscr_sendlist set addr: %s",
-              error_message(retval));
-       if (answer)
-           free(answer);
-       return;
-    }
-
-    /* XXX for now, don't do authentication */
-    auth = 0;
-
-    notice->z_kind = ACKED;
-
-    /* use xmit_frag() to send each piece of the notice */
-
-    retval = ZSrvSendRawList(notice, answer, found * NUM_FIELDS, xmit_frag);
-    if (retval != ZERR_NONE)
-       syslog(LOG_WARNING, "subscr_sendlist xmit: %s", error_message(retval));
-    if (answer)
-       free(answer);
-}
-
-static char **
-subscr_marshal_subs(ZNotice_t *notice,
-                   int auth,
-                   struct sockaddr_in *who,
-                   int *found)
-{
-    char **answer = NULL;
-    unsigned short temp;
-    Code_t retval;
-    Client *client = NULL;
-    Destlist *subs = NULL, *sub;
-    int i;
-    int defsubs = 0;
-
-    *found = 0;
-    
-    /* Note that the following code is an incredible crock! */
-       
-    /* We cannot send multiple packets as acknowledgements to the client,
-       since the hostmanager will ignore the later packets.  So we need
-       to send directly to the client. */
-
-    /* Make our own copy so we can send directly back to the client */
-    /* RSF 11/07/87 */
-
-    if (strcmp(notice->z_opcode, CLIENT_GIMMESUBS) == 0) {
-       /* If the client has requested his current subscriptions,
-          the message field of the notice contains the port number
-          of the client for which the sender desires the subscription
-          list.  The port field is the port of the sender. */
-
-       retval = ZReadAscii16(notice->z_message, notice->z_message_len, &temp);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_WARNING, "subscr_marshal read port num: %s",
-                  error_message(retval));
-           return(NULL);
-       }
-
-       client = client_find(&who->sin_addr, htons(temp));
-
-       if (client)
-           subs = client->subs;
-    } else if (strcmp(notice->z_opcode, CLIENT_GIMMEDEFS) == 0) {
-       /* subscr_copy_def_subs allocates new pointer rings, so
-          it must be freed when finished.
-          the string areas pointed to are static, however.*/
-       subs = subscr_copy_def_subs(notice->z_sender);
-       defsubs = 1;
-    } else {
-       syslog(LOG_ERR, "subscr_marshal bogus opcode %s",
-              notice->z_opcode);
-       return(NULL);
-    }
-
-    if (subs) {
-
-       /* check authenticity here.  The user must be authentic to get
-          a list of subscriptions. If he is not subscribed to
-          anything, this if-clause fails, and he gets a response
-          indicating no subscriptions.
-          if retrieving default subscriptions, don't care about
-          authentication. */
-
-       if (!auth && !defsubs)
-           return(NULL);
-       if (!defsubs) {
-           if (client && (strcmp(client->principal->string,
-                                 notice->z_sender) != 0)) {
-               zdbug ((LOG_DEBUG,
-                       "subscr_marshal: %s requests subs for %s at %s/%d",
-                       notice->z_sender, client->principal->string,
-                       inet_ntoa(who->sin_addr), ntohs(who->sin_port)));
-               return 0;
-           }
-       }
-
-       for (sub = subs; sub; sub = sub->next)
-           (*found)++;
-
-       /* found is now the number of subscriptions */
-
-       /* coalesce the subscription information into a list of char *'s */
-       answer = (char **) malloc((*found) * NUM_FIELDS * sizeof(char *));
-       if (answer == NULL) {
-           syslog(LOG_ERR, "subscr no mem(answer)");
-           *found = 0;
-       } else {
-           i = 0;
-           for (sub = subs; sub; sub = sub->next) {
-               answer[i * NUM_FIELDS] = sub->dest.classname->string;
-               answer[i * NUM_FIELDS + 1] = sub->dest.inst->string;
-               answer[i * NUM_FIELDS + 2] = sub->dest.recip->string;
-               i++;
-           }
-       }
-    }
-    if (defsubs)
-       free_subscriptions(subs);
-    return answer;
-}
-
-#ifdef NEW_COMPAT
-static void
-new_old_compat_subscr_sendlist(notice, auth, who)
-    ZNotice_t *notice;
-    int auth;
-    struct sockaddr_in *who;
-{
-    Code_t retval;
-    ZNotice_t reply;
-    ZPacket_t reppacket;
-    int packlen, found, count, initfound, zerofound;
-    char buf[64];
-    const char **answer;
-    struct sockaddr_in send_to_who;
-    int i;
-
-    new_compat_count_subscr++;
-
-    syslog(LOG_INFO, "new old subscr, %s", inet_ntoa(who->sin_addr));
-    reply = *notice;
-    reply.z_kind = SERVACK;
-    reply.z_authent_len = 0; /* save some space */
-    reply.z_auth = 0;
-
-    send_to_who = *who;
-    send_to_who.sin_port = notice->z_port;  /* Return port */
-
-    retval = ZSetDestAddr(&send_to_who);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "new_old_subscr_sendlist set addr: %s",
-              error_message(retval));
-       return;
-    }
-
-    /* retrieve  the subscriptions */
-    answer = subscr_marshal_subs(notice, auth, who, &found);
-
-    /* note that when there are no subscriptions, found == 0, so
-       we needn't worry about answer being NULL since
-       ZFormatSmallRawNoticeList won't reference the pointer */
-
-    /* send 5 at a time until we are finished */
-    count = found?((found-1) / 5 + 1):1;       /* total # to be sent */
-    i = 0;                                     /* pkt # counter */
-    initfound = found;
-    zerofound = (found == 0);
-    while (found > 0 || zerofound) {
-       packlen = sizeof(reppacket);
-       sprintf(buf, "%d/%d", ++i, count);
-       reply.z_opcode = buf;
-       retval = ZFormatSmallRawNoticeList(&reply,
-                                          answer + (initfound - found)
-                                           * NUM_FIELDS,
-                                          ((found > 5) ? 5 : found)
-                                           * NUM_FIELDS,
-                                          reppacket, &packlen);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_ERR, "subscr_sendlist format: %s",
-                  error_message(retval));
-           if (answer)
-               free(answer);
-           return;
-       }
-       retval = ZSendPacket(reppacket, packlen, 0);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_WARNING, "subscr_sendlist xmit: %s",
-                  error_message(retval));
-           if (answer)
-               free(answer);
-           return;
-       }
-       found -= 5;
-       zerofound = 0;
-    }
-    if (answer)
-       free(answer);
-}
-#endif /* NEW_COMPAT */
-
-#ifdef OLD_COMPAT
-static void
-old_compat_subscr_sendlist(notice, auth, who)
-    ZNotice_t *notice;
-    int auth;
-    struct sockaddr_in *who;
-{
-    Client *client = client_find(&who->sin_addr, notice->z_port);
-    Destlist *subs;
-    Code_t retval;
-    ZNotice_t reply;
-    ZPacket_t reppacket;
-    int packlen, i, found = 0;
-    char **answer = NULL;
-
-    old_compat_count_subscr++;
-
-    syslog(LOG_INFO, "old old subscr, %s", inet_ntoa(who->sin_addr));
-    if (client && client->subs) {
-
-       /* check authenticity here.  The user must be authentic to get
-          a list of subscriptions. If he is not subscribed to
-          anything, the above test fails, and he gets a response
-          indicating no subscriptions */
-
-       if (!auth) {
-           clt_ack(notice, who, AUTH_FAILED);
-           return;
-       }
-
-       for (subs = client->subs; subs; subs = subs->next)
-           found++;
-       /* found is now the number of subscriptions */
-
-       /* coalesce the subscription information into a list of char *'s */
-       answer = (char **) malloc(found * NUM_FIELDS * sizeof(char *));
-       if (!answer) {
-           syslog(LOG_ERR, "old_subscr_sendlist no mem(answer)");
-           found = 0;
-       } else {
-           i = 0;
-           for (subs = client->subs; subs; subs = subs->next) {
-               answer[i*NUM_FIELDS] = subs->dest.classname->string;
-               answer[i*NUM_FIELDS + 1] = subs->dest.inst->string;
-               answer[i*NUM_FIELDS + 2] = subs->dest.recip->string;
-               i++;
-           }
-       }
-    }
-
-    /* note that when there are no subscriptions, found == 0, so
-       we needn't worry about answer being NULL */
-
-    reply = *notice;
-    reply.z_kind = SERVACK;
-    reply.z_authent_len = 0; /* save some space */
-    reply.z_auth = 0;
-
-    /* if it's too long, chop off one at a time till it fits */
-    while ((retval = ZFormatSmallRawNoticeList(&reply, answer,
-                                              found * NUM_FIELDS,
-                                              reppacket,
-                                              &packlen)) != ZERR_PKTLEN) {
-       found--;
-       reply.z_opcode = OLD_CLIENT_INCOMPSUBS;
-    }
-    if (retval != ZERR_NONE) {
-       syslog(LOG_ERR, "old_subscr_sendlist format: %s",
-              error_message(retval));
-       if (answer)
-           free(answer);
-       return;
-    }
-    retval = ZSetDestAddr(who);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "subscr_sendlist set addr: %s",
-              error_message(retval));
-       if (answer)
-           free(answer);
-       return;
-    }
-    retval = ZSendPacket(reppacket, packlen, 0);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "subscr_sendlist xmit: %s",
-              error_message(retval));
-       if (answer)
-           free(answer);
-       return;
-    }
-    if (answer)
-       free(answer);
-}
-#endif /* OLD_COMPAT */
-
-/*
- * Send the client's subscriptions to another server
- */
-
-/* version is currently unused; if necessary later versions may key off it
-   to determine what to send to the peer (protocol changes) */
-
-/*ARGSUSED*/
-Code_t
-subscr_send_subs(Client *client)
-{
-    int i = 0;
-    Destlist *subs;
-#ifdef HAVE_KRB5
-    char buf[512];
-    unsigned char *bufp;
-#else
-#ifdef HAVE_KRB4
-    char buf[512];
-    C_Block cblock;
-#endif /* HAVE_KRB4 */
-#endif
-    char buf2[512];
-    char *list[7 * NUM_FIELDS];
-    int num = 0;
-    Code_t retval;
-
-    sprintf(buf2, "%d",ntohs(client->addr.sin_port));
-
-    list[num++] = buf2;
-
-#ifdef HAVE_KRB5
-#ifdef HAVE_KRB4 /* XXX make this optional for server transition time */
-    if (Z_enctype(client->session_keyblock) == ENCTYPE_DES_CBC_CRC) {
-       bufp = malloc(Z_keylen(client->session_keyblock));
-       if (bufp == NULL) {
-           syslog(LOG_WARNING, "subscr_send_subs: cannot allocate memory for DES keyblock: %m");
-           return errno;
-       }
-       des_ecb_encrypt((C_Block *)Z_keydata(client->session_keyblock), (C_Block *)bufp, serv_ksched.s, DES_ENCRYPT);
-       retval = ZMakeAscii(buf, sizeof(buf), bufp, Z_keylen(client->session_keyblock));
-    } else {
-#endif
-       bufp = malloc(Z_keylen(client->session_keyblock) + 8); /* + enctype
-                                                               + length */
-       if (bufp == NULL) {
-           syslog(LOG_WARNING, "subscr_send_subs: cannot allocate memory for keyblock: %m");
-           return errno;
-       }
-       *(krb5_enctype *)&bufp[0] = htonl(Z_enctype(client->session_keyblock));
-       *(u_int32_t *)&bufp[4] = htonl(Z_keylen(client->session_keyblock));
-       memcpy(&bufp[8], Z_keydata(client->session_keyblock), Z_keylen(client->session_keyblock));
-
-       retval = ZMakeZcode(buf, sizeof(buf), bufp, Z_keylen(client->session_keyblock) + 8);
-#ifdef HAVE_KRB4
-    }
-#endif /* HAVE_KRB4 */
-#else /* HAVE_KRB5 */
-#ifdef HAVE_KRB4
-    des_ecb_encrypt((des_cblock *)client->session_key, (des_cblock *)cblock,
-                   serv_ksched.s, DES_ENCRYPT);
-
-    retval = ZMakeAscii(buf, sizeof(buf), cblock, sizeof(C_Block));
-#endif /* HAVE_KRB4 */
-#endif /* HAVE_KRB5 */    
-
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-    if (retval != ZERR_NONE) {
-    } else {
-       list[num++] = buf;
-    }          
-#endif /* HAVE_KRB4 || HAVE_KRB5*/
-    retval = bdump_send_list_tcp(SERVACK, &client->addr, ZEPHYR_ADMIN_CLASS,
-                                num > 1 ? "CBLOCK" : "", ADMIN_NEWCLT,
-                                client->principal->string, "", list, num);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_ERR, "subscr_send_subs newclt: %s", error_message(retval));
-       return retval;
-    }
-
-    if (!client->subs)
-       return ZERR_NONE;
-
-    for (subs = client->subs; subs; subs = subs->next) {
-       /* for each subscription */
-       list[i * NUM_FIELDS] = subs->dest.classname->string;
-       list[i * NUM_FIELDS + 1] = subs->dest.inst->string;
-       list[i * NUM_FIELDS + 2] = subs->dest.recip->string;
-       i++;
-       if (i >= 7) {
-           /* we only put 7 in each packet, so we don't run out of room */
-           retval = bdump_send_list_tcp(ACKED, &client->addr,
-                                        ZEPHYR_CTL_CLASS, "",
-                                        CLIENT_SUBSCRIBE, "", "", list,
-                                        i * NUM_FIELDS);
-           if (retval != ZERR_NONE) {
-               syslog(LOG_ERR, "subscr_send_subs subs: %s",
-                      error_message(retval));
-               return retval;
-           }
-           i = 0;
-       }
-    }
-    if (i) {
-       retval = bdump_send_list_tcp(ACKED, &client->addr, ZEPHYR_CTL_CLASS,
-                                    "", CLIENT_SUBSCRIBE, "", "", list,
-                                    i * NUM_FIELDS);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_ERR, "subscr_send_subs subs: %s",
-                  error_message(retval));
-           return retval;
-       }
-    }
-
-    return ZERR_NONE;
-}
-
-/*
- * free the memory allocated for the list of subscriptions.
- */
-
-/*
- * free the memory allocated for one subscription.
- */
-
-static void
-free_subscription(Destlist *sub)
-{
-    free_string(sub->dest.classname);
-    free_string(sub->dest.inst);
-    free_string(sub->dest.recip);
-    free(sub);
-}
-
-static void
-free_subscriptions(Destlist *subs)
-{
-    Destlist *next;
-
-    for (; subs; subs = next) {
-       next = subs->next;
-       free_subscription (subs);
-    }
-}
-
-#define        ADVANCE(xx)     { cp += (strlen(cp) + 1); \
-                 if (cp >= notice->z_message + notice->z_message_len) { \
-                         syslog(LOG_WARNING, "malformed subscription %d", \
-                                xx); \
-                         return subs; \
-                 }}
-
-/*
- * Parse the message body, returning a linked list of subscriptions, or
- * NULL if there are no subscriptions there.
- */
-
-static Destlist *
-extract_subscriptions(ZNotice_t *notice)
-{
-    Destlist *subs = NULL, *sub;
-    char *recip, *class_name, *classinst;
-    char *cp = notice->z_message;
-
-    /* parse the data area for the subscriptions */
-    while (cp < notice->z_message + notice->z_message_len) {
-       class_name = cp;
-       if (*cp == '\0')            /* we've exhausted the subscriptions */
-           return(subs);
-       ADVANCE(1);
-       classinst = cp;
-       ADVANCE(2);
-       recip = cp;
-       cp += (strlen(cp) + 1);
-       if (cp > notice->z_message + notice->z_message_len) {
-           syslog(LOG_WARNING, "malformed sub 3");
-           return subs;
-       }
-       sub = (Destlist *) malloc(sizeof(Destlist));
-       if (!sub) {
-           syslog(LOG_WARNING, "ex_subs: no mem 2");
-           return subs;
-       }
-       sub->dest.classname = make_string(class_name, 1);
-       sub->dest.inst = make_string(classinst, 1);
-       /* Nuke @REALM if REALM is us. */
-       if (recip[0] == '@' && !strcmp(recip + 1, ZGetRealm()))
-           sub->dest.recip = make_string("", 0);
-       else
-           sub->dest.recip = make_string(recip, 0);
-       Destlist_insert(&subs, sub);
-    }
-    return subs;
-}
-
-/*
- * print subscriptions in subs onto fp.
- * assumed to be called with SIGFPE blocked
- * (true if called from signal handler)
- */
-
-void
-subscr_dump_subs(FILE *fp,
-                Destlist *subs)
-{
-    if (!subs)                 /* no subscriptions to dump */
-       return;
-
-    for (; subs; subs = subs->next) {
-       fputs("\t'", fp);
-       dump_quote(subs->dest.classname->string, fp);
-       fputs("' '", fp);
-       dump_quote(subs->dest.inst->string, fp);
-       fputs("' '", fp);
-       dump_quote(subs->dest.recip->string, fp);
-       fputs("'\n", fp);
-    }
-}
-
-#define I_ADVANCE(xx)   { cp += (strlen(cp) + 1); \
-                  if (cp >= notice->z_message + notice->z_message_len) { \
-                          syslog(LOG_WARNING, "malformed subscription %d", \
-                                 xx); \
-                          return (ZERR_NONE); \
-                  }}
-
-/* As it exists, this function expects to take only the first sub from the 
- * Destlist. At some point, it and the calling code should be replaced */
-static Code_t
-subscr_realm_sendit(Client *who,
-                   Destlist *subs,
-                   ZNotice_t *notice,
-                   ZRealm *realm)
-{
-  ZNotice_t snotice;
-  char *pack;
-  int packlen;
-  char **text;
-  Code_t retval;
-  char addr[16];          /* xxx.xxx.xxx.xxx max */
-  char port[16];
-  
-  if ((text=(char **)malloc((NUM_FIELDS + 2)*sizeof(char *))) == (char **)0) {
-      syslog(LOG_ERR, "subscr_rlm_sendit malloc");
-      return(ENOMEM);
-  }
-  /* convert the address to a string of the form x.x.x.x/port */
-  strcpy(addr, inet_ntoa(who->addr.sin_addr));
-  if ((retval = ZMakeAscii(port, sizeof(port), (unsigned char *) 
-                           &who->addr.sin_port, sizeof(u_short))) != ZERR_NONE) 
-    {
-      syslog(LOG_ERR, "subscr_rlm_sendit make ascii: %s",
-             error_message(retval));
-      return(ZERR_NONE);
-    }
-  text[0] = addr;
-  text[1] = port;
-
-  text[2] = subs->dest.classname->string;
-  text[3] = subs->dest.inst->string;
-  text[4] = subs->dest.recip->string;
-  
-  zdbug((LOG_DEBUG, "subscr_realm_sendit %s/%s (%s) %s,%s,%s\n",
-         text[0], text[1], who->principal->string, text[2], text[3], text[4]));
-  
-  /* format snotice */
-  memset (&snotice, 0, sizeof(snotice));
-  snotice.z_class_inst = ZEPHYR_CTL_REALM;
-  snotice.z_opcode = REALM_REQ_SUBSCRIBE;
-  snotice.z_port = srv_addr.sin_port;
-
-  snotice.z_class = ZEPHYR_CTL_CLASS;
-
-  snotice.z_recipient = "";
-  snotice.z_kind = ACKED;
-  snotice.z_num_other_fields = 0;
-  snotice.z_sender = who->principal->string;
-  snotice.z_recipient = notice->z_recipient;
-  snotice.z_default_format = notice->z_default_format;
-  
-  if ((retval = ZFormatNoticeList(&snotice, text, NUM_FIELDS + 2,
-                                  &pack, &packlen, ZNOAUTH)) != ZERR_NONE) 
-    {
-      syslog(LOG_WARNING, "subscr_rlm_sendit format: %s",
-             error_message(retval));
-      free(text);
-      return(ZERR_NONE);
-    }
-  free(text);
-  
-  if ((retval = ZParseNotice(pack, packlen, &snotice)) != ZERR_NONE) {
-    syslog(LOG_WARNING, "subscr_rlm_sendit parse: %s",
-           error_message(retval));
-    free(pack);
-    return(ZERR_NONE);
-  }
-  
-  realm_handoff(&snotice, 1, &(who->addr), realm, 0);
-  free(pack);
-  
-  return(ZERR_NONE);
-}
-
-/* Called from subscr_realm and subscr_foreign_user */
-static Code_t
-subscr_add_raw(Client *client,
-              ZRealm *realm,
-              Destlist *newsubs)
-{
-  Destlist *subs, *subs2, **head;
-  Code_t retval;
-
-  head = (realm) ? &realm->subs : &client->subs;
-
-  /* Loop over the new subscriptions. */
-  for (subs = newsubs; subs; subs = subs2) {
-    subs2 = subs->next;
-#ifdef DEBUG
-    zdbug((LOG_DEBUG,"subscr_add_raw: %s/%s/%s", subs->dest.classname->string, subs->dest.inst->string, subs->dest.recip->string));
-    if (realm)
-      zdbug((LOG_DEBUG,"subscr_add_raw: realm is %s", realm->name));
-#endif
-    retval = triplet_register(client, &subs->dest, realm);
-    if (retval != ZERR_NONE) {
-       free_subscription(subs);
-       if (retval == ZSRV_CLASSXISTS) {
-           continue;
-       } else {
-           free_subscriptions(subs2);
-           return retval;
-       }
-    } else {
-      if (!realm) {
-       ZRealm *remrealm = 
-         realm_get_realm_by_name(subs->dest.recip->string + 1);
-       if (remrealm) {
-         Destlist *sub = (Destlist *) malloc(sizeof(Destlist));
-         if (!sub) {
-            syslog(LOG_WARNING, "subscr_add_raw: no mem");
-         } else {
-           sub->dest.classname = make_string(subs->dest.classname->string, 0);
-           sub->dest.inst = make_string(subs->dest.inst->string, 0);
-           sub->dest.recip = make_string(subs->dest.recip->string, 0);
-           zdbug ((LOG_DEBUG, "subscr: add %s/%s/%s in %s",
-                   sub->dest.classname->string, sub->dest.inst->string, 
-                   sub->dest.recip->string, remrealm->name));
-           Destlist_insert(&remrealm->remsubs, sub);
-         }
-       }
-      }
-    }
-    Destlist_insert(head, subs);
-  }
-  return ZERR_NONE;
-}
-
-/* Called from bdump_recv_loop to decapsulate realm subs */
-Code_t
-subscr_realm(ZRealm *realm,
-            ZNotice_t *notice)
-{
-        Destlist  *newsubs;
-
-        newsubs = extract_subscriptions(notice);
-
-        if (!newsubs) {
-                syslog(LOG_WARNING, "empty subs in subscr_realm");
-                return(ZERR_NONE);
-        }
-
-        return(subscr_add_raw(realm->client, realm, newsubs));
-}
-
-/* Like realm_sendit, this only takes one item from subs */
-static void
-subscr_unsub_sendit(Client *who,
-                   Destlist *subs,
-                   ZRealm *realm)
-{
-  ZNotice_t unotice;
-  Code_t retval;
-  char **list;
-  char *pack;
-  int packlen;
-  Destlist *subsp, *subsn;
-
-  for (subsp = realm->remsubs; subsp; subsp = subsn) {
-    subsn = subsp->next;
-    if (ZDest_eq(&subs->dest, &subsp->dest)) {
-      zdbug ((LOG_DEBUG, "subscr: del %s/%s/%s in %s",
-             subsp->dest.classname->string, subsp->dest.inst->string, 
-             subsp->dest.recip->string, realm->name));
-      Destlist_delete(subsp);
-      free_subscription(subsp);
-      break;
-    }
-  }
-
-  if ((list=(char **)malloc((NUM_FIELDS)*sizeof(char *))) == (char **)0) {
-      syslog(LOG_ERR, "subscr_unsub_sendit malloc");
-      return;
-  }
-
-  list[0] = subs->dest.classname->string;
-  list[1] = subs->dest.inst->string;
-  list[2] = "";
-
-  unotice.z_class = ZEPHYR_CTL_CLASS;
-  unotice.z_class_inst = ZEPHYR_CTL_REALM;
-  unotice.z_opcode = REALM_UNSUBSCRIBE;
-  unotice.z_recipient = "";
-  unotice.z_kind = ACKED;
-
-  unotice.z_sender = "";
-  unotice.z_port = srv_addr.sin_port;
-  unotice.z_num_other_fields = 0;
-  unotice.z_default_format = "";
-
-  if ((retval = ZFormatNoticeList(&unotice, list, NUM_FIELDS, &pack, &packlen, ZNOAUTH)) != ZERR_NONE) {
-    syslog(LOG_WARNING, "subscr_unsub_sendit format: %s",
-           error_message(retval));
-    free(list);
-    return;
-  }
-  free(list);
-
-  if ((retval = ZParseNotice(pack, packlen, &unotice)) != ZERR_NONE) {
-    syslog(LOG_WARNING, "subscr_unsub_sendit parse: %s",
-           error_message(retval));
-    free(pack);
-    return;
-  }
-  realm_handoff(&unotice, 1, who ? &(who->addr) : NULL, realm, 0);
-  free(pack);
-}
-
-/* Called from bump_send_loop by way of realm_send_realms */
-Code_t
-subscr_send_realm_subs(ZRealm *realm)
-{
-  int i = 0;
-  Destlist *subs, *next;
-  char buf[512];
-  char *list[7 * NUM_FIELDS];
-  int num = 0;
-  Code_t retval;
-
-  strcpy(buf, realm->name);
-  list[num++] = buf;
-
-  retval = bdump_send_list_tcp(SERVACK, &srv_addr, ZEPHYR_ADMIN_CLASS,
-                               "", ADMIN_NEWREALM, "", "", list, num);
-  if (retval != ZERR_NONE) {
-    syslog(LOG_ERR, "subscr_send_realm_subs newclt: %s", error_message(retval));
-    return retval;
-  }
-  
-  if (!realm->subs)
-    return ZERR_NONE;
-
-  for (subs=realm->subs; subs; subs = next) {
-    next = subs->next;
-#ifdef DEBUG
-    zdbug ((LOG_DEBUG, "send_realm_subs: %s/%s/%s", subs->dest.classname->string,
-            subs->dest.inst->string, subs->dest.recip->string));
-#endif
-    /* for each subscription */
-    list[i * NUM_FIELDS] = subs->dest.classname->string;
-    list[i * NUM_FIELDS + 1] = subs->dest.inst->string;
-    list[i * NUM_FIELDS + 2] = subs->dest.recip->string;
-    i++;
-    if (i >= 7) {
-      /* we only put 7 in each packet, so we don't run out of room */
-      retval = bdump_send_list_tcp(ACKED, &srv_addr,
-                                   ZEPHYR_CTL_CLASS, "",
-                                   REALM_SUBSCRIBE, "", "", list,
-                                   i * NUM_FIELDS);
-      if (retval != ZERR_NONE) {
-        syslog(LOG_ERR, "subscr_send_realm_subs subs: %s",
-               error_message(retval));
-        return retval;
-      }
-      i = 0;
-    }
-  }
-  if (i) {
-    retval = bdump_send_list_tcp(ACKED, &srv_addr, ZEPHYR_CTL_CLASS,
-                                 "", REALM_SUBSCRIBE, "", "", list,
-                                 i * NUM_FIELDS);
-    if (retval != ZERR_NONE) {
-      syslog(LOG_ERR, "subscr_send_realm_subs subs: %s",
-             error_message(retval));
-      return retval;
-    }
-  }
-
-  return ZERR_NONE;
-}
-
-Code_t
-subscr_realm_subs(ZRealm *realm)
-{
-  Destlist *subs, *next;
-  char *text[2 + NUM_FIELDS];
-  unsigned short num = 0;
-  Code_t retval;
-  ZNotice_t snotice;
-  char *pack;
-  int packlen;
-  Client **clientp;
-  char port[16];
-
-  if (!realm->remsubs)
-    return ZERR_NONE;
-
-  for (subs=realm->remsubs; subs; subs = next) {
-    next = subs->next;
-#ifdef DEBUG
-    zdbug ((LOG_DEBUG, "realm_subs: %s/%s/%s", subs->dest.classname->string,
-            subs->dest.inst->string, subs->dest.recip->string));
-#endif
-
-    num = 0;
-    if ((retval = ZMakeAscii(port, sizeof(port), (unsigned char *) 
-                            &num, sizeof(u_short))) != ZERR_NONE) 
-      {
-       syslog(LOG_ERR, "subscr_rlm_sendit make ascii: %s",
-              error_message(retval));
-       return(ZERR_NONE);
-      }
-
-    text[0] = "0.0.0.0";
-    text[1] = port;
-    text[2] = subs->dest.classname->string;
-    text[3] = subs->dest.inst->string;
-    text[4] = subs->dest.recip->string;
-
-    /* format snotice */
-    snotice.z_class_inst = ZEPHYR_CTL_REALM;
-    snotice.z_opcode = REALM_REQ_SUBSCRIBE;
-    snotice.z_port = 0;
-    snotice.z_class = ZEPHYR_CTL_CLASS;
-
-    snotice.z_recipient = "";
-    snotice.z_kind = ACKED;
-    snotice.z_num_other_fields = 0;
-    snotice.z_default_format = "";
-    /* Evil. In the event this is ACL'd, pick a user who is subscribed and
-       resubmit them as the sender. */
-    clientp = triplet_lookup(&subs->dest);
-    if (!clientp)
-      snotice.z_sender = "";
-    else
-      snotice.z_sender = (*clientp)->principal->string;
-
-    if ((retval = ZFormatNoticeList(&snotice, text, NUM_FIELDS + 2,
-                                   &pack, &packlen, ZNOAUTH)) != ZERR_NONE) 
-      {
-       syslog(LOG_WARNING, "subscr_rlm_subs format: %s",
-              error_message(retval));
-       return(ZERR_NONE);
-      }
-  
-    if ((retval = ZParseNotice(pack, packlen, &snotice)) != ZERR_NONE) {
-      syslog(LOG_WARNING, "subscr_rlm_subs parse: %s",
-            error_message(retval));
-      free(pack);
-      return(ZERR_NONE);
-    }
-    realm_handoff(&snotice, 1, NULL, realm, 0);
-    free(pack);
-  }
-
-  return ZERR_NONE;
-}
-
-/* Called from subscr_foreign_user for REALM_REQ_SUBSCRIBE */
-static Code_t
-subscr_check_foreign_subs(ZNotice_t *notice,
-                         struct sockaddr_in *who,
-                         Server *server,
-                         ZRealm *realm,
-                         Destlist *newsubs)
-{
-    Destlist *subs, *next;
-    Acl *acl;
-    char **text;
-    int found = 0;
-    ZNotice_t snotice;
-    char *pack, *cp;
-    int packlen;
-    Code_t retval;
-    String *sender;
-
-    for (subs = newsubs; subs; subs = subs->next)
-       found++;
-
-    if (found == 0)
-       return(ZERR_NONE);
-  
-    sender = make_string(notice->z_sender, 0);
-    
-    if ((text = (char **)malloc((found * NUM_FIELDS + 2) * sizeof(char *))) 
-       == (char **) 0) {
-       syslog(LOG_ERR, "subscr_ck_forn_subs no mem(text)");
-       free_string(sender);
-       return(ENOMEM);
-    }
-
-    /* grab the client information from the incoming message */
-    cp = notice->z_message;
-    text[0] = cp;
-
-    I_ADVANCE(2);
-    text[1] = cp;
-
-    I_ADVANCE(3);
-
-    found = 0;
-    for (subs = newsubs; subs; subs = next) {
-       ZRealm *rlm;
-       next=subs->next;
-       if (subs->dest.recip->string[0] != '\0') {
-         rlm = realm_which_realm(who);
-         syslog(LOG_WARNING, "subscr bad recip %s by %s (%s)",
-                subs->dest.recip->string,
-                sender->string, rlm->name);
-         continue;
-       }
-       acl = class_get_acl(subs->dest.classname);
-       if (acl) {
-           rlm = realm_which_realm(who); 
-           if (rlm && server == me_server) { 
-               if (!realm_sender_in_realm(rlm->name, sender->string)) { 
-                   syslog(LOG_WARNING, "subscr auth not verifiable %s (%s) class %s",
-                          sender->string, rlm->name, 
-                          subs->dest.classname->string);
-                   free_subscriptions(newsubs);
-                   free_string(sender);
-                   free(text);
-                   return ZSRV_CLASSRESTRICTED;
-               } 
-           } 
-           if (!access_check(sender->string, acl, SUBSCRIBE)) {
-               syslog(LOG_WARNING, "subscr unauth %s class %s",
-                      sender->string, subs->dest.classname->string);
-               continue; /* the for loop */
-           }
-           if (wildcard_instance == subs->dest.inst) {
-               if (!access_check(sender->string, acl, INSTWILD)) {
-                   syslog(LOG_WARNING,
-                          "subscr unauth %s class %s wild inst",
-                          sender->string, subs->dest.classname->string);
-                   continue;
-               }
-           }
-       }
-
-       /* okay to subscribe.  save for return trip */
-       text[found*NUM_FIELDS + 2] = subs->dest.classname->string;
-       text[found*NUM_FIELDS + 3] = subs->dest.inst->string;
-       text[found*NUM_FIELDS + 4] = "";
-       found++;
-       
-       retval = triplet_register(realm->client, &subs->dest, realm);
-#ifdef DEBUG
-       zdbug ((LOG_DEBUG, "ck_frn_subs: %s/%s/%s", subs->dest.classname->string,
-               subs->dest.inst->string, subs->dest.recip->string));
-#endif
-
-       if (retval != ZERR_NONE) {
-           if (retval == ZSRV_CLASSXISTS) {
-               continue;
-           } else {
-               free_subscriptions(newsubs); /* subs->next XXX */
-               free_string(sender);
-               free(text);
-               return retval;
-           }
-       }
-       Destlist_insert(&realm->subs, subs);
-    }
-    /* don't send confirmation if we're not the initial server contacted */
-    if (!(server_which_server(who) || found == 0)) {
-       snotice = *notice;
-       snotice.z_opcode = REALM_ADD_SUBSCRIBE;
-       snotice.z_class_inst = ZEPHYR_CTL_REALM;
-       snotice.z_port = srv_addr.sin_port;
-       if ((retval = ZFormatNoticeList(&snotice, text, found * NUM_FIELDS + 2, &pack, &packlen, ZNOAUTH)) != ZERR_NONE) {
-           syslog(LOG_WARNING, "subscr_ck_forn_subs format: %s",
-                  error_message(retval));
-           free_string(sender);
-           free(text);
-           return(ZERR_NONE);      
-       }
-       if ((retval = ZParseNotice(pack, packlen, &snotice)) != ZERR_NONE) {
-           syslog(LOG_WARNING, "subscr_ck_forn_subs parse: %s",
-                  error_message(retval));
-           free_string(sender);
-           free(text);
-           free(pack);
-           return(ZERR_NONE);
-       }
-       realm_handoff(&snotice, 1, who, realm, 0);
-       free(pack);
-    }
-    free_string(sender);
-    free(text);
-    return ZERR_NONE;
-}
-
-/* Called from realm_control_dispatch for REALM_REQ/ADD_SUBSCRIBE */
-Code_t subscr_foreign_user(ZNotice_t *notice,
-                          struct sockaddr_in *who,
-                          Server *server,
-                          ZRealm *realm)
-{
-  Destlist *newsubs, *temp;
-  Code_t status;
-  Client *client;
-  ZNotice_t snotice;
-  struct sockaddr_in newwho;
-  char *cp, *tp0, *tp1;
-  char rlm_recipient[REALM_SZ + 1];
-  
-  tp0 = cp = notice->z_message;
-  
-  newwho.sin_addr.s_addr = inet_addr(cp);
-  if (newwho.sin_addr.s_addr == -1) {
-    syslog(LOG_ERR, "malformed addr from %s", notice->z_sender);
-    return(ZERR_NONE);
-  }
-
-  I_ADVANCE(0);
-  tp1 = cp;
-  
-  snotice = *notice;
-  
-  if ((status = ZReadAscii(cp, strlen(cp), (unsigned char *)&snotice.z_port, sizeof(u_short)))
-      != ZERR_NONE) 
-    {
-      syslog(LOG_ERR, "subscr_foreign_user read ascii: %s",
-             error_message(status));
-      return(ZERR_NONE);
-    }
-
-  I_ADVANCE(1);
-  
-  snotice.z_message = cp;
-  snotice.z_message_len = notice->z_message_len - (cp - notice->z_message);
-
-  newsubs = extract_subscriptions(&snotice);
-  if (!newsubs) {
-    syslog(LOG_WARNING, "empty subscr for %s", notice->z_sender);
-    return(ZERR_NONE);
-  }
-
-  if (!strcmp(snotice.z_opcode, REALM_ADD_SUBSCRIBE)) {
-    /* this was approved by the other realm, add subscriptions */
-    
-    if (!strcmp(tp0, "0.0.0.0")) {
-      /* skip bogus ADD reply from subscr_realm_subs */
-      zdbug((LOG_DEBUG, "subscr_foreign_user ADD skipped"));
-      return(ZERR_NONE);
-    }
-
-    zdbug((LOG_DEBUG, "subscr_foreign_user ADD %s/%s", tp0, tp1));
-    client = client_find(&newwho.sin_addr, snotice.z_port);
-    if (client == (Client *)0) {
-      syslog(LOG_WARNING, "no client at %s/%d",
-             inet_ntoa(newwho.sin_addr), ntohs(snotice.z_port));
-      free_subscriptions(newsubs);
-      return(ZERR_NONE);
-    }
-    
-    /* translate the recipient to represent the foreign realm */
-    sprintf(rlm_recipient, "@%s", realm->name);
-    for (temp = newsubs; temp; temp = temp->next) {
-        temp->dest.recip = make_string(rlm_recipient, 0);
-    }
-    
-    status = subscr_add_raw(client, (ZRealm *)0, newsubs);
-  } else if (!strcmp(snotice.z_opcode, REALM_REQ_SUBSCRIBE)) {
-    zdbug((LOG_DEBUG, "subscr_foreign_user REQ %s/%s", tp0, tp1));
-    status = subscr_check_foreign_subs(notice, who, server, realm, newsubs);
-  } else {
-    syslog(LOG_ERR, "bogus opcode %s in subscr_forn_user",
-           snotice.z_opcode);
-    status = ZERR_NONE;
-  }
-  return(status);
-}
-
diff --git a/zephyr/server/timer.c b/zephyr/server/timer.c
deleted file mode 100644 (file)
index 6519d41..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for managing multiple timeouts.
- *
- *      Created by:     John T. Kohl
- *      Derived from timer_manager_ by Ken Raeburn
- *
- *      $Id: timer.c 2144 2008-01-21 07:57:32Z kcr $
- *
- */
-
-#include "zserver.h"
-
-#ifndef SABER
-#ifndef lint
-static const char rcsid[] =
-"$Id: timer.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif /* lint */
-#endif /* SABER */
-
-/*
- * timer_manager_ -- routines for handling timers in login_shell
- * (and elsewhere)
- *
- * Copyright 1986 Student Information Processing Board,
- * Massachusetts Institute of Technology
- *
- * written by Ken Raeburn
- Permission to use, copy, modify, and distribute this
- software and its documentation for any purpose and without
- fee is hereby granted, provided that the above copyright
- notice appear in all copies and that both that copyright
- notice and this permission notice appear in supporting
- documentation, and that the name of M.I.T. and the Student
- Information Processing Board not be used in
- advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
- M.I.T. and the Student Information Processing Board
- make no representations about the suitability of
- this software for any purpose.  It is provided "as is"
- without express or implied warranty.
- */
-
-
-/*
- * External functions:
- *
- * Timer *timer_set_rel (time_rel, proc, arg)
- *      long time_rel;
- *      void (*proc)();
- *      caddr_t arg;
- * Timer *timer_set_abs (time_abs, proc, arg)
- *      long time_abs;
- *      void (*proc)();
- *      caddr_t arg;
- *
- * void timer_reset(tmr)
- *      Timer *tmr;
- *
- * void timer_process()
- *
- */
-
-/* DELTA is just an offset to keep the size a bit less than a power 
- * of two.  It's measured in pointers, so it's 32 bytes on most
- * systems. */
-#define DELTA 8
-#define INITIAL_HEAP_SIZE (1024 - DELTA)
-
-/* We have three operations which we need to be able to perform
- * quickly: adding a timer, deleting a timer given a pointer to
- * it, and determining which timer will be the next to go off.  A
- * heap is an ideal data structure for these purposes, so we use
- * one.  The heap is an array of pointers to timers, and each timer
- * knows the position of its pointer in the heap.
- *
- * Okay, what is the heap, exactly?  It's a data structure,
- * represented as an array, with the invariant condition that
- * the timeout of heap[i] is less than or equal to the timeout of
- * heap[i * 2 + 1] and heap[i * 2 + 2] (assuming i * 2 + 1 and
- * i * 2 + 2 are valid * indices).  An obvious consequence of this
- * is that heap[0] has the lowest timer value, so finding the first
- * timer to go off is easy.  We say that an index i has "children"
- * i * 2 + 1 and i * 2 + 1, and the "parent" (i - 1) / 2.
- *
- * To add a timer to the heap, we start by adding it to the end, and
- * then keep swapping it with its parent until it has a parent with
- * a timer value less than its value.  With a little bit of thought,
- * you can see that this preserves the heap property on all indices
- * of the array.
- *
- * To delete a timer at position i from the heap, we discard it and
- * fill in its position with the last timer in the heap.  In order
- * to restore the heap, we have to consider two cases: the timer
- * value at i is less than that of its parent, or the timer value at
- * i is greater than that of one of its children.  In the first case,
- * we propagate the timer at i up the tree, swapping it with its
- * parent, until the heap is restored; in the second case, we
- * propagate the timer down the tree, swapping it with its least
- * child, until the heap is restored. */
-
-/* In order to ensure that the back pointers from timers are consistent
- * with the heap pointers, all heap assignments should be done with the
- * HEAP_ASSIGN() macro, which sets the back pointer and updates the
- * heap at the same time. */
-#define PARENT(i) (((i) - 1) / 2)
-#define CHILD1(i) ((i) * 2 + 1)
-#define CHILD2(i) ((i) * 2 + 2)
-#define TIME(i) (heap[i]->abstime)
-#define HEAP_ASSIGN(pos, tmr) ((heap[pos] = (tmr))->heap_pos = (pos))
-
-static Timer **heap;
-static int num_timers = 0;
-static int heap_size = 0;
-
-static void timer_botch (void*);
-static Timer *add_timer (Timer *);
-
-Timer *
-timer_set_rel(long time_rel,
-             void (*proc)(void *),
-             void *arg)
-{
-    Timer *new_t;
-
-    new_t = (Timer *) malloc(sizeof(*new_t));
-    if (new_t == NULL)
-       return(NULL);
-    new_t->abstime = time_rel + NOW;
-    new_t->func = proc;
-    new_t->arg = arg;
-    return add_timer(new_t);
-}
-
-void
-timer_reset(Timer *tmr)
-{
-    int pos, min;
-
-    /* Free the timer, saving its heap position. */
-    pos = tmr->heap_pos;
-    free(tmr);
-
-    if (pos != num_timers - 1) {
-       /* Replace the timer with the last timer in the heap and
-        * restore the heap, propagating the timer either up or
-        * down, depending on which way it violates the heap
-        * property to insert the last timer in place of the
-        * deleted timer. */
-       if (pos > 0 && TIME(num_timers - 1) < TIME(PARENT(pos))) {
-           do {
-               HEAP_ASSIGN(pos, heap[PARENT(pos)]);
-               pos = PARENT(pos);
-           } while (pos > 0 && TIME(num_timers - 1) < TIME(PARENT(pos)));
-           HEAP_ASSIGN(pos, heap[num_timers - 1]);
-       } else {
-           while (CHILD2(pos) < num_timers) {
-               min = num_timers - 1;
-               if (TIME(CHILD1(pos)) < TIME(min))
-                   min = CHILD1(pos);
-               if (TIME(CHILD2(pos)) < TIME(min))
-                   min = CHILD2(pos);
-               HEAP_ASSIGN(pos, heap[min]);
-               pos = min;
-           }
-           if (pos != num_timers - 1)
-               HEAP_ASSIGN(pos, heap[num_timers - 1]);
-       }
-    }
-    num_timers--;
-}
-
-
-#define set_timeval(t,s) ((t).tv_sec=(s),(t).tv_usec=0,(t))
-
-static Timer *
-add_timer(Timer *new)
-{
-    int pos;
-
-    /* Create or resize the heap as necessary. */
-    if (heap_size == 0) {
-       heap_size = INITIAL_HEAP_SIZE;
-       heap = (Timer **) malloc(heap_size * sizeof(Timer *));
-    } else if (num_timers >= heap_size) {
-       heap_size = heap_size * 2 + DELTA;
-       heap = (Timer **) realloc(heap, heap_size * sizeof(Timer *));
-    }
-    if (!heap) {
-       free(new);
-       return NULL;
-    }
-
-    /* Insert the Timer *into the heap. */
-    pos = num_timers;
-    while (pos > 0 && new->abstime < TIME(PARENT(pos))) {
-       HEAP_ASSIGN(pos, heap[PARENT(pos)]);
-       pos = PARENT(pos);
-    }
-    HEAP_ASSIGN(pos, new);
-    num_timers++;
-
-    return new;
-}
-
-void
-timer_process(void)
-{
-    Timer *t;
-    timer_proc func;
-    void *arg;
-
-    if (num_timers == 0 || heap[0]->abstime > NOW)
-       return;
-
-    /* Remove the first timer from the heap, remembering its
-     * function and argument. */
-    t = heap[0];
-    func = t->func;
-    arg = t->arg;
-    t->func = timer_botch;
-    t->arg = NULL;
-    timer_reset(t);
-       
-    /* Run the function. */
-    func(arg);
-}
-
-struct timeval *
-timer_timeout(struct timeval *tvbuf)
-{
-    if (num_timers > 0) {
-       tvbuf->tv_sec = heap[0]->abstime - NOW;
-       if (tvbuf->tv_sec < 0)
-           tvbuf->tv_sec = 0;
-       tvbuf->tv_usec = 0;
-       return tvbuf;
-    } else {
-       return NULL;
-    }
-}
-
-static void
-timer_botch(void *arg)
-{
-    syslog(LOG_CRIT, "timer botch\n");
-    abort();
-}
-
diff --git a/zephyr/server/timer.h b/zephyr/server/timer.h
deleted file mode 100644 (file)
index 89ed759..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains definitions used by timer.c
- *
- *      Created by:     John T. Kohl
- *      Derived from timer_manager_.h by Ken Raeburn
- *
- *      $Id: timer.h 2091 2007-12-20 01:17:23Z kcr $
- *
- */
-
-#ifndef __TIMER_H
-
-/*
- * timer_manager_ -- routines for handling timers in login_shell
- * (and elsewhere)
- *
- * Copyright 1986 Student Information Processing Board,
- * Massachusetts Institute of Technology
- *
- * written by Ken Raeburn
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of M.I.T. and the Student
-Information Processing Board not be used in
-advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-M.I.T. and the Student Information Processing Board
-make no representations about the suitability of
-this software for any purpose.  It is provided "as is"
-without express or implied warranty.
-
- */
-
-typedef void (*timer_proc) __P((void *));
-
-typedef struct _Timer {
-        int            heap_pos;       /* Position in timer heap */
-        long           abstime;
-        timer_proc     func;
-        void           *arg;
-} Timer;
-
-Timer *timer_set_rel __P((long, timer_proc, void *));
-Timer *timer_set_abs __P((long, timer_proc, void *));
-void timer_reset __P((Timer *));
-void timer_process __P((void));
-struct timeval *timer_timeout __P((struct timeval *tvbuf));
-
-#endif /* __TIMER_H */
-
diff --git a/zephyr/server/uloc.c b/zephyr/server/uloc.c
deleted file mode 100644 (file)
index c1dad20..0000000
+++ /dev/null
@@ -1,1080 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for the User Locator service.
- *
- *     Created by:     John T. Kohl
- *
- *     $Id: uloc.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *     Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"
-#include <sys/socket.h>
-
-#ifndef lint
-#ifndef SABER
-static const char rcsid_uloc_c[] =
-"$Id: uloc.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif /* SABER */
-#endif /* lint */
-
-/*
- * The user locator functions.
- *
- * External functions:
- *
- * void ulocate_dispatch(notice, auth, who, server)
- *     ZNotice_t *notice;
- *     int auth;
- *     struct sockaddr_in *who;
- *     Server *server;
- *
- * void ulogin_dispatch(notice, auth, who, server)
- *     ZNotice_t *notice;
- *     int auth;
- *     struct sockaddr_in *who;
- *     Server *server;
- *
- * void uloc_hflush(addr)
- *     struct in_addr *addr;
- *
- * void uloc_flush_client(sin)
- *     struct sockaddr_in *sin;
- *
- * Code_t uloc_send_locations()
- *
- * void uloc_dump_locs(fp)
- *     FILE *fp;
- */
-
-/*
- * The user locator.
- * We maintain an array of Location sorted by user (so we can do
- * binary searches), growing and shrinking it as necessary.
- */
-
-/* WARNING: make sure this is the same as the number of strings you */
-/* plan to hand back to the user in response to a locate request, */
-/* else you will lose.  See ulogin_locate() and uloc_send_locations() */  
-#define        NUM_FIELDS      3
-
-typedef enum _Exposure_type {
-    NONE,
-    OPSTAFF_VIS,
-    REALM_VIS,
-    REALM_ANN,
-    NET_VIS,
-    NET_ANN
-} Exposure_type;
-
-typedef struct _Location {
-    String *user;
-    String *machine;
-    char *time;                        /* in ctime format */
-    String *tty;
-    struct sockaddr_in addr;   /* IP address and port of location */
-    Exposure_type exposure;
-} Location;
-
-#define NOLOC          1
-#define QUIET          -1
-#define UNAUTH         -2
-
-static void ulogin_locate __P((ZNotice_t *notice, struct sockaddr_in *who,
-                              int auth)),
-ulogin_flush_user __P((ZNotice_t *notice));
-static Location *ulogin_find __P((char *user, struct in_addr *host,
-                                 unsigned int port));
-static Location *ulogin_find_user __P((char *user));
-static int ulogin_setup __P((ZNotice_t *notice, Location *locs,
-                            Exposure_type exposure, struct sockaddr_in *who)),
-ulogin_add_user __P((ZNotice_t *notice, Exposure_type exposure,
-                    struct sockaddr_in *who)),
-ulogin_parse __P((ZNotice_t *notice, Location *locs));
-static Exposure_type ulogin_remove_user __P((ZNotice_t *notice,
-                                            struct sockaddr_in *who,
-                                            int *err_return));
-static void login_sendit __P((ZNotice_t *notice, int auth,
-                             struct sockaddr_in *who, int external));
-static char **ulogin_marshal_locs __P((ZNotice_t *notice, int *found,
-                                      int auth));
-
-static void free_loc __P((Location *loc));
-static void ulogin_locate_forward __P((ZNotice_t *notice,
-                                      struct sockaddr_in *who, ZRealm *realm));
-
-static Location *locations = NULL; /* ptr to first in array */
-static int num_locs = 0;       /* number in array */
-
-/*
- * Dispatch a LOGIN notice.
- */
-
-Code_t
-ulogin_dispatch(ZNotice_t *notice,
-               int auth,
-               struct sockaddr_in *who,
-               Server *server)
-{
-    Exposure_type retval;
-    int err_ret;
-
-    if (strcmp(notice->z_opcode, LOGIN_USER_LOGOUT) == 0) {
-       retval = ulogin_remove_user(notice, who, &err_ret);
-       switch (retval) {
-         case NONE:
-           if (err_ret == UNAUTH) {
-               if (server == me_server)
-                   clt_ack(notice, who, AUTH_FAILED);
-               return ZERR_NONE;
-           } else if (err_ret == NOLOC) {
-               if (server == me_server)
-                   clt_ack(notice, who, NOT_FOUND);
-               return ZERR_NONE;
-           } 
-           syslog(LOG_ERR,"bogus location exposure NONE, %s",
-                  notice->z_sender);
-           break;
-         case OPSTAFF_VIS:
-         case REALM_VIS:
-           /* he is not announced to people.  Silently ack */
-           if (server == me_server)
-               ack(notice, who);
-           break;
-         case REALM_ANN:
-         case NET_VIS:
-           if (server == me_server)
-               sendit(notice, 1, who, 0);
-           break;
-         case NET_ANN:
-           /* currently no distinction between these.
-              just announce */
-           /* we assume that if this user is at a certain
-              IP address, we can trust the logout to be
-              authentic.  ulogin_remove_user checks the
-              ip addrs */
-           if (server == me_server)
-               sendit(notice, 1, who, 1);
-           break;
-         default:
-           syslog(LOG_ERR,"bogus location exposure %d/%s",
-                  (int) retval, notice->z_sender);
-           break;
-       }
-       if (server == me_server) /* tell the other servers */
-           server_forward(notice, auth, who);
-       return ZERR_NONE;
-    }
-    if (!bdumping && 
-       (!auth || strcmp(notice->z_sender, notice->z_class_inst) != 0))  {
-       zdbug((LOG_DEBUG,"unauthentic ulogin: %d %s %s", auth,
-              notice->z_sender, notice->z_class_inst));
-       if (server == me_server)
-           clt_ack(notice, who, AUTH_FAILED);
-       return ZERR_NONE;
-    }
-    if (strcmp(notice->z_opcode, LOGIN_USER_FLUSH) == 0) {
-       ulogin_flush_user(notice);
-       if (server == me_server)
-           ack(notice, who);
-    } else if (strcmp(notice->z_opcode, EXPOSE_NONE) == 0) {
-       ulogin_remove_user(notice, who, &err_ret);
-       if (err_ret == UNAUTH) {
-           if (server == me_server)
-               clt_ack(notice, who, AUTH_FAILED);
-           return ZERR_NONE;
-       } else if (err_ret == NOLOC) {
-           if (server == me_server)
-               clt_ack(notice, who, NOT_FOUND);
-           return ZERR_NONE;
-       }
-       if (server == me_server) {
-           ack(notice, who);
-           server_forward(notice, auth, who);
-       }
-       return ZERR_NONE;
-    } else if (strcmp(notice->z_opcode, EXPOSE_OPSTAFF) == 0) {
-       err_ret = ulogin_add_user(notice, OPSTAFF_VIS, who);
-       if (server == me_server) {
-           if (err_ret)
-               nack(notice, who);
-           else
-               ack(notice, who);
-       }
-    } else if (strcmp(notice->z_opcode, EXPOSE_REALMVIS) == 0) {
-       err_ret = ulogin_add_user(notice, REALM_VIS, who);
-       if (server == me_server) { /* realm vis is not broadcast,
-                                     so we ack it here */
-           if (err_ret)
-               nack(notice, who);
-           else
-               ack(notice, who);
-       }
-    } else if (!strcmp(notice->z_opcode, EXPOSE_REALMANN)) {
-       err_ret = ulogin_add_user(notice, REALM_ANN, who);
-       if (server == me_server) { /* announce to the realm */
-           if (err_ret)
-               nack(notice, who);
-           else
-               login_sendit(notice, auth, who, 0);
-       }
-    } else if (!strcmp(notice->z_opcode, EXPOSE_NETVIS)) {
-       err_ret = ulogin_add_user(notice, NET_VIS, who);
-       if (server == me_server) { /* announce to the realm */
-           if (err_ret)
-               nack(notice, who);
-           else
-               login_sendit(notice, auth, who, 0);
-       }
-    } else if (!strcmp(notice->z_opcode, EXPOSE_NETANN)) {
-       err_ret = ulogin_add_user(notice, NET_ANN, who);
-       if (server == me_server) { /* tell the world */
-           if (err_ret)
-               nack(notice, who);
-           else
-               login_sendit(notice, auth, who, 1);
-       }
-    } else {
-       if (!strcmp(notice->z_opcode, LOGIN_USER_LOGIN)) {
-           zdbug((LOG_DEBUG, "ulog opcode from unknown foreign realm %s", 
-                  notice->z_opcode));
-       } else {
-           syslog(LOG_ERR, "unknown ulog opcode %s", notice->z_opcode);
-       }
-       if (server == me_server)
-           nack(notice, who);
-       return ZERR_NONE;
-    }
-    if (server == me_server)
-       server_forward(notice, auth, who);
-    return ZERR_NONE;
-}
-
-static void
-login_sendit(ZNotice_t *notice,
-            int auth,
-            struct sockaddr_in *who,
-            int external)
-{
-    ZNotice_t log_notice;
-
-    /* we must copy the notice struct here because we need the original
-       for forwarding.  We needn't copy the private data of the notice,
-       since that isn't modified by sendit and its subroutines. */
-
-    log_notice = *notice;
-
-    log_notice.z_opcode = LOGIN_USER_LOGIN;
-    sendit(&log_notice, auth, who, external);
-}
-
-
-/*
- * Dispatch a LOCATE notice.
- */
-Code_t
-ulocate_dispatch(ZNotice_t *notice,
-                int auth,
-                struct sockaddr_in *who,
-                Server *server)
-{
-    char *cp;
-    ZRealm *realm;
-
-    if (!strcmp(notice->z_opcode, LOCATE_LOCATE)) {
-       /* we are talking to a current-rev client; send an ack */
-       ack(notice, who);
-       cp = strchr(notice->z_class_inst, '@');
-       if (cp && (realm = realm_get_realm_by_name(cp + 1)))
-           ulogin_locate_forward(notice, who, realm);
-       else
-           ulogin_locate(notice, who, auth);
-       return ZERR_NONE;
-    } else {
-        syslog(LOG_ERR, "unknown uloc opcode %s", notice->z_opcode);
-       if (server == me_server)
-           nack(notice, who);
-       return ZERR_NONE;
-    }
-}
-
-/*
- * Flush all locations at the address.
- */
-
-void
-uloc_hflush(struct in_addr *addr)
-{
-    Location *loc;
-    int i = 0, new_num = 0;
-
-    if (num_locs == 0)
-       return;                 /* none to flush */
-
-    /* slightly inefficient, assume the worst, and allocate enough space */
-    loc = (Location *) malloc(num_locs *sizeof(Location));
-    if (!loc) {
-       syslog(LOG_CRIT, "uloc_flush alloc");
-       abort();
-    }
-
-    /* copy entries which don't match */
-    while (i < num_locs) {
-       if (locations[i].addr.sin_addr.s_addr != addr->s_addr)
-           loc[new_num++] = locations[i];
-       else
-           free_loc(&locations[i]);
-       i++;
-    }
-
-    free(locations);
-    locations = NULL;
-
-    if (!new_num) {
-       free(loc);
-       loc = NULL;
-       num_locs = new_num;
-
-       return;
-    }
-    locations = loc;
-    num_locs = new_num;
-
-    /* all done */
-    return;
-}
-
-void
-uloc_flush_client(struct sockaddr_in *sin)
-{
-    Location *loc;
-    int i = 0, new_num = 0;
-
-    if (num_locs == 0)
-       return;                 /* none to flush */
-
-    /* slightly inefficient, assume the worst, and allocate enough space */
-    loc = (Location *) malloc(num_locs *sizeof(Location));
-    if (!loc) {
-       syslog(LOG_CRIT, "uloc_flush_clt alloc");
-       abort();
-    }
-
-    /* copy entries which don't match */
-    while (i < num_locs) {
-       if ((locations[i].addr.sin_addr.s_addr != sin->sin_addr.s_addr)
-           || (locations[i].addr.sin_port != sin->sin_port)) {
-           loc[new_num++] = locations[i];
-       } else {
-           free_loc(&locations[i]);
-       }
-       i++;
-    }
-
-    free(locations);
-    locations = NULL;
-
-    if (!new_num) {
-       free(loc);
-       loc = NULL;
-       num_locs = new_num;
-
-       return;
-    }
-    locations = loc;
-    num_locs = new_num;
-
-#ifdef DEBUG
-    if (zdebug) {
-       int i;
-
-       for (i = 0; i < num_locs; i++) {
-           syslog(LOG_DEBUG, "%s/%d", locations[i].user->string,
-                  (int) locations[i].exposure);
-       }
-    }
-#endif
-    /* all done */
-    return;
-}
-
-/*
- * Send the locations for host for a brain dump
- */
-
-/*ARGSUSED*/
-Code_t
-uloc_send_locations(void)
-{
-    Location *loc;
-    int i;
-    char *lyst[NUM_FIELDS];
-    char *exposure_level;
-    Code_t retval;
-
-    for (i = 0, loc = locations; i < num_locs; i++, loc++) {
-       lyst[0] = (char *) loc->machine->string;
-       lyst[1] = (char *) loc->time;
-       lyst[2] = (char *) loc->tty->string;
-
-       switch (loc->exposure) {
-         case OPSTAFF_VIS:
-           exposure_level = EXPOSE_OPSTAFF;
-           break;
-         case REALM_VIS:
-           exposure_level = EXPOSE_REALMVIS;
-           break;
-         case REALM_ANN:
-           exposure_level = EXPOSE_REALMANN;
-           break;
-         case NET_VIS:
-           exposure_level = EXPOSE_NETVIS;
-           break;
-         case NET_ANN:
-           exposure_level = EXPOSE_NETANN;
-           break;
-         default:
-           syslog(LOG_ERR,"broken location state %s/%d",
-                  loc->user->string, (int) loc->exposure);
-           exposure_level = EXPOSE_OPSTAFF;
-           break;
-       }
-       retval = bdump_send_list_tcp(ACKED, &loc->addr, LOGIN_CLASS,
-                                    loc->user->string, exposure_level, myname,
-                                    "", lyst, NUM_FIELDS);
-       if (retval != ZERR_NONE) {
-           syslog(LOG_ERR, "uloc_send_locs: %s", error_message(retval));
-           return(retval);
-       }
-    }
-    return ZERR_NONE;
-}
-
-/*
- * Add the user to the internal table of locations.
- */
-
-static int
-ulogin_add_user(ZNotice_t *notice,
-               Exposure_type exposure,
-               struct sockaddr_in *who)
-{
-    Location *loc, *oldlocs, newloc;
-    int i;
-
-    loc = ulogin_find(notice->z_class_inst, &who->sin_addr, notice->z_port);
-    if (loc) {
-       /* Update the time, tty, and exposure on the existing location. */
-       loc->exposure = exposure;
-       if (ulogin_parse(notice, &newloc) == 0) {
-           free_string(loc->tty);
-           loc->tty = dup_string(newloc.tty);
-           free(loc->time);
-           loc->time = strsave(newloc.time);
-           free_loc(&newloc);
-       }
-       return 0;
-    }
-
-    oldlocs = locations;
-
-    locations = (Location *) malloc((num_locs + 1) * sizeof(Location));
-    if (!locations) {
-       syslog(LOG_ERR, "zloc mem alloc");
-       locations = oldlocs;
-       return 1;
-    }
-
-    if (num_locs == 0) {       /* first one */
-       if (ulogin_setup(notice, locations, exposure, who)) {
-           free(locations);
-           locations = NULL;
-           return 1;
-       }
-       num_locs = 1;
-       goto dprnt;
-    }
-
-    /* not the first one, insert him */
-
-    if (ulogin_setup(notice, &newloc, exposure, who)) {
-       free(locations);
-       locations = oldlocs;
-       return 1;
-    }
-    num_locs++;
-
-    /* copy old locs */
-    i = 0;
-    while ((i < num_locs-1) &&
-          (comp_string(oldlocs[i].user,newloc.user) < 0)) {
-       locations[i] = oldlocs[i];
-       i++;
-    }
-
-    /* add him in here */
-    locations[i++] = newloc;
-
-    /* copy the rest */
-    while (i < num_locs) {
-       locations[i] = oldlocs[i - 1];
-       i++;
-    }
-    if (oldlocs)
-       free(oldlocs);
-
-  dprnt:
-    return 0;
-}
-
-/*
- * Set up the location locs with the information in the notice.
- */ 
-
-static int
-ulogin_setup(ZNotice_t *notice,
-            Location *locs,
-            Exposure_type exposure,
-            struct sockaddr_in *who)
-{
-    if (ulogin_parse(notice, locs))
-       return 1;
-
-    locs->exposure = exposure;
-    locs->addr.sin_family = AF_INET;
-    locs->addr.sin_addr.s_addr = who->sin_addr.s_addr;
-    locs->addr.sin_port = notice->z_port;
-    return(0);
-}
-
-/*
- * Parse the location information in the notice, and fill it into *locs
- */
-
-static int
-ulogin_parse(ZNotice_t *notice,
-            Location *locs)
-{
-    char *cp, *base;
-    int nulls = 0;
-
-    if (!notice->z_message_len) {
-       syslog(LOG_ERR, "short ulogin");
-       return 1;
-    }
-
-    base = notice->z_message;
-    for (cp = base; cp < base + notice->z_message_len; cp++) {
-       if (!*cp)
-           nulls++;
-    }
-    if (nulls < 3) {
-       syslog(LOG_ERR, "zloc bad format from user %s (only %d fields)",
-              notice->z_sender, nulls);
-       return 1;
-    }
-
-    locs->user = make_string(notice->z_class_inst,0);
-
-    cp = base;
-    locs->machine = make_string(cp,0);
-
-    cp += (strlen(cp) + 1);
-    locs->time = strsave(cp);
-
-    /* This field might not be null-terminated */
-    cp += (strlen(cp) + 1);
-    locs->tty = make_string(cp, 0);
-
-    return 0;
-}      
-
-
-static Location *
-ulogin_find(char *user,
-           struct in_addr *host,
-           unsigned int port)
-{
-    Location *loc;
-    String *str;
-
-    /* Find the first location for this user. */
-    loc = ulogin_find_user(user);
-    if (!loc)
-       return NULL;
-
-    /* Look for a location which matches the host and port. */
-    str = make_string(user, 0);
-    while (loc < locations + num_locs && loc->user == str) {
-       if (loc->addr.sin_addr.s_addr == host->s_addr
-           && loc->addr.sin_port == port) {
-           free_string(str);
-           return loc;
-       }
-       loc++;
-    }
-
-    free_string(str);
-    return NULL;
-}
-
-/*
- * Return a pointer to the first instance of this user@realm in the
- * table.
- */
-
-static Location *
-ulogin_find_user(char *user)
-{
-    int i, rlo, rhi;
-    int compar;
-    String *str;
-
-    if (!locations)
-       return(NULL);
-
-    str = make_string(user, 0);
-
-    /* i is the current midpoint location, rlo is the lowest we will
-     * still check, and rhi is the highest we will still check. */
-
-    i = num_locs / 2;
-    rlo = 0;
-    rhi = num_locs - 1;
-
-    while ((compar = comp_string(locations[i].user, str)) != 0) {
-       if (compar < 0)
-           rlo = i + 1;
-       else
-           rhi = i - 1;
-       if (rhi - rlo < 0) {
-           free_string(str);
-           return NULL;
-       }
-       i = (rhi + rlo) / 2;
-    }
-
-    /* Back up to the first location for this user. */
-    while (i > 0 && locations[i - 1].user == str)
-       i--;
-    free_string(str);
-    return &locations[i];
-}
-
-/*
- * remove the user specified in notice from the internal table
- */
-
-static Exposure_type
-ulogin_remove_user(ZNotice_t *notice,
-                  struct sockaddr_in *who,
-                  int *err_return)
-{
-    Location *new_locs, *loc;
-    int i = 0;
-    Exposure_type quiet;
-
-    *err_return = 0;
-    loc = ulogin_find(notice->z_class_inst, &who->sin_addr, notice->z_port);
-    if (!loc) {
-       *err_return = NOLOC;
-       return NONE;
-    }
-
-    quiet = loc->exposure;
-
-    if (--num_locs == 0) {     /* last one */
-       free_loc(locations);
-       free(locations);
-       locations = NULL;
-       return quiet;
-    }
-
-    new_locs = (Location *) malloc(num_locs * sizeof(Location));
-    if (!new_locs) {
-       syslog(LOG_CRIT, "ul_rem alloc");
-       abort();
-    }
-
-    /* copy old entries */
-    while (i < num_locs && &locations[i] < loc) {
-       new_locs[i] = locations[i];
-       i++;
-    }
-
-    /* free up this one */
-    free_loc(&locations[i]);
-    i++;                       /* skip over this one */
-
-    /* copy the rest */
-    while (i <= num_locs) {
-       new_locs[i - 1] = locations[i];
-       i++;
-    }
-
-    free(locations);
-
-    locations = new_locs;
-
-    /* all done */
-    return quiet;
-}
-
-/*
- * remove all locs of the user specified in notice from the internal table
- */
-
-static void
-ulogin_flush_user(ZNotice_t *notice)
-{
-    Location *loc, *loc2;
-    int i, j, num_match, num_left;
-
-    i = num_match = num_left = 0;
-
-    if (!(loc2 = ulogin_find_user(notice->z_class_inst)))
-       return;
-
-    /* compute # locations left in the list, after loc2 (inclusive) */
-    num_left = num_locs - (loc2 - locations);
-
-    while (num_left &&
-          !strcasecmp(loc2[num_match].user->string,
-                      notice->z_class_inst)) {
-       /* as long as we keep matching, march up the list */
-       num_match++;
-       num_left--;
-    }
-    if (num_locs == num_match) { /* no other locations left */
-       for (j = 0; j < num_match; j++)
-           free_loc(&locations[j]); /* free storage */
-       free (locations);
-       locations = NULL;
-       num_locs = 0;
-       return;
-    }
-
-    loc = (Location *) malloc((num_locs - num_match) * sizeof(Location));
-    if (!loc) {
-       syslog(LOG_CRIT, "ul_rem alloc");
-       abort();
-    }
-
-    /* copy old entries */
-    while (i < num_locs && &locations[i] < loc2) {
-       loc[i] = locations[i];
-       i++;
-    }
-       
-    for(j = 0; j < num_match; j++) {
-       free_loc(&locations[i]);
-       i++;
-    }
-
-    /* copy the rest */
-    while (i < num_locs) {
-       loc[i - num_match] = locations[i];
-       i++;
-    }
-
-    free(locations);
-
-    locations = loc;
-    num_locs -= num_match;
-
-#ifdef DEBUG
-    if (zdebug) {
-       int i;
-
-       for (i = 0; i < num_locs; i++) {
-           syslog(LOG_DEBUG, "%s/%d", locations[i].user->string,
-                  (int) locations[i].exposure);
-       }
-    }
-#endif
-}
-
-
-static void
-ulogin_locate(ZNotice_t *notice,
-             struct sockaddr_in *who,
-             int auth)
-{
-    char **answer;
-    int found;
-    Code_t retval;
-    struct sockaddr_in send_to_who;
-
-    answer = ulogin_marshal_locs(notice, &found, auth);
-
-    send_to_who = *who;
-    send_to_who.sin_port = notice->z_port;
-
-    retval = ZSetDestAddr(&send_to_who);
-    if (retval != ZERR_NONE) {
-       syslog(LOG_WARNING, "ulogin_locate set addr: %s",
-              error_message(retval));
-       if (answer)
-           free(answer);
-       return;
-    }
-
-    notice->z_kind = ACKED;
-
-    /* use xmit_frag() to send each piece of the notice */
-
-    retval = ZSrvSendRawList(notice, answer, found * NUM_FIELDS, xmit_frag);
-    if (retval != ZERR_NONE)
-       syslog(LOG_WARNING, "ulog_locate xmit: %s", error_message(retval));
-    if (answer)
-       free(answer);
-}
-
-/*
- * Locate the user and collect the locations into an array.  Return the # of
- * locations in *found.
- */
-
-static char **
-ulogin_marshal_locs(ZNotice_t *notice,
-                   int *found,
-                   int auth) 
-{
-    Location **matches = (Location **) 0;
-    Location *loc;
-    char **answer;
-    int i = 0;
-    String *inst;
-    int local = (auth && realm_sender_in_realm(ZGetRealm(), notice->z_sender));
-
-    *found = 0;                        /* # of matches */
-
-    loc = ulogin_find_user(notice->z_class_inst);
-    if (!loc)
-       return(NULL);
-
-    i = loc - locations;
-
-    inst = make_string(notice->z_class_inst,0);
-    while (i < num_locs && (inst == locations[i].user)) {
-       /* these locations match */
-       switch (locations[i].exposure) {
-         case OPSTAFF_VIS:
-           i++;
-           continue;
-         case REALM_VIS:
-         case REALM_ANN:
-           if (!local) {
-               i++;
-               continue;
-           }
-         case NET_VIS:
-         case NET_ANN:
-         default:
-           break;
-       }
-       if (!*found) {
-           matches = (Location **) malloc(sizeof(Location *));
-           if (!matches) {
-               syslog(LOG_ERR, "ulog_loc: no mem");
-               break;  /* from the while */
-           }
-           matches[0] = &locations[i];
-           (*found)++;
-       } else {
-           matches = (Location **) realloc(matches,
-                                           ++(*found) * sizeof(Location *));
-           if (!matches) {
-               syslog(LOG_ERR, "ulog_loc: realloc no mem");
-               *found = 0;
-               break;  /* from the while */
-           }
-           matches[*found - 1] = &locations[i];
-       }
-       i++;
-    }
-    free_string(inst);
-
-    /* OK, now we have a list of user@host's to return to the client
-       in matches */
-       
-       
-#ifdef DEBUG
-    if (zdebug) {
-       for (i = 0; i < *found ; i++)
-           zdbug((LOG_DEBUG,"found %s",
-                  matches[i]->user->string));
-    }
-#endif
-       
-    /* coalesce the location information into a list of char *'s */
-    answer = (char **) malloc((*found) * NUM_FIELDS * sizeof(char *));
-    if (!answer) {
-       syslog(LOG_ERR, "zloc no mem(answer)");
-       *found = 0;
-    } else
-       for (i = 0; i < *found ; i++) {
-           answer[i * NUM_FIELDS] = matches[i]->machine->string;
-           answer[i * NUM_FIELDS + 1] = matches[i]->time;
-           answer[i * NUM_FIELDS + 2] = matches[i]->tty->string;
-       }
-       
-    if (matches)
-       free(matches);
-    return answer;
-}
-
-void
-uloc_dump_locs(FILE *fp)
-{
-    int i;
-
-    for (i = 0; i < num_locs; i++) {
-       fputs("'", fp);
-       dump_quote(locations[i].user->string, fp);
-       fputs("' '", fp);
-       dump_quote(locations[i].machine->string, fp);
-       fputs("' '", fp);
-       dump_quote(locations[i].time, fp);
-       fputs("' '", fp);
-       dump_quote(locations[i].tty->string, fp);
-       fputs("' ", fp);
-       switch (locations[i].exposure) {
-         case OPSTAFF_VIS:
-           fputs("OPSTAFF", fp);
-           break;
-         case REALM_VIS:
-           fputs("RLM_VIS", fp);
-           break;
-         case REALM_ANN:
-           fputs("RLM_ANN", fp);
-           break;
-         case NET_VIS:
-           fputs("NET_VIS", fp);
-           break;
-         case NET_ANN:
-           fputs("NET_ANN", fp);
-           break;
-         default:
-           fprintf(fp, "? %d ?", locations[i].exposure);
-           break;
-       }
-       fprintf(fp, " %s/%d\n", inet_ntoa(locations[i].addr.sin_addr),
-               ntohs(locations[i].addr.sin_port));
-    }
-}
-
-static void
-free_loc(Location *loc)
-{
-    free_string(loc->user);
-    free_string(loc->machine);
-    free_string(loc->tty);
-    free(loc->time);
-    return;
-}
-
-static void
-ulogin_locate_forward(ZNotice_t *notice,
-                     struct sockaddr_in *who,
-                     ZRealm *realm)
-{
-    ZNotice_t lnotice;
-
-    lnotice = *notice;
-    lnotice.z_opcode = REALM_REQ_LOCATE;
-  
-    realm_handoff(&lnotice, 1, who, realm, 0);
-}
-
-void
-ulogin_realm_locate(ZNotice_t *notice,
-                   struct sockaddr_in *who,
-                   ZRealm *realm)
-{
-  char **answer;
-  int found;
-  Code_t retval;
-  ZNotice_t lnotice;
-  char *pack;
-  int packlen;
-  
-#ifdef DEBUG
-  if (zdebug)
-    zdbug((LOG_DEBUG, "ulogin_realm_locate"));
-#endif
-  
-  answer = ulogin_marshal_locs(notice, &found, 0/*AUTH*/);
-  
-  lnotice = *notice;
-  lnotice.z_opcode = REALM_ANS_LOCATE;
-  
-  if ((retval = ZFormatRawNoticeList(&lnotice, answer, found * NUM_FIELDS, &pack, &packlen)) != ZERR_NONE) {
-    syslog(LOG_WARNING, "ulog_rlm_loc format: %s",
-           error_message(retval));
-    
-    if (answer)
-      free(answer);
-    return;
-  }
-  if (answer)
-    free(answer);
-  
-  if ((retval = ZParseNotice(pack, packlen, &lnotice)) != ZERR_NONE) {
-    syslog(LOG_WARNING, "subscr_rlm_sendit parse: %s",
-           error_message(retval));
-    free(pack);
-    return;
-  }
-  
-  realm_handoff(&lnotice, 1, who, realm, 0);
-  free(pack);
-  
-  return;
-}
-
-void
-ulogin_relay_locate(ZNotice_t *notice,
-                   struct sockaddr_in *who)
-{
-  ZNotice_t lnotice;
-  Code_t retval;
-  struct sockaddr_in newwho;
-  char *pack;
-  int packlen;
-  
-  newwho.sin_addr.s_addr = notice->z_sender_addr.s_addr;
-  newwho.sin_port = notice->z_port;
-  newwho.sin_family = AF_INET;
-  
-  if ((retval = ZSetDestAddr(&newwho)) != ZERR_NONE) {
-    syslog(LOG_WARNING, "uloc_relay_loc set addr: %s",
-           error_message(retval));
-    return;
-  }
-  
-  lnotice = *notice;
-  lnotice.z_opcode = LOCATE_LOCATE;
-  lnotice.z_kind = ACKED;
-  lnotice.z_auth = 0;
-  lnotice.z_authent_len = 0;
-  lnotice.z_ascii_authent = "";
-  lnotice.z_checksum = 0;
-  lnotice.z_ascii_checksum = "";
-  
-  if ((retval = ZFormatRawNotice(&lnotice, &pack, &packlen)) != ZERR_NONE) {
-    syslog(LOG_WARNING, "ulog_relay_loc format: %s",
-           error_message(retval));
-    return;
-  }
-  
-  if ((retval = ZSendPacket(pack, packlen, 0)) != ZERR_NONE) {
-    syslog(LOG_WARNING, "ulog_relay_loc xmit: %s",
-           error_message(retval));
-  }
-  free(pack);
-}
-
diff --git a/zephyr/server/utf8proc.c b/zephyr/server/utf8proc.c
deleted file mode 100644 (file)
index 1c02241..0000000
+++ /dev/null
@@ -1,585 +0,0 @@
-/*
- *  Copyright (c) 2006-2007 Jan Behrens, FlexiGuided GmbH, Berlin
- *
- *  Permission is hereby granted, free of charge, to any person obtaining a
- *  copy of this software and associated documentation files (the "Software"),
- *  to deal in the Software without restriction, including without limitation
- *  the rights to use, copy, modify, merge, publish, distribute, sublicense,
- *  and/or sell copies of the Software, and to permit persons to whom the
- *  Software is furnished to do so, subject to the following conditions:
- *
- *  The above copyright notice and this permission notice shall be included in
- *  all copies or substantial portions of the Software.
- *
- *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- *  DEALINGS IN THE SOFTWARE.
- */
-
-/*
- *  This library contains derived data from a modified version of the
- *  Unicode data files.
- *
- *  The original data files are available at
- *  http://www.unicode.org/Public/UNIDATA/
- *
- *  Please notice the copyright statement in the file "utf8proc_data.c".
- */
-
-
-/*
- *  File name:    utf8proc.c
- *  Version:      1.1.1
- *  Last changed: 2007-07-22
- *
- *  Description:
- *  Implementation of libutf8proc.
- */
-
-
-#include "utf8proc.h"
-#include "utf8proc_data.c"
-
-
-const int8_t utf8proc_utf8class[256] = {
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
-  4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0 };
-
-#define UTF8PROC_HANGUL_SBASE 0xAC00
-#define UTF8PROC_HANGUL_LBASE 0x1100
-#define UTF8PROC_HANGUL_VBASE 0x1161
-#define UTF8PROC_HANGUL_TBASE 0x11A7
-#define UTF8PROC_HANGUL_LCOUNT 19
-#define UTF8PROC_HANGUL_VCOUNT 21
-#define UTF8PROC_HANGUL_TCOUNT 28
-#define UTF8PROC_HANGUL_NCOUNT 588
-#define UTF8PROC_HANGUL_SCOUNT 11172
-// END is exclusive
-#define UTF8PROC_HANGUL_L_START  0x1100
-#define UTF8PROC_HANGUL_L_END    0x115A
-#define UTF8PROC_HANGUL_L_FILLER 0x115F
-#define UTF8PROC_HANGUL_V_START  0x1160
-#define UTF8PROC_HANGUL_V_END    0x11A3
-#define UTF8PROC_HANGUL_T_START  0x11A8
-#define UTF8PROC_HANGUL_T_END    0x11FA
-#define UTF8PROC_HANGUL_S_START  0xAC00
-#define UTF8PROC_HANGUL_S_END    0xD7A4
-
-
-#define UTF8PROC_BOUNDCLASS_START    0
-#define UTF8PROC_BOUNDCLASS_OTHER    1
-#define UTF8PROC_BOUNDCLASS_CR       2
-#define UTF8PROC_BOUNDCLASS_LF       3
-#define UTF8PROC_BOUNDCLASS_CONTROL  4
-#define UTF8PROC_BOUNDCLASS_EXTEND   5
-#define UTF8PROC_BOUNDCLASS_L        6
-#define UTF8PROC_BOUNDCLASS_V        7
-#define UTF8PROC_BOUNDCLASS_T        8
-#define UTF8PROC_BOUNDCLASS_LV       9
-#define UTF8PROC_BOUNDCLASS_LVT     10
-
-
-const char *utf8proc_errmsg(ssize_t errcode) {
-  switch (errcode) {
-    case UTF8PROC_ERROR_NOMEM:
-    return "Memory for processing UTF-8 data could not be allocated.";
-    case UTF8PROC_ERROR_OVERFLOW:
-    return "UTF-8 string is too long to be processed.";
-    case UTF8PROC_ERROR_INVALIDUTF8:
-    return "Invalid UTF-8 string";
-    case UTF8PROC_ERROR_NOTASSIGNED:
-    return "Unassigned Unicode code point found in UTF-8 string.";
-    case UTF8PROC_ERROR_INVALIDOPTS:
-    return "Invalid options for UTF-8 processing chosen.";
-    default:
-    return "An unknown error occured while processing UTF-8 data.";
-  }
-}
-
-ssize_t utf8proc_iterate(
-  const uint8_t *str, ssize_t strlen, int32_t *dst
-) {
-  int length;
-  int i;
-  int32_t uc = -1;
-  *dst = -1;
-  if (!strlen) return 0;
-  length = utf8proc_utf8class[str[0]];
-  if (!length) return UTF8PROC_ERROR_INVALIDUTF8;
-  if (strlen >= 0 && length > strlen) return UTF8PROC_ERROR_INVALIDUTF8;
-  for (i=1; i<length; i++) {
-    if ((str[i] & 0xC0) != 0x80) return UTF8PROC_ERROR_INVALIDUTF8;
-  }
-  switch (length) {
-    case 1:
-    uc = str[0];
-    break;
-    case 2:
-    uc = ((str[0] & 0x1F) <<  6) + (str[1] & 0x3F);
-    if (uc < 0x80) uc = -1;
-    break;
-    case 3:
-    uc = ((str[0] & 0x0F) << 12) + ((str[1] & 0x3F) <<  6)
-      + (str[2] & 0x3F);
-    if (uc < 0x800 || (uc >= 0xD800 && uc < 0xE000) ||
-      (uc >= 0xFDD0 && uc < 0xFDF0)) uc = -1;
-    break;
-    case 4:
-    uc = ((str[0] & 0x07) << 18) + ((str[1] & 0x3F) << 12)
-      + ((str[2] & 0x3F) <<  6) + (str[3] & 0x3F);
-    if (uc < 0x10000 || uc >= 0x110000) uc = -1;
-    break;
-  }
-  if (uc < 0 || ((uc & 0xFFFF) >= 0xFFFE))
-    return UTF8PROC_ERROR_INVALIDUTF8;
-  *dst = uc;
-  return length;
-}
-
-bool utf8proc_codepoint_valid(int32_t uc) {
-  if (uc < 0 || uc >= 0x110000 ||
-    ((uc & 0xFFFF) >= 0xFFFE) || (uc >= 0xD800 && uc < 0xE000) ||
-    (uc >= 0xFDD0 && uc < 0xFDF0)) return false;
-  else return true;
-}
-
-ssize_t utf8proc_encode_char(int32_t uc, uint8_t *dst) {
-  if (uc < 0x00) {
-    return 0;
-  } else if (uc < 0x80) {
-    dst[0] = uc;
-    return 1;
-  } else if (uc < 0x800) {
-    dst[0] = 0xC0 + (uc >> 6);
-    dst[1] = 0x80 + (uc & 0x3F);
-    return 2;
-  } else if (uc == 0xFFFF) {
-    dst[0] = 0xFF;
-    return 1;
-  } else if (uc == 0xFFFE) {
-    dst[0] = 0xFE;
-    return 1;
-  } else if (uc < 0x10000) {
-    dst[0] = 0xE0 + (uc >> 12);
-    dst[1] = 0x80 + ((uc >> 6) & 0x3F);
-    dst[2] = 0x80 + (uc & 0x3F);
-    return 3;
-  } else if (uc < 0x110000) {
-    dst[0] = 0xF0 + (uc >> 18);
-    dst[1] = 0x80 + ((uc >> 12) & 0x3F);
-    dst[2] = 0x80 + ((uc >> 6) & 0x3F);
-    dst[3] = 0x80 + (uc & 0x3F);
-    return 4;
-  } else return 0;
-}
-
-const utf8proc_property_t *utf8proc_get_property(int32_t uc) {
-  // ASSERT: uc >= 0 && uc < 0x110000
-  return utf8proc_properties + (
-    utf8proc_stage2table[
-      utf8proc_stage1table[uc >> 8] + (uc & 0xFF)
-    ]
-  );
-}
-
-#define utf8proc_decompose_lump(replacement_uc) \
-  return utf8proc_decompose_char((replacement_uc), dst, bufsize, \
-  options & ~UTF8PROC_LUMP, last_boundclass)
-
-ssize_t utf8proc_decompose_char(int32_t uc, int32_t *dst, ssize_t bufsize,
-    int options, int *last_boundclass) {
-  // ASSERT: uc >= 0 && uc < 0x110000
-  const utf8proc_property_t *property;
-  utf8proc_propval_t category;
-  int32_t hangul_sindex;
-  property = utf8proc_get_property(uc);
-  category = property->category;
-  hangul_sindex = uc - UTF8PROC_HANGUL_SBASE;
-  if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) {
-    if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT) {
-      int32_t hangul_tindex;
-      if (bufsize >= 1) {
-        dst[0] = UTF8PROC_HANGUL_LBASE +
-          hangul_sindex / UTF8PROC_HANGUL_NCOUNT;
-        if (bufsize >= 2) dst[1] = UTF8PROC_HANGUL_VBASE +
-          (hangul_sindex % UTF8PROC_HANGUL_NCOUNT) / UTF8PROC_HANGUL_TCOUNT;
-      }
-      hangul_tindex = hangul_sindex % UTF8PROC_HANGUL_TCOUNT;
-      if (!hangul_tindex) return 2;
-      if (bufsize >= 3) dst[2] = UTF8PROC_HANGUL_TBASE + hangul_tindex;
-      return 3;
-    }
-  }
-  if (options & UTF8PROC_REJECTNA) {
-    if (!category) return UTF8PROC_ERROR_NOTASSIGNED;
-  }
-  if (options & UTF8PROC_IGNORE) {
-    if (property->ignorable) return 0;
-  }
-  if (options & UTF8PROC_LUMP) {
-    if (category == UTF8PROC_CATEGORY_ZS) utf8proc_decompose_lump(0x0020);
-    if (uc == 0x2018 || uc == 0x2019 || uc == 0x02BC || uc == 0x02C8)
-      utf8proc_decompose_lump(0x0027);
-    if (category == UTF8PROC_CATEGORY_PD || uc == 0x2212)
-      utf8proc_decompose_lump(0x002D);
-    if (uc == 0x2044 || uc == 0x2215) utf8proc_decompose_lump(0x002F);
-    if (uc == 0x2236) utf8proc_decompose_lump(0x003A);
-    if (uc == 0x2039 || uc == 0x2329 || uc == 0x3008)
-      utf8proc_decompose_lump(0x003C);
-    if (uc == 0x203A || uc == 0x232A || uc == 0x3009)
-      utf8proc_decompose_lump(0x003E);
-    if (uc == 0x2216) utf8proc_decompose_lump(0x005C);
-    if (uc == 0x02C4 || uc == 0x02C6 || uc == 0x2038 || uc == 0x2303)
-      utf8proc_decompose_lump(0x005E);
-    if (category == UTF8PROC_CATEGORY_PC || uc == 0x02CD)
-      utf8proc_decompose_lump(0x005F);
-    if (uc == 0x02CB) utf8proc_decompose_lump(0x0060);
-    if (uc == 0x2223) utf8proc_decompose_lump(0x007C);
-    if (uc == 0x223C) utf8proc_decompose_lump(0x007E);
-    if ((options & UTF8PROC_NLF2LS) && (options & UTF8PROC_NLF2PS)) {
-      if (category == UTF8PROC_CATEGORY_ZL ||
-          category == UTF8PROC_CATEGORY_ZP)
-        utf8proc_decompose_lump(0x000A);
-    }
-  }
-  if (options & UTF8PROC_STRIPMARK) {
-    if (category == UTF8PROC_CATEGORY_MN ||
-      category == UTF8PROC_CATEGORY_MC ||
-      category == UTF8PROC_CATEGORY_ME) return 0;
-  }
-  if (options & UTF8PROC_CASEFOLD) {
-    if (property->casefold_mapping) {
-      const int32_t *casefold_entry;
-      ssize_t written = 0;
-      for (casefold_entry = property->casefold_mapping;
-          *casefold_entry >= 0; casefold_entry++) {
-        written += utf8proc_decompose_char(*casefold_entry, dst+written,
-          (bufsize > written) ? (bufsize - written) : 0, options,
-          last_boundclass);
-        if (written < 0) return UTF8PROC_ERROR_OVERFLOW;
-      }
-      return written;
-    }
-  }
-  if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) {
-    if (property->decomp_mapping &&
-        (!property->decomp_type || (options & UTF8PROC_COMPAT))) {
-      const int32_t *decomp_entry;
-      ssize_t written = 0;
-      for (decomp_entry = property->decomp_mapping;
-          *decomp_entry >= 0; decomp_entry++) {
-        written += utf8proc_decompose_char(*decomp_entry, dst+written,
-          (bufsize > written) ? (bufsize - written) : 0, options,
-        last_boundclass);
-        if (written < 0) return UTF8PROC_ERROR_OVERFLOW;
-      }
-      return written;
-    }
-  }
-  if (options & UTF8PROC_CHARBOUND) {
-    bool boundary;
-    int tbc, lbc;
-    tbc =
-      (uc == 0x000D) ? UTF8PROC_BOUNDCLASS_CR :
-      (uc == 0x000A) ? UTF8PROC_BOUNDCLASS_LF :
-      ((category == UTF8PROC_CATEGORY_ZL ||
-        category == UTF8PROC_CATEGORY_ZP ||
-        category == UTF8PROC_CATEGORY_CC ||
-        category == UTF8PROC_CATEGORY_CF) &&
-        !(uc == 0x200C || uc == 0x200D)) ? UTF8PROC_BOUNDCLASS_CONTROL :
-      property->extend ? UTF8PROC_BOUNDCLASS_EXTEND :
-      ((uc >= UTF8PROC_HANGUL_L_START && uc < UTF8PROC_HANGUL_L_END) ||
-        uc == UTF8PROC_HANGUL_L_FILLER) ? UTF8PROC_BOUNDCLASS_L :
-      (uc >= UTF8PROC_HANGUL_V_START && uc < UTF8PROC_HANGUL_V_END) ?
-        UTF8PROC_BOUNDCLASS_V :
-      (uc >= UTF8PROC_HANGUL_T_START && uc < UTF8PROC_HANGUL_T_END) ?
-        UTF8PROC_BOUNDCLASS_T :
-      (uc >= UTF8PROC_HANGUL_S_START && uc < UTF8PROC_HANGUL_S_END) ? (
-        ((uc-UTF8PROC_HANGUL_SBASE) % UTF8PROC_HANGUL_TCOUNT == 0) ?
-          UTF8PROC_BOUNDCLASS_LV : UTF8PROC_BOUNDCLASS_LVT
-      ) :
-      UTF8PROC_BOUNDCLASS_OTHER;
-    lbc = *last_boundclass;
-    boundary =
-      (tbc == UTF8PROC_BOUNDCLASS_EXTEND) ? false :
-      (lbc == UTF8PROC_BOUNDCLASS_START) ? true :
-      (lbc == UTF8PROC_BOUNDCLASS_CR &&
-       tbc == UTF8PROC_BOUNDCLASS_LF) ? false :
-      (lbc == UTF8PROC_BOUNDCLASS_CONTROL) ? true :
-      (tbc == UTF8PROC_BOUNDCLASS_CONTROL) ? true :
-      (lbc == UTF8PROC_BOUNDCLASS_L &&
-       (tbc == UTF8PROC_BOUNDCLASS_L ||
-        tbc == UTF8PROC_BOUNDCLASS_V ||
-        tbc == UTF8PROC_BOUNDCLASS_LV ||
-        tbc == UTF8PROC_BOUNDCLASS_LVT)) ? false :
-      ((lbc == UTF8PROC_BOUNDCLASS_LV ||
-        lbc == UTF8PROC_BOUNDCLASS_V) &&
-       (tbc == UTF8PROC_BOUNDCLASS_V ||
-        tbc == UTF8PROC_BOUNDCLASS_T)) ? false :
-      ((lbc == UTF8PROC_BOUNDCLASS_LVT ||
-        lbc == UTF8PROC_BOUNDCLASS_T) &&
-       tbc == UTF8PROC_BOUNDCLASS_T) ? false :
-       true;
-    *last_boundclass = tbc;
-    if (boundary) {
-      if (bufsize >= 1) dst[0] = 0xFFFF;
-      if (bufsize >= 2) dst[1] = uc;
-      return 2;
-    }
-  }
-  if (bufsize >= 1) *dst = uc;
-  return 1;
-}
-
-ssize_t utf8proc_decompose(
-  const uint8_t *str, ssize_t strlen,
-  int32_t *buffer, ssize_t bufsize, int options
-) {
-  // strlen will be ignored, if UTF8PROC_NULLTERM is set in options
-  ssize_t wpos = 0;
-  if ((options & UTF8PROC_COMPOSE) && (options & UTF8PROC_DECOMPOSE))
-    return UTF8PROC_ERROR_INVALIDOPTS;
-  if ((options & UTF8PROC_STRIPMARK) &&
-      !(options & UTF8PROC_COMPOSE) && !(options & UTF8PROC_DECOMPOSE))
-    return UTF8PROC_ERROR_INVALIDOPTS;
-  {
-    int32_t uc;
-    ssize_t rpos = 0;
-    ssize_t decomp_result;
-    int boundclass = UTF8PROC_BOUNDCLASS_START;
-    while (1) {
-      if (options & UTF8PROC_NULLTERM) {
-        rpos += utf8proc_iterate(str + rpos, -1, &uc);
-        // checking of return value is not neccessary,
-        // as 'uc' is < 0 in case of error
-        if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8;
-        if (rpos < 0) return UTF8PROC_ERROR_OVERFLOW;
-        if (uc == 0) break;
-      } else {
-        if (rpos >= strlen) break;
-        rpos += utf8proc_iterate(str + rpos, strlen - rpos, &uc);
-        if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8;
-      }
-      decomp_result = utf8proc_decompose_char(
-        uc, buffer + wpos, (bufsize > wpos) ? (bufsize - wpos) : 0, options,
-        &boundclass
-      );
-      if (decomp_result < 0) return decomp_result;
-      wpos += decomp_result;
-      // prohibiting integer overflows due to too long strings:
-      if (wpos < 0 || wpos > SSIZE_MAX/sizeof(int32_t)/2)
-        return UTF8PROC_ERROR_OVERFLOW;
-    }
-  }
-  if ((options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) && bufsize >= wpos) {
-    ssize_t pos = 0;
-    while (pos < wpos-1) {
-      int32_t uc1, uc2;
-      const utf8proc_property_t *property1, *property2;
-      uc1 = buffer[pos];
-      uc2 = buffer[pos+1];
-      property1 = utf8proc_get_property(uc1);
-      property2 = utf8proc_get_property(uc2);
-      if (property1->combining_class > property2->combining_class &&
-          property2->combining_class > 0) {
-        buffer[pos] = uc2;
-        buffer[pos+1] = uc1;
-        if (pos > 0) pos--; else pos++;
-      } else {
-        pos++;
-      }
-    }
-  }
-  return wpos;
-}
-
-ssize_t utf8proc_reencode(int32_t *buffer, ssize_t length, int options) {
-  // UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored
-  // ASSERT: 'buffer' has one spare byte of free space at the end!
-  if (options & (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS | UTF8PROC_STRIPCC)) {
-    ssize_t rpos;
-    ssize_t wpos = 0;
-    int32_t uc;
-    for (rpos = 0; rpos < length; rpos++) {
-      uc = buffer[rpos];
-      if (uc == 0x000D && rpos < length-1 && buffer[rpos+1] == 0x000A) rpos++;
-      if (uc == 0x000A || uc == 0x000D || uc == 0x0085 ||
-          ((options & UTF8PROC_STRIPCC) && (uc == 0x000B || uc == 0x000C))) {
-        if (options & UTF8PROC_NLF2LS) {
-          if (options & UTF8PROC_NLF2PS) {
-            buffer[wpos++] = 0x000A;
-          } else {
-            buffer[wpos++] = 0x2028;
-          }
-        } else {
-          if (options & UTF8PROC_NLF2PS) {
-            buffer[wpos++] = 0x2029;
-          } else {
-            buffer[wpos++] = 0x0020;
-          }
-        }
-      } else if ((options & UTF8PROC_STRIPCC) &&
-          (uc < 0x0020 || (uc >= 0x007F && uc < 0x00A0))) {
-        if (uc == 0x0009) buffer[wpos++] = 0x0020;
-      } else {
-        buffer[wpos++] = uc;
-      }
-    }
-    length = wpos;
-  }
-  if (options & UTF8PROC_COMPOSE) {
-    int32_t *starter = NULL;
-    int32_t current_char;
-    const utf8proc_property_t *starter_property = NULL, *current_property;
-    utf8proc_propval_t max_combining_class = -1;
-    ssize_t rpos;
-    ssize_t wpos = 0;
-    int32_t composition;
-    for (rpos = 0; rpos < length; rpos++) {
-      current_char = buffer[rpos];
-      current_property = utf8proc_get_property(current_char);
-      if (starter && current_property->combining_class > max_combining_class) {
-        // combination perhaps possible
-        int32_t hangul_lindex;
-        int32_t hangul_sindex;
-        hangul_lindex = *starter - UTF8PROC_HANGUL_LBASE;
-        if (hangul_lindex >= 0 && hangul_lindex < UTF8PROC_HANGUL_LCOUNT) {
-          int32_t hangul_vindex;
-          hangul_vindex = current_char - UTF8PROC_HANGUL_VBASE;
-          if (hangul_vindex >= 0 && hangul_vindex < UTF8PROC_HANGUL_VCOUNT) {
-            *starter = UTF8PROC_HANGUL_SBASE +
-              (hangul_lindex * UTF8PROC_HANGUL_VCOUNT + hangul_vindex) *
-              UTF8PROC_HANGUL_TCOUNT;
-            starter_property = NULL;
-            continue;
-          }
-        }
-        hangul_sindex = *starter - UTF8PROC_HANGUL_SBASE;
-        if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT &&
-            (hangul_sindex % UTF8PROC_HANGUL_TCOUNT) == 0) {
-          int32_t hangul_tindex;
-          hangul_tindex = current_char - UTF8PROC_HANGUL_TBASE;
-          if (hangul_tindex >= 0 && hangul_tindex < UTF8PROC_HANGUL_TCOUNT) {
-            *starter += hangul_tindex;
-            starter_property = NULL;
-            continue;
-          }
-        }
-        if (!starter_property) {
-          starter_property = utf8proc_get_property(*starter);
-        }
-        if (starter_property->comb1st_index >= 0 &&
-            current_property->comb2nd_index >= 0) {
-          composition = utf8proc_combinations[
-            starter_property->comb1st_index +
-            current_property->comb2nd_index
-          ];
-          if (composition >= 0 && (!(options & UTF8PROC_STABLE) ||
-              !(utf8proc_get_property(composition)->comp_exclusion))) {
-            *starter = composition;
-            starter_property = NULL;
-            continue;
-          }
-        }
-      }
-      buffer[wpos] = current_char;
-      if (current_property->combining_class) {
-        if (current_property->combining_class > max_combining_class) {
-          max_combining_class = current_property->combining_class;
-        }
-      } else {
-        starter = buffer + wpos;
-        starter_property = NULL;
-        max_combining_class = -1;
-      }
-      wpos++;
-    }
-    length = wpos;
-  }
-  {
-    ssize_t rpos, wpos = 0;
-    int32_t uc;
-    for (rpos = 0; rpos < length; rpos++) {
-      uc = buffer[rpos];
-      wpos += utf8proc_encode_char(uc, ((uint8_t *)buffer) + wpos);
-    }
-    ((uint8_t *)buffer)[wpos] = 0;
-    return wpos;
-  }
-}
-
-ssize_t utf8proc_map(
-  const uint8_t *str, ssize_t strlen, uint8_t **dstptr, int options
-) {
-  int32_t *buffer;
-  ssize_t result;
-  *dstptr = NULL;
-  result = utf8proc_decompose(str, strlen, NULL, 0, options);
-  if (result < 0) return result;
-  buffer = malloc(result * sizeof(int32_t) + 1);
-  if (!buffer) return UTF8PROC_ERROR_NOMEM;
-  result = utf8proc_decompose(str, strlen, buffer, result, options);
-  if (result < 0) {
-    free(buffer);
-    return result;
-  }
-  result = utf8proc_reencode(buffer, result, options);
-  if (result < 0) {
-    free(buffer);
-    return result;
-  }
-  {
-    int32_t *newptr;
-    newptr = realloc(buffer, result+1);
-    if (newptr) buffer = newptr;
-  }
-  *dstptr = (uint8_t *)buffer;
-  return result;
-}
-
-uint8_t *utf8proc_NFD(const uint8_t *str) {
-  uint8_t *retval;
-  utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE |
-    UTF8PROC_DECOMPOSE);
-  return retval;
-}
-
-uint8_t *utf8proc_NFC(const uint8_t *str) {
-  uint8_t *retval;
-  utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE |
-    UTF8PROC_COMPOSE);
-  return retval;
-}
-
-uint8_t *utf8proc_NFKD(const uint8_t *str) {
-  uint8_t *retval;
-  utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE |
-    UTF8PROC_DECOMPOSE | UTF8PROC_COMPAT);
-  return retval;
-}
-
-uint8_t *utf8proc_NFKC(const uint8_t *str) {
-  uint8_t *retval;
-  utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE |
-    UTF8PROC_COMPOSE | UTF8PROC_COMPAT);
-  return retval;
-}
-
diff --git a/zephyr/server/utf8proc.h b/zephyr/server/utf8proc.h
deleted file mode 100644 (file)
index f883054..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- *  Copyright (c) 2006-2007 Jan Behrens, FlexiGuided GmbH, Berlin
- *
- *  Permission is hereby granted, free of charge, to any person obtaining a
- *  copy of this software and associated documentation files (the "Software"),
- *  to deal in the Software without restriction, including without limitation
- *  the rights to use, copy, modify, merge, publish, distribute, sublicense,
- *  and/or sell copies of the Software, and to permit persons to whom the
- *  Software is furnished to do so, subject to the following conditions:
- *
- *  The above copyright notice and this permission notice shall be included in
- *  all copies or substantial portions of the Software.
- *
- *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- *  DEALINGS IN THE SOFTWARE.
- */
-
-
-/*
- *  File name:    utf8proc.h
- *  Version:      1.1.1
- *  Last changed: 2007-07-22
- *
- *  Description:
- *  Header files for libutf8proc, which is a mapping tool for UTF-8 strings
- *  with following features:
- *  - decomposing and composing of strings
- *  - replacing compatibility characters with their equivalents
- *  - stripping of "default ignorable characters"
- *    like SOFT-HYPHEN or ZERO-WIDTH-SPACE
- *  - folding of certain characters for string comparison
- *    (e.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-")
- *    (see "LUMP" option)
- *  - optional rejection of strings containing non-assigned code points
- *  - stripping of control characters
- *  - stripping of character marks (accents, etc.)
- *  - transformation of LF, CRLF, CR and NEL to line-feed (LF)
- *    or to the unicode chararacters for paragraph separation (PS)
- *    or line separation (LS).
- *  - unicode case folding (for case insensitive string comparisons)
- *  - rejection of illegal UTF-8 data
- *    (i.e. UTF-8 encoded UTF-16 surrogates)
- *  - support for korean hangul characters
- *  Unicode Version 5.0.0 is supported.
- */
-
-
-#ifndef UTF8PROC_H
-#define UTF8PROC_H
-
-
-#include <stdlib.h>
-#include <stdbool.h>
-#include <sys/types.h>
-#include <inttypes.h>
-#include <limits.h>
-
-#ifndef SSIZE_MAX
-#define SSIZE_MAX (SIZE_MAX/2)
-#endif
-
-#define UTF8PROC_NULLTERM  (1<<0)
-#define UTF8PROC_STABLE    (1<<1)
-#define UTF8PROC_COMPAT    (1<<2)
-#define UTF8PROC_COMPOSE   (1<<3)
-#define UTF8PROC_DECOMPOSE (1<<4)
-#define UTF8PROC_IGNORE    (1<<5)
-#define UTF8PROC_REJECTNA  (1<<6)
-#define UTF8PROC_NLF2LS    (1<<7)
-#define UTF8PROC_NLF2PS    (1<<8)
-#define UTF8PROC_NLF2LF    (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS)
-#define UTF8PROC_STRIPCC   (1<<9)
-#define UTF8PROC_CASEFOLD  (1<<10)
-#define UTF8PROC_CHARBOUND (1<<11)
-#define UTF8PROC_LUMP      (1<<12)
-#define UTF8PROC_STRIPMARK (1<<13)
-/*
- *  Flags being regarded by several functions in the library:
- *  NULLTERM:  The given UTF-8 input is NULL terminated.
- *  STABLE:    Unicode Versioning Stability has to be respected.
- *  COMPAT:    Compatiblity decomposition
- *             (i.e. formatting information is lost)
- *  COMPOSE:   Return a result with composed characters.
- *  DECOMPOSE: Return a result with decomposed characters.
- *  IGNORE:    Strip "default ignorable characters"
- *  REJECTNA:  Return an error, if the input contains unassigned
- *             code points.
- *  NLF2LS:    Indicating that NLF-sequences (LF, CRLF, CR, NEL) are
- *             representing a line break, and should be converted to the
- *             unicode character for line separation (LS).
- *  NLF2PS:    Indicating that NLF-sequences are representing a paragraph
- *             break, and should be converted to the unicode character for
- *             paragraph separation (PS).
- *  NLF2LF:    Indicating that the meaning of NLF-sequences is unknown.
- *  STRIPCC:   Strips and/or convers control characters.
- *             NLF-sequences are transformed into space, except if one of
- *             the NLF2LS/PS/LF options is given.
- *             HorizontalTab (HT) and FormFeed (FF) are treated as a
- *             NLF-sequence in this case.
- *             All other control characters are simply removed.
- *  CASEFOLD:  Performs unicode case folding, to be able to do a
- *             case-insensitive string comparison.
- *  CHARBOUND: Inserts 0xFF bytes at the beginning of each sequence which
- *             is representing a single grapheme cluster (see UAX#29).
- *  LUMP:      Lumps certain characters together
- *             (e.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-").
- *             (See lump.txt for details.)
- *             If NLF2LF is set, this includes a transformation of
- *             paragraph and line separators to ASCII line-feed (LF).
- *  STRIPMARK: Strips all character markings
- *             (non-spacing, spacing and enclosing) (i.e. accents)
- *             NOTE: this option works only with COMPOSE or DECOMPOSE
- */
-
-#define UTF8PROC_ERROR_NOMEM -1
-#define UTF8PROC_ERROR_OVERFLOW -2
-#define UTF8PROC_ERROR_INVALIDUTF8 -3
-#define UTF8PROC_ERROR_NOTASSIGNED -4
-#define UTF8PROC_ERROR_INVALIDOPTS -5
-/*
- *  Error codes being returned by almost all functions:
- *  ERROR_NOMEM:       Memory could not be allocated.
- *  ERROR_OVERFLOW:    The given string is too long to be processed.
- *  ERROR_INVALIDUTF8: The given string is not a legal UTF-8 string.
- *  ERROR_NOTASSIGNED: The REJECTNA flag was set,
- *                     and an unassigned code point was found.
- *  ERROR_INVALIDOPTS: Invalid options have been used.
- */
-
-typedef int16_t utf8proc_propval_t;
-typedef struct utf8proc_property_struct {
-  utf8proc_propval_t category;
-  utf8proc_propval_t combining_class;
-  utf8proc_propval_t bidi_class;
-  utf8proc_propval_t decomp_type;
-  const int32_t *decomp_mapping;
-  unsigned bidi_mirrored:1;
-  int32_t uppercase_mapping;
-  int32_t lowercase_mapping;
-  int32_t titlecase_mapping;
-  int32_t comb1st_index;
-  int32_t comb2nd_index;
-  unsigned comp_exclusion:1;
-  unsigned ignorable:1;
-  unsigned control_boundary:1;
-  unsigned extend:1;
-  const int32_t *casefold_mapping;
-} utf8proc_property_t;
-
-#define UTF8PROC_CATEGORY_LU  1
-#define UTF8PROC_CATEGORY_LL  2
-#define UTF8PROC_CATEGORY_LT  3
-#define UTF8PROC_CATEGORY_LM  4
-#define UTF8PROC_CATEGORY_LO  5
-#define UTF8PROC_CATEGORY_MN  6
-#define UTF8PROC_CATEGORY_MC  7
-#define UTF8PROC_CATEGORY_ME  8
-#define UTF8PROC_CATEGORY_ND  9
-#define UTF8PROC_CATEGORY_NL 10
-#define UTF8PROC_CATEGORY_NO 11
-#define UTF8PROC_CATEGORY_PC 12
-#define UTF8PROC_CATEGORY_PD 13
-#define UTF8PROC_CATEGORY_PS 14
-#define UTF8PROC_CATEGORY_PE 15
-#define UTF8PROC_CATEGORY_PI 16
-#define UTF8PROC_CATEGORY_PF 17
-#define UTF8PROC_CATEGORY_PO 18
-#define UTF8PROC_CATEGORY_SM 19
-#define UTF8PROC_CATEGORY_SC 20
-#define UTF8PROC_CATEGORY_SK 21
-#define UTF8PROC_CATEGORY_SO 22
-#define UTF8PROC_CATEGORY_ZS 23
-#define UTF8PROC_CATEGORY_ZL 24
-#define UTF8PROC_CATEGORY_ZP 25
-#define UTF8PROC_CATEGORY_CC 26
-#define UTF8PROC_CATEGORY_CF 27
-#define UTF8PROC_CATEGORY_CS 28
-#define UTF8PROC_CATEGORY_CO 29
-#define UTF8PROC_CATEGORY_CN 30
-#define UTF8PROC_BIDI_CLASS_L    1
-#define UTF8PROC_BIDI_CLASS_LRE  2
-#define UTF8PROC_BIDI_CLASS_LRO  3
-#define UTF8PROC_BIDI_CLASS_R    4
-#define UTF8PROC_BIDI_CLASS_AL   5
-#define UTF8PROC_BIDI_CLASS_RLE  6
-#define UTF8PROC_BIDI_CLASS_RLO  7
-#define UTF8PROC_BIDI_CLASS_PDF  8
-#define UTF8PROC_BIDI_CLASS_EN   9
-#define UTF8PROC_BIDI_CLASS_ES  10
-#define UTF8PROC_BIDI_CLASS_ET  11
-#define UTF8PROC_BIDI_CLASS_AN  12
-#define UTF8PROC_BIDI_CLASS_CS  13
-#define UTF8PROC_BIDI_CLASS_NSM 14
-#define UTF8PROC_BIDI_CLASS_BN  15
-#define UTF8PROC_BIDI_CLASS_B   16
-#define UTF8PROC_BIDI_CLASS_S   17
-#define UTF8PROC_BIDI_CLASS_WS  18
-#define UTF8PROC_BIDI_CLASS_ON  19
-#define UTF8PROC_DECOMP_TYPE_FONT      1
-#define UTF8PROC_DECOMP_TYPE_NOBREAK   2
-#define UTF8PROC_DECOMP_TYPE_INITIAL   3
-#define UTF8PROC_DECOMP_TYPE_MEDIAL    4
-#define UTF8PROC_DECOMP_TYPE_FINAL     5
-#define UTF8PROC_DECOMP_TYPE_ISOLATED  6
-#define UTF8PROC_DECOMP_TYPE_CIRCLE    7
-#define UTF8PROC_DECOMP_TYPE_SUPER     8
-#define UTF8PROC_DECOMP_TYPE_SUB       9
-#define UTF8PROC_DECOMP_TYPE_VERTICAL 10
-#define UTF8PROC_DECOMP_TYPE_WIDE     11
-#define UTF8PROC_DECOMP_TYPE_NARROW   12
-#define UTF8PROC_DECOMP_TYPE_SMALL    13
-#define UTF8PROC_DECOMP_TYPE_SQUARE   14
-#define UTF8PROC_DECOMP_TYPE_FRACTION 15
-#define UTF8PROC_DECOMP_TYPE_COMPAT   16
-
-extern const int8_t utf8proc_utf8class[256];
-
-const char *utf8proc_errmsg(ssize_t errcode);
-/*
- *  Returns a static error string for the given error code.
- */
-
-ssize_t utf8proc_iterate(const uint8_t *str, ssize_t strlen, int32_t *dst);
-/*
- *  Reads a single char from the UTF-8 sequence being pointed to by 'str'.
- *  The maximum number of bytes read is 'strlen', unless 'strlen' is
- *  negative.
- *  If a valid unicode char could be read, it is stored in the variable
- *  being pointed to by 'dst', otherwise that variable will be set to -1.
- *  In case of success the number of bytes read is returned, otherwise a
- *  negative error code is returned.
- */
-
-bool utf8proc_codepoint_valid(int32_t uc);
-/*
- *  Returns 1, if the given unicode code-point is valid, otherwise 0.
- */
-
-ssize_t utf8proc_encode_char(int32_t uc, uint8_t *dst);
-/*
- *  Encodes the unicode char with the code point 'uc' as an UTF-8 string in
- *  the byte array being pointed to by 'dst'. This array has to be at least
- *  4 bytes long.
- *  In case of success the number of bytes written is returned,
- *  otherwise 0.
- *  This function does not check if 'uc' is a valid unicode code point.
- */
-
-const utf8proc_property_t *utf8proc_get_property(int32_t uc);
-/*
- *  Returns a pointer to a (constant) struct containing information about
- *  the unicode char with the given code point 'uc'.
- *  If the character is not existent a pointer to a special struct is
- *  returned, where 'category' is a NULL pointer.
- *  WARNING: The parameter 'uc' has to be in the range of 0x0000 to
- *           0x10FFFF, otherwise the program might crash!
- */
-
-ssize_t utf8proc_decompose_char(
-  int32_t uc, int32_t *dst, ssize_t bufsize,
-  int options, int *last_boundclass
-);
-/*
- *  Writes a decomposition of the unicode char 'uc' into the array being
- *  pointed to by 'dst'.
- *  Following flags in the 'options' field are regarded:
- *  REJECTNA:  an unassigned unicode code point leads to an error
- *  IGNORE:    "default ignorable" chars are stripped
- *  CASEFOLD:  unicode casefolding is applied
- *  COMPAT:    replace certain characters with their
- *             compatibility decomposition
- *  CHARBOUND: Inserts 0xFF bytes before each grapheme cluster
- *  LUMP:      lumps certain different characters together
- *  STRIPMARK: removes all character marks
- *  The pointer 'last_boundclass' has to point to an integer variable which
- *  is storing the last character boundary class, if the CHARBOUND option
- *  is used.
- *  In case of success the number of chars written is returned,
- *  in case of an error, a negative error code is returned.
- *  If the number of written chars would be bigger than 'bufsize',
- *  the buffer (up to 'bufsize') has inpredictable data, and the needed
- *  buffer size is returned.
- *  WARNING: The parameter 'uc' has to be in the range of 0x0000 to
- *           0x10FFFF, otherwise the program might crash!
- */
-
-ssize_t utf8proc_decompose(
-  const uint8_t *str, ssize_t strlen,
-  int32_t *buffer, ssize_t bufsize, int options
-);
-/*
- *  Does the same as 'utf8proc_decompose_char', but acts on a whole UTF-8
- *  string, and orders the decomposed sequences correctly.
- *  If the NULLTERM flag in 'options' is set, processing will be stopped,
- *  when a NULL byte is encounted, otherwise 'strlen' bytes are processed.
- *  The result in form of unicode code points is written into the buffer
- *  being pointed to by 'buffer', having the length of 'bufsize' entries.
- *  In case of success the number of chars written is returned,
- *  in case of an error, a negative error code is returned.
- *  If the number of written chars would be bigger than 'bufsize',
- *  the buffer (up to 'bufsize') has inpredictable data, and the needed
- *  buffer size is returned.
- */
-
-ssize_t utf8proc_reencode(int32_t *buffer, ssize_t length, int options);
-/*
- *  Reencodes the sequence of unicode characters given by the pointer
- *  'buffer' and 'length' as UTF-8.
- *  The result is stored in the same memory area where the data is read.
- *  Following flags in the 'options' field are regarded:
- *  NLF2LS:  converts LF, CRLF, CR and NEL into LS
- *  NLF2PS:  converts LF, CRLF, CR and NEL into PS
- *  NLF2LF:  converts LF, CRLF, CR and NEL into LF
- *  STRIPCC: strips or converts all non-affected control characters
- *  COMPOSE: tries to combine decomposed characters into composite
- *           characters
- *  STABLE:  prohibits combining characters which would violate
- *           the unicode versioning stability
- *  In case of success the length of the resulting UTF-8 string is
- *  returned, otherwise a negative error code is returned.
- *  WARNING: The amount of free space being pointed to by 'buffer', has to
- *           exceed the amount of the input data by one byte, and the
- *           entries of the array pointed to by 'str' have to be in the
- *           range of 0x0000 to 0x10FFFF, otherwise the program might
- *           crash!
- */
-
-ssize_t utf8proc_map(
-  const uint8_t *str, ssize_t strlen, uint8_t **dstptr, int options
-);
-/*
- *  Maps the given UTF-8 string being pointed to by 'str' to a new UTF-8
- *  string, which is allocated dynamically, and afterwards pointed to by
- *  the pointer being pointed to by 'dstptr'.
- *  If the NULLTERM flag in the 'options' field is set, the length is
- *  determined by a NULL terminator, otherwise the parameter 'strlen' is
- *  evaluated to determine the string length, but in any case the result
- *  will be NULL terminated (though it might contain NULL characters
- *  before). Other flags in the 'options' field are passed to the functions
- *  defined above, and regarded as described.
- *  In case of success the length of the new string is returned,
- *  otherwise a negative error code is returned.
- *  NOTICE: The memory of the new UTF-8 string will have been allocated with
- *          'malloc', and has theirfore to be freed with 'free'.
- */
-
-uint8_t *utf8proc_NFD(const uint8_t *str);
-uint8_t *utf8proc_NFC(const uint8_t *str);
-uint8_t *utf8proc_NFKD(const uint8_t *str);
-uint8_t *utf8proc_NFKC(const uint8_t *str);
-/*
- *  Returns a pointer to newly allocated memory of a NFD, NFC, NFKD or NFKC
- *  normalized version of the null-terminated string 'str'.
- */
-
-
-#endif
-
diff --git a/zephyr/server/utf8proc_data.c b/zephyr/server/utf8proc_data.c
deleted file mode 100644 (file)
index 1426b76..0000000
+++ /dev/null
@@ -1,13383 +0,0 @@
-/*
- *  This file contains derived data from a modified version of the
- *  Unicode data files.
- *
- *  The original data files are available at
- *  http://www.unicode.org/Public/UNIDATA/
- *
- *
- *  COPYRIGHT AND PERMISSION NOTICE
- *
- *  Copyright (c) 1991-2007 Unicode, Inc. All rights reserved. Distributed
- *  under the Terms of Use in http://www.unicode.org/copyright.html.
- *
- *  Permission is hereby granted, free of charge, to any person obtaining a
- *  copy of the Unicode data files and any associated documentation (the "Data
- *  Files") or Unicode software and any associated documentation (the
- *  "Software") to deal in the Data Files or Software without restriction,
- *  including without limitation the rights to use, copy, modify, merge,
- *  publish, distribute, and/or sell copies of the Data Files or Software, and
- *  to permit persons to whom the Data Files or Software are furnished to do
- *  so, provided that (a) the above copyright notice(s) and this permission
- *  notice appear with all copies of the Data Files or Software, (b) both the
- *  above copyright notice(s) and this permission notice appear in associated
- *  documentation, and (c) there is clear notice in each modified Data File or
- *  in the Software as well as in the documentation associated with the Data
- *  File(s) or Software that the data or software has been modified.
- *
- *  THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
- *  KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
- *  THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
- *  INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR
- *  CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
- *  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- *  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- *  PERFORMANCE OF THE DATA FILES OR SOFTWARE.
- *
- *  Except as contained in this notice, the name of a copyright holder shall
- *  not be used in advertising or otherwise to promote the sale, use or other
- *  dealings in these Data Files or Software without prior written
- *  authorization of the copyright holder.
- */
-
-
-const int32_t utf8proc_sequences[] = {
-  97, -1, 98, -1, 99, -1, 100, 
-  -1, 101, -1, 102, -1, 103, -1, 104, 
-  -1, 105, -1, 106, -1, 107, -1, 108, 
-  -1, 109, -1, 110, -1, 111, -1, 112, 
-  -1, 113, -1, 114, -1, 115, -1, 116, 
-  -1, 117, -1, 118, -1, 119, -1, 120, 
-  -1, 121, -1, 122, -1, 32, -1, 32, 
-  776, -1, 32, 772, -1, 50, -1, 51, 
-  -1, 32, 769, -1, 956, -1, 32, 807, 
-  -1, 49, -1, 49, 8260, 52, -1, 49, 
-  8260, 50, -1, 51, 8260, 52, -1, 65, 
-  768, -1, 224, -1, 65, 769, -1, 225, 
-  -1, 65, 770, -1, 226, -1, 65, 771, 
-  -1, 227, -1, 65, 776, -1, 228, -1, 
-  65, 778, -1, 229, -1, 230, -1, 67, 
-  807, -1, 231, -1, 69, 768, -1, 232, 
-  -1, 69, 769, -1, 233, -1, 69, 770, 
-  -1, 234, -1, 69, 776, -1, 235, -1, 
-  73, 768, -1, 236, -1, 73, 769, -1, 
-  237, -1, 73, 770, -1, 238, -1, 73, 
-  776, -1, 239, -1, 240, -1, 78, 771, 
-  -1, 241, -1, 79, 768, -1, 242, -1, 
-  79, 769, -1, 243, -1, 79, 770, -1, 
-  244, -1, 79, 771, -1, 245, -1, 79, 
-  776, -1, 246, -1, 248, -1, 85, 768, 
-  -1, 249, -1, 85, 769, -1, 250, -1, 
-  85, 770, -1, 251, -1, 85, 776, -1, 
-  252, -1, 89, 769, -1, 253, -1, 254, 
-  -1, 115, 115, -1, 97, 768, -1, 97, 
-  769, -1, 97, 770, -1, 97, 771, -1, 
-  97, 776, -1, 97, 778, -1, 99, 807, 
-  -1, 101, 768, -1, 101, 769, -1, 101, 
-  770, -1, 101, 776, -1, 105, 768, -1, 
-  105, 769, -1, 105, 770, -1, 105, 776, 
-  -1, 110, 771, -1, 111, 768, -1, 111, 
-  769, -1, 111, 770, -1, 111, 771, -1, 
-  111, 776, -1, 117, 768, -1, 117, 769, 
-  -1, 117, 770, -1, 117, 776, -1, 121, 
-  769, -1, 121, 776, -1, 65, 772, -1, 
-  257, -1, 97, 772, -1, 65, 774, -1, 
-  259, -1, 97, 774, -1, 65, 808, -1, 
-  261, -1, 97, 808, -1, 67, 769, -1, 
-  263, -1, 99, 769, -1, 67, 770, -1, 
-  265, -1, 99, 770, -1, 67, 775, -1, 
-  267, -1, 99, 775, -1, 67, 780, -1, 
-  269, -1, 99, 780, -1, 68, 780, -1, 
-  271, -1, 100, 780, -1, 273, -1, 69, 
-  772, -1, 275, -1, 101, 772, -1, 69, 
-  774, -1, 277, -1, 101, 774, -1, 69, 
-  775, -1, 279, -1, 101, 775, -1, 69, 
-  808, -1, 281, -1, 101, 808, -1, 69, 
-  780, -1, 283, -1, 101, 780, -1, 71, 
-  770, -1, 285, -1, 103, 770, -1, 71, 
-  774, -1, 287, -1, 103, 774, -1, 71, 
-  775, -1, 289, -1, 103, 775, -1, 71, 
-  807, -1, 291, -1, 103, 807, -1, 72, 
-  770, -1, 293, -1, 104, 770, -1, 295, 
-  -1, 73, 771, -1, 297, -1, 105, 771, 
-  -1, 73, 772, -1, 299, -1, 105, 772, 
-  -1, 73, 774, -1, 301, -1, 105, 774, 
-  -1, 73, 808, -1, 303, -1, 105, 808, 
-  -1, 73, 775, -1, 105, 775, -1, 73, 
-  74, -1, 307, -1, 105, 106, -1, 74, 
-  770, -1, 309, -1, 106, 770, -1, 75, 
-  807, -1, 311, -1, 107, 807, -1, 76, 
-  769, -1, 314, -1, 108, 769, -1, 76, 
-  807, -1, 316, -1, 108, 807, -1, 76, 
-  780, -1, 318, -1, 108, 780, -1, 76, 
-  183, -1, 320, -1, 108, 183, -1, 322, 
-  -1, 78, 769, -1, 324, -1, 110, 769, 
-  -1, 78, 807, -1, 326, -1, 110, 807, 
-  -1, 78, 780, -1, 328, -1, 110, 780, 
-  -1, 700, 110, -1, 331, -1, 79, 772, 
-  -1, 333, -1, 111, 772, -1, 79, 774, 
-  -1, 335, -1, 111, 774, -1, 79, 779, 
-  -1, 337, -1, 111, 779, -1, 339, -1, 
-  82, 769, -1, 341, -1, 114, 769, -1, 
-  82, 807, -1, 343, -1, 114, 807, -1, 
-  82, 780, -1, 345, -1, 114, 780, -1, 
-  83, 769, -1, 347, -1, 115, 769, -1, 
-  83, 770, -1, 349, -1, 115, 770, -1, 
-  83, 807, -1, 351, -1, 115, 807, -1, 
-  83, 780, -1, 353, -1, 115, 780, -1, 
-  84, 807, -1, 355, -1, 116, 807, -1, 
-  84, 780, -1, 357, -1, 116, 780, -1, 
-  359, -1, 85, 771, -1, 361, -1, 117, 
-  771, -1, 85, 772, -1, 363, -1, 117, 
-  772, -1, 85, 774, -1, 365, -1, 117, 
-  774, -1, 85, 778, -1, 367, -1, 117, 
-  778, -1, 85, 779, -1, 369, -1, 117, 
-  779, -1, 85, 808, -1, 371, -1, 117, 
-  808, -1, 87, 770, -1, 373, -1, 119, 
-  770, -1, 89, 770, -1, 375, -1, 121, 
-  770, -1, 89, 776, -1, 255, -1, 90, 
-  769, -1, 378, -1, 122, 769, -1, 90, 
-  775, -1, 380, -1, 122, 775, -1, 90, 
-  780, -1, 382, -1, 122, 780, -1, 595, 
-  -1, 387, -1, 389, -1, 596, -1, 392, 
-  -1, 598, -1, 599, -1, 396, -1, 477, 
-  -1, 601, -1, 603, -1, 402, -1, 608, 
-  -1, 611, -1, 617, -1, 616, -1, 409, 
-  -1, 623, -1, 626, -1, 629, -1, 79, 
-  795, -1, 417, -1, 111, 795, -1, 419, 
-  -1, 421, -1, 640, -1, 424, -1, 643, 
-  -1, 429, -1, 648, -1, 85, 795, -1, 
-  432, -1, 117, 795, -1, 650, -1, 651, 
-  -1, 436, -1, 438, -1, 658, -1, 441, 
-  -1, 445, -1, 68, 381, -1, 454, -1, 
-  68, 382, -1, 100, 382, -1, 76, 74, 
-  -1, 457, -1, 76, 106, -1, 108, 106, 
-  -1, 78, 74, -1, 460, -1, 78, 106, 
-  -1, 110, 106, -1, 65, 780, -1, 462, 
-  -1, 97, 780, -1, 73, 780, -1, 464, 
-  -1, 105, 780, -1, 79, 780, -1, 466, 
-  -1, 111, 780, -1, 85, 780, -1, 468, 
-  -1, 117, 780, -1, 220, 772, -1, 470, 
-  -1, 252, 772, -1, 220, 769, -1, 472, 
-  -1, 252, 769, -1, 220, 780, -1, 474, 
-  -1, 252, 780, -1, 220, 768, -1, 476, 
-  -1, 252, 768, -1, 196, 772, -1, 479, 
-  -1, 228, 772, -1, 550, 772, -1, 481, 
-  -1, 551, 772, -1, 198, 772, -1, 483, 
-  -1, 230, 772, -1, 485, -1, 71, 780, 
-  -1, 487, -1, 103, 780, -1, 75, 780, 
-  -1, 489, -1, 107, 780, -1, 79, 808, 
-  -1, 491, -1, 111, 808, -1, 490, 772, 
-  -1, 493, -1, 491, 772, -1, 439, 780, 
-  -1, 495, -1, 658, 780, -1, 106, 780, 
-  -1, 68, 90, -1, 499, -1, 68, 122, 
-  -1, 100, 122, -1, 71, 769, -1, 501, 
-  -1, 103, 769, -1, 405, -1, 447, -1, 
-  78, 768, -1, 505, -1, 110, 768, -1, 
-  197, 769, -1, 507, -1, 229, 769, -1, 
-  198, 769, -1, 509, -1, 230, 769, -1, 
-  216, 769, -1, 511, -1, 248, 769, -1, 
-  65, 783, -1, 513, -1, 97, 783, -1, 
-  65, 785, -1, 515, -1, 97, 785, -1, 
-  69, 783, -1, 517, -1, 101, 783, -1, 
-  69, 785, -1, 519, -1, 101, 785, -1, 
-  73, 783, -1, 521, -1, 105, 783, -1, 
-  73, 785, -1, 523, -1, 105, 785, -1, 
-  79, 783, -1, 525, -1, 111, 783, -1, 
-  79, 785, -1, 527, -1, 111, 785, -1, 
-  82, 783, -1, 529, -1, 114, 783, -1, 
-  82, 785, -1, 531, -1, 114, 785, -1, 
-  85, 783, -1, 533, -1, 117, 783, -1, 
-  85, 785, -1, 535, -1, 117, 785, -1, 
-  83, 806, -1, 537, -1, 115, 806, -1, 
-  84, 806, -1, 539, -1, 116, 806, -1, 
-  541, -1, 72, 780, -1, 543, -1, 104, 
-  780, -1, 414, -1, 547, -1, 549, -1, 
-  65, 775, -1, 551, -1, 97, 775, -1, 
-  69, 807, -1, 553, -1, 101, 807, -1, 
-  214, 772, -1, 555, -1, 246, 772, -1, 
-  213, 772, -1, 557, -1, 245, 772, -1, 
-  79, 775, -1, 559, -1, 111, 775, -1, 
-  558, 772, -1, 561, -1, 559, 772, -1, 
-  89, 772, -1, 563, -1, 121, 772, -1, 
-  11365, -1, 572, -1, 410, -1, 11366, -1, 
-  578, -1, 384, -1, 649, -1, 652, -1, 
-  583, -1, 585, -1, 587, -1, 589, -1, 
-  591, -1, 614, -1, 633, -1, 635, -1, 
-  641, -1, 32, 774, -1, 32, 775, -1, 
-  32, 778, -1, 32, 808, -1, 32, 771, 
-  -1, 32, 779, -1, 661, -1, 768, -1, 
-  769, -1, 787, -1, 776, 769, -1, 953, 
-  -1, 697, -1, 32, 837, -1, 59, -1, 
-  168, 769, -1, 913, 769, -1, 940, -1, 
-  183, -1, 917, 769, -1, 941, -1, 919, 
-  769, -1, 942, -1, 921, 769, -1, 943, 
-  -1, 927, 769, -1, 972, -1, 933, 769, 
-  -1, 973, -1, 937, 769, -1, 974, -1, 
-  970, 769, -1, 953, 776, 769, -1, 945, 
-  -1, 946, -1, 947, -1, 948, -1, 949, 
-  -1, 950, -1, 951, -1, 952, -1, 954, 
-  -1, 955, -1, 957, -1, 958, -1, 959, 
-  -1, 960, -1, 961, -1, 963, -1, 964, 
-  -1, 965, -1, 966, -1, 967, -1, 968, 
-  -1, 969, -1, 921, 776, -1, 970, -1, 
-  933, 776, -1, 971, -1, 945, 769, -1, 
-  949, 769, -1, 951, 769, -1, 953, 769, 
-  -1, 971, 769, -1, 965, 776, 769, -1, 
-  953, 776, -1, 965, 776, -1, 959, 769, 
-  -1, 965, 769, -1, 969, 769, -1, 933, 
-  -1, 978, 769, -1, 978, 776, -1, 985, 
-  -1, 987, -1, 989, -1, 991, -1, 993, 
-  -1, 995, -1, 997, -1, 999, -1, 1001, 
-  -1, 1003, -1, 1005, -1, 1007, -1, 962, 
-  -1, 920, -1, 1016, -1, 931, -1, 1010, 
-  -1, 1019, -1, 891, -1, 892, -1, 893, 
-  -1, 1045, 768, -1, 1104, -1, 1045, 776, 
-  -1, 1105, -1, 1106, -1, 1043, 769, -1, 
-  1107, -1, 1108, -1, 1109, -1, 1110, -1, 
-  1030, 776, -1, 1111, -1, 1112, -1, 1113, 
-  -1, 1114, -1, 1115, -1, 1050, 769, -1, 
-  1116, -1, 1048, 768, -1, 1117, -1, 1059, 
-  774, -1, 1118, -1, 1119, -1, 1072, -1, 
-  1073, -1, 1074, -1, 1075, -1, 1076, -1, 
-  1077, -1, 1078, -1, 1079, -1, 1080, -1, 
-  1048, 774, -1, 1081, -1, 1082, -1, 1083, 
-  -1, 1084, -1, 1085, -1, 1086, -1, 1087, 
-  -1, 1088, -1, 1089, -1, 1090, -1, 1091, 
-  -1, 1092, -1, 1093, -1, 1094, -1, 1095, 
-  -1, 1096, -1, 1097, -1, 1098, -1, 1099, 
-  -1, 1100, -1, 1101, -1, 1102, -1, 1103, 
-  -1, 1080, 774, -1, 1077, 768, -1, 1077, 
-  776, -1, 1075, 769, -1, 1110, 776, -1, 
-  1082, 769, -1, 1080, 768, -1, 1091, 774, 
-  -1, 1121, -1, 1123, -1, 1125, -1, 1127, 
-  -1, 1129, -1, 1131, -1, 1133, -1, 1135, 
-  -1, 1137, -1, 1139, -1, 1141, -1, 1140, 
-  783, -1, 1143, -1, 1141, 783, -1, 1145, 
-  -1, 1147, -1, 1149, -1, 1151, -1, 1153, 
-  -1, 1163, -1, 1165, -1, 1167, -1, 1169, 
-  -1, 1171, -1, 1173, -1, 1175, -1, 1177, 
-  -1, 1179, -1, 1181, -1, 1183, -1, 1185, 
-  -1, 1187, -1, 1189, -1, 1191, -1, 1193, 
-  -1, 1195, -1, 1197, -1, 1199, -1, 1201, 
-  -1, 1203, -1, 1205, -1, 1207, -1, 1209, 
-  -1, 1211, -1, 1213, -1, 1215, -1, 1231, 
-  -1, 1046, 774, -1, 1218, -1, 1078, 774, 
-  -1, 1220, -1, 1222, -1, 1224, -1, 1226, 
-  -1, 1228, -1, 1230, -1, 1040, 774, -1, 
-  1233, -1, 1072, 774, -1, 1040, 776, -1, 
-  1235, -1, 1072, 776, -1, 1237, -1, 1045, 
-  774, -1, 1239, -1, 1077, 774, -1, 1241, 
-  -1, 1240, 776, -1, 1243, -1, 1241, 776, 
-  -1, 1046, 776, -1, 1245, -1, 1078, 776, 
-  -1, 1047, 776, -1, 1247, -1, 1079, 776, 
-  -1, 1249, -1, 1048, 772, -1, 1251, -1, 
-  1080, 772, -1, 1048, 776, -1, 1253, -1, 
-  1080, 776, -1, 1054, 776, -1, 1255, -1, 
-  1086, 776, -1, 1257, -1, 1256, 776, -1, 
-  1259, -1, 1257, 776, -1, 1069, 776, -1, 
-  1261, -1, 1101, 776, -1, 1059, 772, -1, 
-  1263, -1, 1091, 772, -1, 1059, 776, -1, 
-  1265, -1, 1091, 776, -1, 1059, 779, -1, 
-  1267, -1, 1091, 779, -1, 1063, 776, -1, 
-  1269, -1, 1095, 776, -1, 1271, -1, 1067, 
-  776, -1, 1273, -1, 1099, 776, -1, 1275, 
-  -1, 1277, -1, 1279, -1, 1281, -1, 1283, 
-  -1, 1285, -1, 1287, -1, 1289, -1, 1291, 
-  -1, 1293, -1, 1295, -1, 1297, -1, 1299, 
-  -1, 1377, -1, 1378, -1, 1379, -1, 1380, 
-  -1, 1381, -1, 1382, -1, 1383, -1, 1384, 
-  -1, 1385, -1, 1386, -1, 1387, -1, 1388, 
-  -1, 1389, -1, 1390, -1, 1391, -1, 1392, 
-  -1, 1393, -1, 1394, -1, 1395, -1, 1396, 
-  -1, 1397, -1, 1398, -1, 1399, -1, 1400, 
-  -1, 1401, -1, 1402, -1, 1403, -1, 1404, 
-  -1, 1405, -1, 1406, -1, 1407, -1, 1408, 
-  -1, 1409, -1, 1410, -1, 1411, -1, 1412, 
-  -1, 1413, -1, 1414, -1, 1381, 1410, -1, 
-  1575, 1619, -1, 1575, 1620, -1, 1608, 1620, 
-  -1, 1575, 1621, -1, 1610, 1620, -1, 1575, 
-  1652, -1, 1608, 1652, -1, 1735, 1652, -1, 
-  1610, 1652, -1, 1749, 1620, -1, 1729, 1620, 
-  -1, 1746, 1620, -1, 2344, 2364, -1, 2352, 
-  2364, -1, 2355, 2364, -1, 2325, 2364, -1, 
-  2326, 2364, -1, 2327, 2364, -1, 2332, 2364, 
-  -1, 2337, 2364, -1, 2338, 2364, -1, 2347, 
-  2364, -1, 2351, 2364, -1, 2503, 2494, -1, 
-  2503, 2519, -1, 2465, 2492, -1, 2466, 2492, 
-  -1, 2479, 2492, -1, 2610, 2620, -1, 2616, 
-  2620, -1, 2582, 2620, -1, 2583, 2620, -1, 
-  2588, 2620, -1, 2603, 2620, -1, 2887, 2902, 
-  -1, 2887, 2878, -1, 2887, 2903, -1, 2849, 
-  2876, -1, 2850, 2876, -1, 2962, 3031, -1, 
-  3014, 3006, -1, 3015, 3006, -1, 3014, 3031, 
-  -1, 3142, 3158, -1, 3263, 3285, -1, 3270, 
-  3285, -1, 3270, 3286, -1, 3270, 3266, -1, 
-  3274, 3285, -1, 3398, 3390, -1, 3399, 3390, 
-  -1, 3398, 3415, -1, 3545, 3530, -1, 3545, 
-  3535, -1, 3548, 3530, -1, 3545, 3551, -1, 
-  3661, 3634, -1, 3789, 3762, -1, 3755, 3737, 
-  -1, 3755, 3745, -1, 3851, -1, 3906, 4023, 
-  -1, 3916, 4023, -1, 3921, 4023, -1, 3926, 
-  4023, -1, 3931, 4023, -1, 3904, 4021, -1, 
-  3953, 3954, -1, 3953, 3956, -1, 4018, 3968, 
-  -1, 4018, 3969, -1, 4019, 3968, -1, 4019, 
-  3969, -1, 3953, 3968, -1, 3986, 4023, -1, 
-  3996, 4023, -1, 4001, 4023, -1, 4006, 4023, 
-  -1, 4011, 4023, -1, 3984, 4021, -1, 4133, 
-  4142, -1, 11520, -1, 11521, -1, 11522, -1, 
-  11523, -1, 11524, -1, 11525, -1, 11526, -1, 
-  11527, -1, 11528, -1, 11529, -1, 11530, -1, 
-  11531, -1, 11532, -1, 11533, -1, 11534, -1, 
-  11535, -1, 11536, -1, 11537, -1, 11538, -1, 
-  11539, -1, 11540, -1, 11541, -1, 11542, -1, 
-  11543, -1, 11544, -1, 11545, -1, 11546, -1, 
-  11547, -1, 11548, -1, 11549, -1, 11550, -1, 
-  11551, -1, 11552, -1, 11553, -1, 11554, -1, 
-  11555, -1, 11556, -1, 11557, -1, 4316, -1, 
-  6917, 6965, -1, 6919, 6965, -1, 6921, 6965, 
-  -1, 6923, 6965, -1, 6925, 6965, -1, 6929, 
-  6965, -1, 6970, 6965, -1, 6972, 6965, -1, 
-  6974, 6965, -1, 6975, 6965, -1, 6978, 6965, 
-  -1, 65, -1, 198, -1, 66, -1, 68, 
-  -1, 69, -1, 398, -1, 71, -1, 72, 
-  -1, 73, -1, 74, -1, 75, -1, 76, 
-  -1, 77, -1, 78, -1, 79, -1, 546, 
-  -1, 80, -1, 82, -1, 84, -1, 85, 
-  -1, 87, -1, 592, -1, 593, -1, 7426, 
-  -1, 604, -1, 7446, -1, 7447, -1, 7453, 
-  -1, 7461, -1, 594, -1, 597, -1, 607, 
-  -1, 609, -1, 613, -1, 618, -1, 7547, 
-  -1, 669, -1, 621, -1, 7557, -1, 671, 
-  -1, 625, -1, 624, -1, 627, -1, 628, 
-  -1, 632, -1, 642, -1, 427, -1, 7452, 
-  -1, 656, -1, 657, -1, 65, 805, -1, 
-  7681, -1, 97, 805, -1, 66, 775, -1, 
-  7683, -1, 98, 775, -1, 66, 803, -1, 
-  7685, -1, 98, 803, -1, 66, 817, -1, 
-  7687, -1, 98, 817, -1, 199, 769, -1, 
-  7689, -1, 231, 769, -1, 68, 775, -1, 
-  7691, -1, 100, 775, -1, 68, 803, -1, 
-  7693, -1, 100, 803, -1, 68, 817, -1, 
-  7695, -1, 100, 817, -1, 68, 807, -1, 
-  7697, -1, 100, 807, -1, 68, 813, -1, 
-  7699, -1, 100, 813, -1, 274, 768, -1, 
-  7701, -1, 275, 768, -1, 274, 769, -1, 
-  7703, -1, 275, 769, -1, 69, 813, -1, 
-  7705, -1, 101, 813, -1, 69, 816, -1, 
-  7707, -1, 101, 816, -1, 552, 774, -1, 
-  7709, -1, 553, 774, -1, 70, 775, -1, 
-  7711, -1, 102, 775, -1, 71, 772, -1, 
-  7713, -1, 103, 772, -1, 72, 775, -1, 
-  7715, -1, 104, 775, -1, 72, 803, -1, 
-  7717, -1, 104, 803, -1, 72, 776, -1, 
-  7719, -1, 104, 776, -1, 72, 807, -1, 
-  7721, -1, 104, 807, -1, 72, 814, -1, 
-  7723, -1, 104, 814, -1, 73, 816, -1, 
-  7725, -1, 105, 816, -1, 207, 769, -1, 
-  7727, -1, 239, 769, -1, 75, 769, -1, 
-  7729, -1, 107, 769, -1, 75, 803, -1, 
-  7731, -1, 107, 803, -1, 75, 817, -1, 
-  7733, -1, 107, 817, -1, 76, 803, -1, 
-  7735, -1, 108, 803, -1, 7734, 772, -1, 
-  7737, -1, 7735, 772, -1, 76, 817, -1, 
-  7739, -1, 108, 817, -1, 76, 813, -1, 
-  7741, -1, 108, 813, -1, 77, 769, -1, 
-  7743, -1, 109, 769, -1, 77, 775, -1, 
-  7745, -1, 109, 775, -1, 77, 803, -1, 
-  7747, -1, 109, 803, -1, 78, 775, -1, 
-  7749, -1, 110, 775, -1, 78, 803, -1, 
-  7751, -1, 110, 803, -1, 78, 817, -1, 
-  7753, -1, 110, 817, -1, 78, 813, -1, 
-  7755, -1, 110, 813, -1, 213, 769, -1, 
-  7757, -1, 245, 769, -1, 213, 776, -1, 
-  7759, -1, 245, 776, -1, 332, 768, -1, 
-  7761, -1, 333, 768, -1, 332, 769, -1, 
-  7763, -1, 333, 769, -1, 80, 769, -1, 
-  7765, -1, 112, 769, -1, 80, 775, -1, 
-  7767, -1, 112, 775, -1, 82, 775, -1, 
-  7769, -1, 114, 775, -1, 82, 803, -1, 
-  7771, -1, 114, 803, -1, 7770, 772, -1, 
-  7773, -1, 7771, 772, -1, 82, 817, -1, 
-  7775, -1, 114, 817, -1, 83, 775, -1, 
-  7777, -1, 115, 775, -1, 83, 803, -1, 
-  7779, -1, 115, 803, -1, 346, 775, -1, 
-  7781, -1, 347, 775, -1, 352, 775, -1, 
-  7783, -1, 353, 775, -1, 7778, 775, -1, 
-  7785, -1, 7779, 775, -1, 84, 775, -1, 
-  7787, -1, 116, 775, -1, 84, 803, -1, 
-  7789, -1, 116, 803, -1, 84, 817, -1, 
-  7791, -1, 116, 817, -1, 84, 813, -1, 
-  7793, -1, 116, 813, -1, 85, 804, -1, 
-  7795, -1, 117, 804, -1, 85, 816, -1, 
-  7797, -1, 117, 816, -1, 85, 813, -1, 
-  7799, -1, 117, 813, -1, 360, 769, -1, 
-  7801, -1, 361, 769, -1, 362, 776, -1, 
-  7803, -1, 363, 776, -1, 86, 771, -1, 
-  7805, -1, 118, 771, -1, 86, 803, -1, 
-  7807, -1, 118, 803, -1, 87, 768, -1, 
-  7809, -1, 119, 768, -1, 87, 769, -1, 
-  7811, -1, 119, 769, -1, 87, 776, -1, 
-  7813, -1, 119, 776, -1, 87, 775, -1, 
-  7815, -1, 119, 775, -1, 87, 803, -1, 
-  7817, -1, 119, 803, -1, 88, 775, -1, 
-  7819, -1, 120, 775, -1, 88, 776, -1, 
-  7821, -1, 120, 776, -1, 89, 775, -1, 
-  7823, -1, 121, 775, -1, 90, 770, -1, 
-  7825, -1, 122, 770, -1, 90, 803, -1, 
-  7827, -1, 122, 803, -1, 90, 817, -1, 
-  7829, -1, 122, 817, -1, 104, 817, -1, 
-  116, 776, -1, 119, 778, -1, 121, 778, 
-  -1, 97, 702, -1, 383, 775, -1, 65, 
-  803, -1, 7841, -1, 97, 803, -1, 65, 
-  777, -1, 7843, -1, 97, 777, -1, 194, 
-  769, -1, 7845, -1, 226, 769, -1, 194, 
-  768, -1, 7847, -1, 226, 768, -1, 194, 
-  777, -1, 7849, -1, 226, 777, -1, 194, 
-  771, -1, 7851, -1, 226, 771, -1, 7840, 
-  770, -1, 7853, -1, 7841, 770, -1, 258, 
-  769, -1, 7855, -1, 259, 769, -1, 258, 
-  768, -1, 7857, -1, 259, 768, -1, 258, 
-  777, -1, 7859, -1, 259, 777, -1, 258, 
-  771, -1, 7861, -1, 259, 771, -1, 7840, 
-  774, -1, 7863, -1, 7841, 774, -1, 69, 
-  803, -1, 7865, -1, 101, 803, -1, 69, 
-  777, -1, 7867, -1, 101, 777, -1, 69, 
-  771, -1, 7869, -1, 101, 771, -1, 202, 
-  769, -1, 7871, -1, 234, 769, -1, 202, 
-  768, -1, 7873, -1, 234, 768, -1, 202, 
-  777, -1, 7875, -1, 234, 777, -1, 202, 
-  771, -1, 7877, -1, 234, 771, -1, 7864, 
-  770, -1, 7879, -1, 7865, 770, -1, 73, 
-  777, -1, 7881, -1, 105, 777, -1, 73, 
-  803, -1, 7883, -1, 105, 803, -1, 79, 
-  803, -1, 7885, -1, 111, 803, -1, 79, 
-  777, -1, 7887, -1, 111, 777, -1, 212, 
-  769, -1, 7889, -1, 244, 769, -1, 212, 
-  768, -1, 7891, -1, 244, 768, -1, 212, 
-  777, -1, 7893, -1, 244, 777, -1, 212, 
-  771, -1, 7895, -1, 244, 771, -1, 7884, 
-  770, -1, 7897, -1, 7885, 770, -1, 416, 
-  769, -1, 7899, -1, 417, 769, -1, 416, 
-  768, -1, 7901, -1, 417, 768, -1, 416, 
-  777, -1, 7903, -1, 417, 777, -1, 416, 
-  771, -1, 7905, -1, 417, 771, -1, 416, 
-  803, -1, 7907, -1, 417, 803, -1, 85, 
-  803, -1, 7909, -1, 117, 803, -1, 85, 
-  777, -1, 7911, -1, 117, 777, -1, 431, 
-  769, -1, 7913, -1, 432, 769, -1, 431, 
-  768, -1, 7915, -1, 432, 768, -1, 431, 
-  777, -1, 7917, -1, 432, 777, -1, 431, 
-  771, -1, 7919, -1, 432, 771, -1, 431, 
-  803, -1, 7921, -1, 432, 803, -1, 89, 
-  768, -1, 7923, -1, 121, 768, -1, 89, 
-  803, -1, 7925, -1, 121, 803, -1, 89, 
-  777, -1, 7927, -1, 121, 777, -1, 89, 
-  771, -1, 7929, -1, 121, 771, -1, 945, 
-  787, -1, 945, 788, -1, 7936, 768, -1, 
-  7937, 768, -1, 7936, 769, -1, 7937, 769, 
-  -1, 7936, 834, -1, 7937, 834, -1, 913, 
-  787, -1, 7936, -1, 913, 788, -1, 7937, 
-  -1, 7944, 768, -1, 7938, -1, 7945, 768, 
-  -1, 7939, -1, 7944, 769, -1, 7940, -1, 
-  7945, 769, -1, 7941, -1, 7944, 834, -1, 
-  7942, -1, 7945, 834, -1, 7943, -1, 949, 
-  787, -1, 949, 788, -1, 7952, 768, -1, 
-  7953, 768, -1, 7952, 769, -1, 7953, 769, 
-  -1, 917, 787, -1, 7952, -1, 917, 788, 
-  -1, 7953, -1, 7960, 768, -1, 7954, -1, 
-  7961, 768, -1, 7955, -1, 7960, 769, -1, 
-  7956, -1, 7961, 769, -1, 7957, -1, 951, 
-  787, -1, 951, 788, -1, 7968, 768, -1, 
-  7969, 768, -1, 7968, 769, -1, 7969, 769, 
-  -1, 7968, 834, -1, 7969, 834, -1, 919, 
-  787, -1, 7968, -1, 919, 788, -1, 7969, 
-  -1, 7976, 768, -1, 7970, -1, 7977, 768, 
-  -1, 7971, -1, 7976, 769, -1, 7972, -1, 
-  7977, 769, -1, 7973, -1, 7976, 834, -1, 
-  7974, -1, 7977, 834, -1, 7975, -1, 953, 
-  787, -1, 953, 788, -1, 7984, 768, -1, 
-  7985, 768, -1, 7984, 769, -1, 7985, 769, 
-  -1, 7984, 834, -1, 7985, 834, -1, 921, 
-  787, -1, 7984, -1, 921, 788, -1, 7985, 
-  -1, 7992, 768, -1, 7986, -1, 7993, 768, 
-  -1, 7987, -1, 7992, 769, -1, 7988, -1, 
-  7993, 769, -1, 7989, -1, 7992, 834, -1, 
-  7990, -1, 7993, 834, -1, 7991, -1, 959, 
-  787, -1, 959, 788, -1, 8000, 768, -1, 
-  8001, 768, -1, 8000, 769, -1, 8001, 769, 
-  -1, 927, 787, -1, 8000, -1, 927, 788, 
-  -1, 8001, -1, 8008, 768, -1, 8002, -1, 
-  8009, 768, -1, 8003, -1, 8008, 769, -1, 
-  8004, -1, 8009, 769, -1, 8005, -1, 965, 
-  787, -1, 965, 788, -1, 8016, 768, -1, 
-  965, 787, 768, -1, 8017, 768, -1, 8016, 
-  769, -1, 965, 787, 769, -1, 8017, 769, 
-  -1, 8016, 834, -1, 965, 787, 834, -1, 
-  8017, 834, -1, 933, 788, -1, 8017, -1, 
-  8025, 768, -1, 8019, -1, 8025, 769, -1, 
-  8021, -1, 8025, 834, -1, 8023, -1, 969, 
-  787, -1, 969, 788, -1, 8032, 768, -1, 
-  8033, 768, -1, 8032, 769, -1, 8033, 769, 
-  -1, 8032, 834, -1, 8033, 834, -1, 937, 
-  787, -1, 8032, -1, 937, 788, -1, 8033, 
-  -1, 8040, 768, -1, 8034, -1, 8041, 768, 
-  -1, 8035, -1, 8040, 769, -1, 8036, -1, 
-  8041, 769, -1, 8037, -1, 8040, 834, -1, 
-  8038, -1, 8041, 834, -1, 8039, -1, 945, 
-  768, -1, 949, 768, -1, 951, 768, -1, 
-  953, 768, -1, 959, 768, -1, 965, 768, 
-  -1, 969, 768, -1, 7936, 837, -1, 7936, 
-  953, -1, 7937, 837, -1, 7937, 953, -1, 
-  7938, 837, -1, 7938, 953, -1, 7939, 837, 
-  -1, 7939, 953, -1, 7940, 837, -1, 7940, 
-  953, -1, 7941, 837, -1, 7941, 953, -1, 
-  7942, 837, -1, 7942, 953, -1, 7943, 837, 
-  -1, 7943, 953, -1, 7944, 837, -1, 8064, 
-  -1, 7945, 837, -1, 8065, -1, 7946, 837, 
-  -1, 8066, -1, 7947, 837, -1, 8067, -1, 
-  7948, 837, -1, 8068, -1, 7949, 837, -1, 
-  8069, -1, 7950, 837, -1, 8070, -1, 7951, 
-  837, -1, 8071, -1, 7968, 837, -1, 7968, 
-  953, -1, 7969, 837, -1, 7969, 953, -1, 
-  7970, 837, -1, 7970, 953, -1, 7971, 837, 
-  -1, 7971, 953, -1, 7972, 837, -1, 7972, 
-  953, -1, 7973, 837, -1, 7973, 953, -1, 
-  7974, 837, -1, 7974, 953, -1, 7975, 837, 
-  -1, 7975, 953, -1, 7976, 837, -1, 8080, 
-  -1, 7977, 837, -1, 8081, -1, 7978, 837, 
-  -1, 8082, -1, 7979, 837, -1, 8083, -1, 
-  7980, 837, -1, 8084, -1, 7981, 837, -1, 
-  8085, -1, 7982, 837, -1, 8086, -1, 7983, 
-  837, -1, 8087, -1, 8032, 837, -1, 8032, 
-  953, -1, 8033, 837, -1, 8033, 953, -1, 
-  8034, 837, -1, 8034, 953, -1, 8035, 837, 
-  -1, 8035, 953, -1, 8036, 837, -1, 8036, 
-  953, -1, 8037, 837, -1, 8037, 953, -1, 
-  8038, 837, -1, 8038, 953, -1, 8039, 837, 
-  -1, 8039, 953, -1, 8040, 837, -1, 8096, 
-  -1, 8041, 837, -1, 8097, -1, 8042, 837, 
-  -1, 8098, -1, 8043, 837, -1, 8099, -1, 
-  8044, 837, -1, 8100, -1, 8045, 837, -1, 
-  8101, -1, 8046, 837, -1, 8102, -1, 8047, 
-  837, -1, 8103, -1, 945, 774, -1, 945, 
-  772, -1, 8048, 837, -1, 8048, 953, -1, 
-  945, 837, -1, 945, 953, -1, 940, 837, 
-  -1, 940, 953, -1, 945, 834, -1, 8118, 
-  837, -1, 945, 834, 953, -1, 913, 774, 
-  -1, 8112, -1, 913, 772, -1, 8113, -1, 
-  913, 768, -1, 8048, -1, 902, -1, 8049, 
-  -1, 913, 837, -1, 8115, -1, 32, 787, 
-  -1, 32, 834, -1, 168, 834, -1, 8052, 
-  837, -1, 8052, 953, -1, 951, 837, -1, 
-  951, 953, -1, 942, 837, -1, 942, 953, 
-  -1, 951, 834, -1, 8134, 837, -1, 951, 
-  834, 953, -1, 917, 768, -1, 8050, -1, 
-  904, -1, 8051, -1, 919, 768, -1, 8052, 
-  -1, 905, -1, 8053, -1, 919, 837, -1, 
-  8131, -1, 8127, 768, -1, 8127, 769, -1, 
-  8127, 834, -1, 953, 774, -1, 953, 772, 
-  -1, 970, 768, -1, 953, 776, 768, -1, 
-  912, -1, 953, 834, -1, 970, 834, -1, 
-  953, 776, 834, -1, 921, 774, -1, 8144, 
-  -1, 921, 772, -1, 8145, -1, 921, 768, 
-  -1, 8054, -1, 906, -1, 8055, -1, 8190, 
-  768, -1, 8190, 769, -1, 8190, 834, -1, 
-  965, 774, -1, 965, 772, -1, 971, 768, 
-  -1, 965, 776, 768, -1, 944, -1, 961, 
-  787, -1, 961, 788, -1, 965, 834, -1, 
-  971, 834, -1, 965, 776, 834, -1, 933, 
-  774, -1, 8160, -1, 933, 772, -1, 8161, 
-  -1, 933, 768, -1, 8058, -1, 910, -1, 
-  8059, -1, 929, 788, -1, 8165, -1, 168, 
-  768, -1, 901, -1, 96, -1, 8060, 837, 
-  -1, 8060, 953, -1, 969, 837, -1, 969, 
-  953, -1, 974, 837, -1, 974, 953, -1, 
-  969, 834, -1, 8182, 837, -1, 969, 834, 
-  953, -1, 927, 768, -1, 8056, -1, 908, 
-  -1, 8057, -1, 937, 768, -1, 8060, -1, 
-  911, -1, 8061, -1, 937, 837, -1, 8179, 
-  -1, 180, -1, 32, 788, -1, 8194, -1, 
-  8195, -1, 8208, -1, 32, 819, -1, 46, 
-  -1, 46, 46, -1, 46, 46, 46, -1, 
-  8242, 8242, -1, 8242, 8242, 8242, -1, 8245, 
-  8245, -1, 8245, 8245, 8245, -1, 33, 33, 
-  -1, 32, 773, -1, 63, 63, -1, 63, 
-  33, -1, 33, 63, -1, 8242, 8242, 8242, 
-  8242, -1, 48, -1, 52, -1, 53, -1, 
-  54, -1, 55, -1, 56, -1, 57, -1, 
-  43, -1, 8722, -1, 61, -1, 40, -1, 
-  41, -1, 82, 115, -1, 97, 47, 99, 
-  -1, 97, 47, 115, -1, 67, -1, 176, 
-  67, -1, 99, 47, 111, -1, 99, 47, 
-  117, -1, 400, -1, 176, 70, -1, 78, 
-  111, -1, 81, -1, 83, 77, -1, 84, 
-  69, 76, -1, 84, 77, -1, 90, -1, 
-  937, -1, 197, -1, 70, -1, 8526, -1, 
-  1488, -1, 1489, -1, 1490, -1, 1491, -1, 
-  70, 65, 88, -1, 915, -1, 928, -1, 
-  8721, -1, 49, 8260, 51, -1, 50, 8260, 
-  51, -1, 49, 8260, 53, -1, 50, 8260, 
-  53, -1, 51, 8260, 53, -1, 52, 8260, 
-  53, -1, 49, 8260, 54, -1, 53, 8260, 
-  54, -1, 49, 8260, 56, -1, 51, 8260, 
-  56, -1, 53, 8260, 56, -1, 55, 8260, 
-  56, -1, 49, 8260, -1, 8560, -1, 73, 
-  73, -1, 8561, -1, 73, 73, 73, -1, 
-  8562, -1, 73, 86, -1, 8563, -1, 86, 
-  -1, 8564, -1, 86, 73, -1, 8565, -1, 
-  86, 73, 73, -1, 8566, -1, 86, 73, 
-  73, 73, -1, 8567, -1, 73, 88, -1, 
-  8568, -1, 88, -1, 8569, -1, 88, 73, 
-  -1, 8570, -1, 88, 73, 73, -1, 8571, 
-  -1, 8572, -1, 8573, -1, 8574, -1, 8575, 
-  -1, 105, 105, -1, 105, 105, 105, -1, 
-  105, 118, -1, 118, 105, -1, 118, 105, 
-  105, -1, 118, 105, 105, 105, -1, 105, 
-  120, -1, 120, 105, -1, 120, 105, 105, 
-  -1, 8580, -1, 8592, 824, -1, 8594, 824, 
-  -1, 8596, 824, -1, 8656, 824, -1, 8660, 
-  824, -1, 8658, 824, -1, 8707, 824, -1, 
-  8712, 824, -1, 8715, 824, -1, 8739, 824, 
-  -1, 8741, 824, -1, 8747, 8747, -1, 8747, 
-  8747, 8747, -1, 8750, 8750, -1, 8750, 8750, 
-  8750, -1, 8764, 824, -1, 8771, 824, -1, 
-  8773, 824, -1, 8776, 824, -1, 61, 824, 
-  -1, 8801, 824, -1, 8781, 824, -1, 60, 
-  824, -1, 62, 824, -1, 8804, 824, -1, 
-  8805, 824, -1, 8818, 824, -1, 8819, 824, 
-  -1, 8822, 824, -1, 8823, 824, -1, 8826, 
-  824, -1, 8827, 824, -1, 8834, 824, -1, 
-  8835, 824, -1, 8838, 824, -1, 8839, 824, 
-  -1, 8866, 824, -1, 8872, 824, -1, 8873, 
-  824, -1, 8875, 824, -1, 8828, 824, -1, 
-  8829, 824, -1, 8849, 824, -1, 8850, 824, 
-  -1, 8882, 824, -1, 8883, 824, -1, 8884, 
-  824, -1, 8885, 824, -1, 12296, -1, 12297, 
-  -1, 49, 48, -1, 49, 49, -1, 49, 
-  50, -1, 49, 51, -1, 49, 52, -1, 
-  49, 53, -1, 49, 54, -1, 49, 55, 
-  -1, 49, 56, -1, 49, 57, -1, 50, 
-  48, -1, 40, 49, 41, -1, 40, 50, 
-  41, -1, 40, 51, 41, -1, 40, 52, 
-  41, -1, 40, 53, 41, -1, 40, 54, 
-  41, -1, 40, 55, 41, -1, 40, 56, 
-  41, -1, 40, 57, 41, -1, 40, 49, 
-  48, 41, -1, 40, 49, 49, 41, -1, 
-  40, 49, 50, 41, -1, 40, 49, 51, 
-  41, -1, 40, 49, 52, 41, -1, 40, 
-  49, 53, 41, -1, 40, 49, 54, 41, 
-  -1, 40, 49, 55, 41, -1, 40, 49, 
-  56, 41, -1, 40, 49, 57, 41, -1, 
-  40, 50, 48, 41, -1, 49, 46, -1, 
-  50, 46, -1, 51, 46, -1, 52, 46, 
-  -1, 53, 46, -1, 54, 46, -1, 55, 
-  46, -1, 56, 46, -1, 57, 46, -1, 
-  49, 48, 46, -1, 49, 49, 46, -1, 
-  49, 50, 46, -1, 49, 51, 46, -1, 
-  49, 52, 46, -1, 49, 53, 46, -1, 
-  49, 54, 46, -1, 49, 55, 46, -1, 
-  49, 56, 46, -1, 49, 57, 46, -1, 
-  50, 48, 46, -1, 40, 97, 41, -1, 
-  40, 98, 41, -1, 40, 99, 41, -1, 
-  40, 100, 41, -1, 40, 101, 41, -1, 
-  40, 102, 41, -1, 40, 103, 41, -1, 
-  40, 104, 41, -1, 40, 105, 41, -1, 
-  40, 106, 41, -1, 40, 107, 41, -1, 
-  40, 108, 41, -1, 40, 109, 41, -1, 
-  40, 110, 41, -1, 40, 111, 41, -1, 
-  40, 112, 41, -1, 40, 113, 41, -1, 
-  40, 114, 41, -1, 40, 115, 41, -1, 
-  40, 116, 41, -1, 40, 117, 41, -1, 
-  40, 118, 41, -1, 40, 119, 41, -1, 
-  40, 120, 41, -1, 40, 121, 41, -1, 
-  40, 122, 41, -1, 9424, -1, 9425, -1, 
-  9426, -1, 9427, -1, 9428, -1, 9429, -1, 
-  9430, -1, 9431, -1, 9432, -1, 9433, -1, 
-  9434, -1, 9435, -1, 9436, -1, 9437, -1, 
-  9438, -1, 9439, -1, 9440, -1, 9441, -1, 
-  83, -1, 9442, -1, 9443, -1, 9444, -1, 
-  9445, -1, 9446, -1, 9447, -1, 89, -1, 
-  9448, -1, 9449, -1, 8747, 8747, 8747, 8747, 
-  -1, 58, 58, 61, -1, 61, 61, -1, 
-  61, 61, 61, -1, 10973, 824, -1, 11312, 
-  -1, 11313, -1, 11314, -1, 11315, -1, 11316, 
-  -1, 11317, -1, 11318, -1, 11319, -1, 11320, 
-  -1, 11321, -1, 11322, -1, 11323, -1, 11324, 
-  -1, 11325, -1, 11326, -1, 11327, -1, 11328, 
-  -1, 11329, -1, 11330, -1, 11331, -1, 11332, 
-  -1, 11333, -1, 11334, -1, 11335, -1, 11336, 
-  -1, 11337, -1, 11338, -1, 11339, -1, 11340, 
-  -1, 11341, -1, 11342, -1, 11343, -1, 11344, 
-  -1, 11345, -1, 11346, -1, 11347, -1, 11348, 
-  -1, 11349, -1, 11350, -1, 11351, -1, 11352, 
-  -1, 11353, -1, 11354, -1, 11355, -1, 11356, 
-  -1, 11357, -1, 11358, -1, 11361, -1, 619, 
-  -1, 7549, -1, 637, -1, 11368, -1, 11370, 
-  -1, 11372, -1, 11382, -1, 11393, -1, 11395, 
-  -1, 11397, -1, 11399, -1, 11401, -1, 11403, 
-  -1, 11405, -1, 11407, -1, 11409, -1, 11411, 
-  -1, 11413, -1, 11415, -1, 11417, -1, 11419, 
-  -1, 11421, -1, 11423, -1, 11425, -1, 11427, 
-  -1, 11429, -1, 11431, -1, 11433, -1, 11435, 
-  -1, 11437, -1, 11439, -1, 11441, -1, 11443, 
-  -1, 11445, -1, 11447, -1, 11449, -1, 11451, 
-  -1, 11453, -1, 11455, -1, 11457, -1, 11459, 
-  -1, 11461, -1, 11463, -1, 11465, -1, 11467, 
-  -1, 11469, -1, 11471, -1, 11473, -1, 11475, 
-  -1, 11477, -1, 11479, -1, 11481, -1, 11483, 
-  -1, 11485, -1, 11487, -1, 11489, -1, 11491, 
-  -1, 11617, -1, 27597, -1, 40863, -1, 19968, 
-  -1, 20008, -1, 20022, -1, 20031, -1, 20057, 
-  -1, 20101, -1, 20108, -1, 20128, -1, 20154, 
-  -1, 20799, -1, 20837, -1, 20843, -1, 20866, 
-  -1, 20886, -1, 20907, -1, 20960, -1, 20981, 
-  -1, 20992, -1, 21147, -1, 21241, -1, 21269, 
-  -1, 21274, -1, 21304, -1, 21313, -1, 21340, 
-  -1, 21353, -1, 21378, -1, 21430, -1, 21448, 
-  -1, 21475, -1, 22231, -1, 22303, -1, 22763, 
-  -1, 22786, -1, 22794, -1, 22805, -1, 22823, 
-  -1, 22899, -1, 23376, -1, 23424, -1, 23544, 
-  -1, 23567, -1, 23586, -1, 23608, -1, 23662, 
-  -1, 23665, -1, 24027, -1, 24037, -1, 24049, 
-  -1, 24062, -1, 24178, -1, 24186, -1, 24191, 
-  -1, 24308, -1, 24318, -1, 24331, -1, 24339, 
-  -1, 24400, -1, 24417, -1, 24435, -1, 24515, 
-  -1, 25096, -1, 25142, -1, 25163, -1, 25903, 
-  -1, 25908, -1, 25991, -1, 26007, -1, 26020, 
-  -1, 26041, -1, 26080, -1, 26085, -1, 26352, 
-  -1, 26376, -1, 26408, -1, 27424, -1, 27490, 
-  -1, 27513, -1, 27571, -1, 27595, -1, 27604, 
-  -1, 27611, -1, 27663, -1, 27668, -1, 27700, 
-  -1, 28779, -1, 29226, -1, 29238, -1, 29243, 
-  -1, 29247, -1, 29255, -1, 29273, -1, 29275, 
-  -1, 29356, -1, 29572, -1, 29577, -1, 29916, 
-  -1, 29926, -1, 29976, -1, 29983, -1, 29992, 
-  -1, 30000, -1, 30091, -1, 30098, -1, 30326, 
-  -1, 30333, -1, 30382, -1, 30399, -1, 30446, 
-  -1, 30683, -1, 30690, -1, 30707, -1, 31034, 
-  -1, 31160, -1, 31166, -1, 31348, -1, 31435, 
-  -1, 31481, -1, 31859, -1, 31992, -1, 32566, 
-  -1, 32593, -1, 32650, -1, 32701, -1, 32769, 
-  -1, 32780, -1, 32786, -1, 32819, -1, 32895, 
-  -1, 32905, -1, 33251, -1, 33258, -1, 33267, 
-  -1, 33276, -1, 33292, -1, 33307, -1, 33311, 
-  -1, 33390, -1, 33394, -1, 33400, -1, 34381, 
-  -1, 34411, -1, 34880, -1, 34892, -1, 34915, 
-  -1, 35198, -1, 35211, -1, 35282, -1, 35328, 
-  -1, 35895, -1, 35910, -1, 35925, -1, 35960, 
-  -1, 35997, -1, 36196, -1, 36208, -1, 36275, 
-  -1, 36523, -1, 36554, -1, 36763, -1, 36784, 
-  -1, 36789, -1, 37009, -1, 37193, -1, 37318, 
-  -1, 37324, -1, 37329, -1, 38263, -1, 38272, 
-  -1, 38428, -1, 38582, -1, 38585, -1, 38632, 
-  -1, 38737, -1, 38750, -1, 38754, -1, 38761, 
-  -1, 38859, -1, 38893, -1, 38899, -1, 38913, 
-  -1, 39080, -1, 39131, -1, 39135, -1, 39318, 
-  -1, 39321, -1, 39340, -1, 39592, -1, 39640, 
-  -1, 39647, -1, 39717, -1, 39727, -1, 39730, 
-  -1, 39740, -1, 39770, -1, 40165, -1, 40565, 
-  -1, 40575, -1, 40613, -1, 40635, -1, 40643, 
-  -1, 40653, -1, 40657, -1, 40697, -1, 40701, 
-  -1, 40718, -1, 40723, -1, 40736, -1, 40763, 
-  -1, 40778, -1, 40786, -1, 40845, -1, 40860, 
-  -1, 40864, -1, 12306, -1, 21316, -1, 21317, 
-  -1, 12363, 12441, -1, 12365, 12441, -1, 12367, 
-  12441, -1, 12369, 12441, -1, 12371, 12441, -1, 
-  12373, 12441, -1, 12375, 12441, -1, 12377, 12441, 
-  -1, 12379, 12441, -1, 12381, 12441, -1, 12383, 
-  12441, -1, 12385, 12441, -1, 12388, 12441, -1, 
-  12390, 12441, -1, 12392, 12441, -1, 12399, 12441, 
-  -1, 12399, 12442, -1, 12402, 12441, -1, 12402, 
-  12442, -1, 12405, 12441, -1, 12405, 12442, -1, 
-  12408, 12441, -1, 12408, 12442, -1, 12411, 12441, 
-  -1, 12411, 12442, -1, 12358, 12441, -1, 32, 
-  12441, -1, 32, 12442, -1, 12445, 12441, -1, 
-  12424, 12426, -1, 12459, 12441, -1, 12461, 12441, 
-  -1, 12463, 12441, -1, 12465, 12441, -1, 12467, 
-  12441, -1, 12469, 12441, -1, 12471, 12441, -1, 
-  12473, 12441, -1, 12475, 12441, -1, 12477, 12441, 
-  -1, 12479, 12441, -1, 12481, 12441, -1, 12484, 
-  12441, -1, 12486, 12441, -1, 12488, 12441, -1, 
-  12495, 12441, -1, 12495, 12442, -1, 12498, 12441, 
-  -1, 12498, 12442, -1, 12501, 12441, -1, 12501, 
-  12442, -1, 12504, 12441, -1, 12504, 12442, -1, 
-  12507, 12441, -1, 12507, 12442, -1, 12454, 12441, 
-  -1, 12527, 12441, -1, 12528, 12441, -1, 12529, 
-  12441, -1, 12530, 12441, -1, 12541, 12441, -1, 
-  12467, 12488, -1, 4352, -1, 4353, -1, 4522, 
-  -1, 4354, -1, 4524, -1, 4525, -1, 4355, 
-  -1, 4356, -1, 4357, -1, 4528, -1, 4529, 
-  -1, 4530, -1, 4531, -1, 4532, -1, 4533, 
-  -1, 4378, -1, 4358, -1, 4359, -1, 4360, 
-  -1, 4385, -1, 4361, -1, 4362, -1, 4363, 
-  -1, 4364, -1, 4365, -1, 4366, -1, 4367, 
-  -1, 4368, -1, 4369, -1, 4370, -1, 4449, 
-  -1, 4450, -1, 4451, -1, 4452, -1, 4453, 
-  -1, 4454, -1, 4455, -1, 4456, -1, 4457, 
-  -1, 4458, -1, 4459, -1, 4460, -1, 4461, 
-  -1, 4462, -1, 4463, -1, 4464, -1, 4465, 
-  -1, 4466, -1, 4467, -1, 4468, -1, 4469, 
-  -1, 4448, -1, 4372, -1, 4373, -1, 4551, 
-  -1, 4552, -1, 4556, -1, 4558, -1, 4563, 
-  -1, 4567, -1, 4569, -1, 4380, -1, 4573, 
-  -1, 4575, -1, 4381, -1, 4382, -1, 4384, 
-  -1, 4386, -1, 4387, -1, 4391, -1, 4393, 
-  -1, 4395, -1, 4396, -1, 4397, -1, 4398, 
-  -1, 4399, -1, 4402, -1, 4406, -1, 4416, 
-  -1, 4423, -1, 4428, -1, 4593, -1, 4594, 
-  -1, 4439, -1, 4440, -1, 4441, -1, 4484, 
-  -1, 4485, -1, 4488, -1, 4497, -1, 4498, 
-  -1, 4500, -1, 4510, -1, 4513, -1, 19977, 
-  -1, 22235, -1, 19978, -1, 20013, -1, 19979, 
-  -1, 30002, -1, 19993, -1, 19969, -1, 22825, 
-  -1, 22320, -1, 40, 4352, 41, -1, 40, 
-  4354, 41, -1, 40, 4355, 41, -1, 40, 
-  4357, 41, -1, 40, 4358, 41, -1, 40, 
-  4359, 41, -1, 40, 4361, 41, -1, 40, 
-  4363, 41, -1, 40, 4364, 41, -1, 40, 
-  4366, 41, -1, 40, 4367, 41, -1, 40, 
-  4368, 41, -1, 40, 4369, 41, -1, 40, 
-  4370, 41, -1, 40, 4352, 4449, 41, -1, 
-  40, 4354, 4449, 41, -1, 40, 4355, 4449, 
-  41, -1, 40, 4357, 4449, 41, -1, 40, 
-  4358, 4449, 41, -1, 40, 4359, 4449, 41, 
-  -1, 40, 4361, 4449, 41, -1, 40, 4363, 
-  4449, 41, -1, 40, 4364, 4449, 41, -1, 
-  40, 4366, 4449, 41, -1, 40, 4367, 4449, 
-  41, -1, 40, 4368, 4449, 41, -1, 40, 
-  4369, 4449, 41, -1, 40, 4370, 4449, 41, 
-  -1, 40, 4364, 4462, 41, -1, 40, 4363, 
-  4457, 4364, 4453, 4523, 41, -1, 40, 4363, 
-  4457, 4370, 4462, 41, -1, 40, 19968, 41, 
-  -1, 40, 20108, 41, -1, 40, 19977, 41, 
-  -1, 40, 22235, 41, -1, 40, 20116, 41, 
-  -1, 40, 20845, 41, -1, 40, 19971, 41, 
-  -1, 40, 20843, 41, -1, 40, 20061, 41, 
-  -1, 40, 21313, 41, -1, 40, 26376, 41, 
-  -1, 40, 28779, 41, -1, 40, 27700, 41, 
-  -1, 40, 26408, 41, -1, 40, 37329, 41, 
-  -1, 40, 22303, 41, -1, 40, 26085, 41, 
-  -1, 40, 26666, 41, -1, 40, 26377, 41, 
-  -1, 40, 31038, 41, -1, 40, 21517, 41, 
-  -1, 40, 29305, 41, -1, 40, 36001, 41, 
-  -1, 40, 31069, 41, -1, 40, 21172, 41, 
-  -1, 40, 20195, 41, -1, 40, 21628, 41, 
-  -1, 40, 23398, 41, -1, 40, 30435, 41, 
-  -1, 40, 20225, 41, -1, 40, 36039, 41, 
-  -1, 40, 21332, 41, -1, 40, 31085, 41, 
-  -1, 40, 20241, 41, -1, 40, 33258, 41, 
-  -1, 40, 33267, 41, -1, 80, 84, 69, 
-  -1, 50, 49, -1, 50, 50, -1, 50, 
-  51, -1, 50, 52, -1, 50, 53, -1, 
-  50, 54, -1, 50, 55, -1, 50, 56, 
-  -1, 50, 57, -1, 51, 48, -1, 51, 
-  49, -1, 51, 50, -1, 51, 51, -1, 
-  51, 52, -1, 51, 53, -1, 4352, 4449, 
-  -1, 4354, 4449, -1, 4355, 4449, -1, 4357, 
-  4449, -1, 4358, 4449, -1, 4359, 4449, -1, 
-  4361, 4449, -1, 4363, 4449, -1, 4364, 4449, 
-  -1, 4366, 4449, -1, 4367, 4449, -1, 4368, 
-  4449, -1, 4369, 4449, -1, 4370, 4449, -1, 
-  4366, 4449, 4535, 4352, 4457, -1, 4364, 4462, 
-  4363, 4468, -1, 4363, 4462, -1, 20116, -1, 
-  20845, -1, 19971, -1, 20061, -1, 26666, -1, 
-  26377, -1, 31038, -1, 21517, -1, 29305, -1, 
-  36001, -1, 31069, -1, 21172, -1, 31192, -1, 
-  30007, -1, 36969, -1, 20778, -1, 21360, -1, 
-  27880, -1, 38917, -1, 20241, -1, 20889, -1, 
-  27491, -1, 24038, -1, 21491, -1, 21307, -1, 
-  23447, -1, 23398, -1, 30435, -1, 20225, -1, 
-  36039, -1, 21332, -1, 22812, -1, 51, 54, 
-  -1, 51, 55, -1, 51, 56, -1, 51, 
-  57, -1, 52, 48, -1, 52, 49, -1, 
-  52, 50, -1, 52, 51, -1, 52, 52, 
-  -1, 52, 53, -1, 52, 54, -1, 52, 
-  55, -1, 52, 56, -1, 52, 57, -1, 
-  53, 48, -1, 49, 26376, -1, 50, 26376, 
-  -1, 51, 26376, -1, 52, 26376, -1, 53, 
-  26376, -1, 54, 26376, -1, 55, 26376, -1, 
-  56, 26376, -1, 57, 26376, -1, 49, 48, 
-  26376, -1, 49, 49, 26376, -1, 49, 50, 
-  26376, -1, 72, 103, -1, 101, 114, 103, 
-  -1, 101, 86, -1, 76, 84, 68, -1, 
-  12450, -1, 12452, -1, 12454, -1, 12456, -1, 
-  12458, -1, 12459, -1, 12461, -1, 12463, -1, 
-  12465, -1, 12467, -1, 12469, -1, 12471, -1, 
-  12473, -1, 12475, -1, 12477, -1, 12479, -1, 
-  12481, -1, 12484, -1, 12486, -1, 12488, -1, 
-  12490, -1, 12491, -1, 12492, -1, 12493, -1, 
-  12494, -1, 12495, -1, 12498, -1, 12501, -1, 
-  12504, -1, 12507, -1, 12510, -1, 12511, -1, 
-  12512, -1, 12513, -1, 12514, -1, 12516, -1, 
-  12518, -1, 12520, -1, 12521, -1, 12522, -1, 
-  12523, -1, 12524, -1, 12525, -1, 12527, -1, 
-  12528, -1, 12529, -1, 12530, -1, 12450, 12497, 
-  12540, 12488, -1, 12450, 12523, 12501, 12449, -1, 
-  12450, 12531, 12506, 12450, -1, 12450, 12540, 12523, 
-  -1, 12452, 12491, 12531, 12464, -1, 12452, 12531, 
-  12481, -1, 12454, 12457, 12531, -1, 12456, 12473, 
-  12463, 12540, 12489, -1, 12456, 12540, 12459, 12540, 
-  -1, 12458, 12531, 12473, -1, 12458, 12540, 12512, 
-  -1, 12459, 12452, 12522, -1, 12459, 12521, 12483, 
-  12488, -1, 12459, 12525, 12522, 12540, -1, 12460, 
-  12525, 12531, -1, 12460, 12531, 12510, -1, 12462, 
-  12460, -1, 12462, 12491, 12540, -1, 12461, 12517, 
-  12522, 12540, -1, 12462, 12523, 12480, 12540, -1, 
-  12461, 12525, -1, 12461, 12525, 12464, 12521, 12512, 
-  -1, 12461, 12525, 12513, 12540, 12488, 12523, -1, 
-  12461, 12525, 12527, 12483, 12488, -1, 12464, 12521, 
-  12512, -1, 12464, 12521, 12512, 12488, 12531, -1, 
-  12463, 12523, 12476, 12452, 12525, -1, 12463, 12525, 
-  12540, 12493, -1, 12465, 12540, 12473, -1, 12467, 
-  12523, 12490, -1, 12467, 12540, 12509, -1, 12469, 
-  12452, 12463, 12523, -1, 12469, 12531, 12481, 12540, 
-  12512, -1, 12471, 12522, 12531, 12464, -1, 12475, 
-  12531, 12481, -1, 12475, 12531, 12488, -1, 12480, 
-  12540, 12473, -1, 12487, 12471, -1, 12489, 12523, 
-  -1, 12488, 12531, -1, 12490, 12494, -1, 12494, 
-  12483, 12488, -1, 12495, 12452, 12484, -1, 12497, 
-  12540, 12475, 12531, 12488, -1, 12497, 12540, 12484, 
-  -1, 12496, 12540, 12524, 12523, -1, 12500, 12450, 
-  12473, 12488, 12523, -1, 12500, 12463, 12523, -1, 
-  12500, 12467, -1, 12499, 12523, -1, 12501, 12449, 
-  12521, 12483, 12489, -1, 12501, 12451, 12540, 12488, 
-  -1, 12502, 12483, 12471, 12455, 12523, -1, 12501, 
-  12521, 12531, -1, 12504, 12463, 12479, 12540, 12523, 
-  -1, 12506, 12477, -1, 12506, 12491, 12498, -1, 
-  12504, 12523, 12484, -1, 12506, 12531, 12473, -1, 
-  12506, 12540, 12472, -1, 12505, 12540, 12479, -1, 
-  12509, 12452, 12531, 12488, -1, 12508, 12523, 12488, 
-  -1, 12507, 12531, -1, 12509, 12531, 12489, -1, 
-  12507, 12540, 12523, -1, 12507, 12540, 12531, -1, 
-  12510, 12452, 12463, 12525, -1, 12510, 12452, 12523, 
-  -1, 12510, 12483, 12495, -1, 12510, 12523, 12463, 
-  -1, 12510, 12531, 12471, 12519, 12531, -1, 12511, 
-  12463, 12525, 12531, -1, 12511, 12522, -1, 12511, 
-  12522, 12496, 12540, 12523, -1, 12513, 12460, -1, 
-  12513, 12460, 12488, 12531, -1, 12513, 12540, 12488, 
-  12523, -1, 12516, 12540, 12489, -1, 12516, 12540, 
-  12523, -1, 12518, 12450, 12531, -1, 12522, 12483, 
-  12488, 12523, -1, 12522, 12521, -1, 12523, 12500, 
-  12540, -1, 12523, 12540, 12502, 12523, -1, 12524, 
-  12512, -1, 12524, 12531, 12488, 12466, 12531, -1, 
-  12527, 12483, 12488, -1, 48, 28857, -1, 49, 
-  28857, -1, 50, 28857, -1, 51, 28857, -1, 
-  52, 28857, -1, 53, 28857, -1, 54, 28857, 
-  -1, 55, 28857, -1, 56, 28857, -1, 57, 
-  28857, -1, 49, 48, 28857, -1, 49, 49, 
-  28857, -1, 49, 50, 28857, -1, 49, 51, 
-  28857, -1, 49, 52, 28857, -1, 49, 53, 
-  28857, -1, 49, 54, 28857, -1, 49, 55, 
-  28857, -1, 49, 56, 28857, -1, 49, 57, 
-  28857, -1, 50, 48, 28857, -1, 50, 49, 
-  28857, -1, 50, 50, 28857, -1, 50, 51, 
-  28857, -1, 50, 52, 28857, -1, 104, 80, 
-  97, -1, 100, 97, -1, 65, 85, -1, 
-  98, 97, 114, -1, 111, 86, -1, 112, 
-  99, -1, 100, 109, -1, 100, 109, 178, 
-  -1, 100, 109, 179, -1, 73, 85, -1, 
-  24179, 25104, -1, 26157, 21644, -1, 22823, 27491, 
-  -1, 26126, 27835, -1, 26666, 24335, 20250, 31038, 
-  -1, 112, 65, -1, 110, 65, -1, 956, 
-  65, -1, 109, 65, -1, 107, 65, -1, 
-  75, 66, -1, 77, 66, -1, 71, 66, 
-  -1, 99, 97, 108, -1, 107, 99, 97, 
-  108, -1, 112, 70, -1, 110, 70, -1, 
-  956, 70, -1, 956, 103, -1, 109, 103, 
-  -1, 107, 103, -1, 72, 122, -1, 107, 
-  72, 122, -1, 77, 72, 122, -1, 71, 
-  72, 122, -1, 84, 72, 122, -1, 956, 
-  8467, -1, 109, 8467, -1, 100, 8467, -1, 
-  107, 8467, -1, 102, 109, -1, 110, 109, 
-  -1, 956, 109, -1, 109, 109, -1, 99, 
-  109, -1, 107, 109, -1, 109, 109, 178, 
-  -1, 99, 109, 178, -1, 109, 178, -1, 
-  107, 109, 178, -1, 109, 109, 179, -1, 
-  99, 109, 179, -1, 109, 179, -1, 107, 
-  109, 179, -1, 109, 8725, 115, -1, 109, 
-  8725, 115, 178, -1, 80, 97, -1, 107, 
-  80, 97, -1, 77, 80, 97, -1, 71, 
-  80, 97, -1, 114, 97, 100, -1, 114, 
-  97, 100, 8725, 115, -1, 114, 97, 100, 
-  8725, 115, 178, -1, 112, 115, -1, 110, 
-  115, -1, 956, 115, -1, 109, 115, -1, 
-  112, 86, -1, 110, 86, -1, 956, 86, 
-  -1, 109, 86, -1, 107, 86, -1, 77, 
-  86, -1, 112, 87, -1, 110, 87, -1, 
-  956, 87, -1, 109, 87, -1, 107, 87, 
-  -1, 77, 87, -1, 107, 937, -1, 77, 
-  937, -1, 97, 46, 109, 46, -1, 66, 
-  113, -1, 99, 99, -1, 99, 100, -1, 
-  67, 8725, 107, 103, -1, 67, 111, 46, 
-  -1, 100, 66, -1, 71, 121, -1, 104, 
-  97, -1, 72, 80, -1, 105, 110, -1, 
-  75, 75, -1, 75, 77, -1, 107, 116, 
-  -1, 108, 109, -1, 108, 110, -1, 108, 
-  111, 103, -1, 108, 120, -1, 109, 98, 
-  -1, 109, 105, 108, -1, 109, 111, 108, 
-  -1, 80, 72, -1, 112, 46, 109, 46, 
-  -1, 80, 80, 77, -1, 80, 82, -1, 
-  115, 114, -1, 83, 118, -1, 87, 98, 
-  -1, 86, 8725, 109, -1, 65, 8725, 109, 
-  -1, 49, 26085, -1, 50, 26085, -1, 51, 
-  26085, -1, 52, 26085, -1, 53, 26085, -1, 
-  54, 26085, -1, 55, 26085, -1, 56, 26085, 
-  -1, 57, 26085, -1, 49, 48, 26085, -1, 
-  49, 49, 26085, -1, 49, 50, 26085, -1, 
-  49, 51, 26085, -1, 49, 52, 26085, -1, 
-  49, 53, 26085, -1, 49, 54, 26085, -1, 
-  49, 55, 26085, -1, 49, 56, 26085, -1, 
-  49, 57, 26085, -1, 50, 48, 26085, -1, 
-  50, 49, 26085, -1, 50, 50, 26085, -1, 
-  50, 51, 26085, -1, 50, 52, 26085, -1, 
-  50, 53, 26085, -1, 50, 54, 26085, -1, 
-  50, 55, 26085, -1, 50, 56, 26085, -1, 
-  50, 57, 26085, -1, 51, 48, 26085, -1, 
-  51, 49, 26085, -1, 103, 97, 108, -1, 
-  35912, -1, 26356, -1, 36040, -1, 28369, -1, 
-  20018, -1, 21477, -1, 22865, -1, 21895, -1, 
-  22856, -1, 25078, -1, 30313, -1, 32645, -1, 
-  34367, -1, 34746, -1, 35064, -1, 37007, -1, 
-  27138, -1, 27931, -1, 28889, -1, 29662, -1, 
-  33853, -1, 37226, -1, 39409, -1, 20098, -1, 
-  21365, -1, 27396, -1, 29211, -1, 34349, -1, 
-  40478, -1, 23888, -1, 28651, -1, 34253, -1, 
-  35172, -1, 25289, -1, 33240, -1, 34847, -1, 
-  24266, -1, 26391, -1, 28010, -1, 29436, -1, 
-  37070, -1, 20358, -1, 20919, -1, 21214, -1, 
-  25796, -1, 27347, -1, 29200, -1, 30439, -1, 
-  34310, -1, 34396, -1, 36335, -1, 38706, -1, 
-  39791, -1, 40442, -1, 30860, -1, 31103, -1, 
-  32160, -1, 33737, -1, 37636, -1, 35542, -1, 
-  22751, -1, 24324, -1, 31840, -1, 32894, -1, 
-  29282, -1, 30922, -1, 36034, -1, 38647, -1, 
-  22744, -1, 23650, -1, 27155, -1, 28122, -1, 
-  28431, -1, 32047, -1, 32311, -1, 38475, -1, 
-  21202, -1, 32907, -1, 20956, -1, 20940, -1, 
-  31260, -1, 32190, -1, 33777, -1, 38517, -1, 
-  35712, -1, 25295, -1, 35582, -1, 20025, -1, 
-  23527, -1, 24594, -1, 29575, -1, 30064, -1, 
-  21271, -1, 30971, -1, 20415, -1, 24489, -1, 
-  19981, -1, 27852, -1, 25976, -1, 32034, -1, 
-  21443, -1, 22622, -1, 30465, -1, 33865, -1, 
-  35498, -1, 27578, -1, 27784, -1, 25342, -1, 
-  33509, -1, 25504, -1, 30053, -1, 20142, -1, 
-  20841, -1, 20937, -1, 26753, -1, 31975, -1, 
-  33391, -1, 35538, -1, 37327, -1, 21237, -1, 
-  21570, -1, 24300, -1, 26053, -1, 28670, -1, 
-  31018, -1, 38317, -1, 39530, -1, 40599, -1, 
-  40654, -1, 26310, -1, 27511, -1, 36706, -1, 
-  24180, -1, 24976, -1, 25088, -1, 25754, -1, 
-  28451, -1, 29001, -1, 29833, -1, 31178, -1, 
-  32244, -1, 32879, -1, 36646, -1, 34030, -1, 
-  36899, -1, 37706, -1, 21015, -1, 21155, -1, 
-  21693, -1, 28872, -1, 35010, -1, 24265, -1, 
-  24565, -1, 25467, -1, 27566, -1, 31806, -1, 
-  29557, -1, 20196, -1, 22265, -1, 23994, -1, 
-  24604, -1, 29618, -1, 29801, -1, 32666, -1, 
-  32838, -1, 37428, -1, 38646, -1, 38728, -1, 
-  38936, -1, 20363, -1, 31150, -1, 37300, -1, 
-  38584, -1, 24801, -1, 20102, -1, 20698, -1, 
-  23534, -1, 23615, -1, 26009, -1, 29134, -1, 
-  30274, -1, 34044, -1, 36988, -1, 26248, -1, 
-  38446, -1, 21129, -1, 26491, -1, 26611, -1, 
-  27969, -1, 28316, -1, 29705, -1, 30041, -1, 
-  30827, -1, 32016, -1, 39006, -1, 25134, -1, 
-  38520, -1, 20523, -1, 23833, -1, 28138, -1, 
-  36650, -1, 24459, -1, 24900, -1, 26647, -1, 
-  38534, -1, 21033, -1, 21519, -1, 23653, -1, 
-  26131, -1, 26446, -1, 26792, -1, 27877, -1, 
-  29702, -1, 30178, -1, 32633, -1, 35023, -1, 
-  35041, -1, 38626, -1, 21311, -1, 28346, -1, 
-  21533, -1, 29136, -1, 29848, -1, 34298, -1, 
-  38563, -1, 40023, -1, 40607, -1, 26519, -1, 
-  28107, -1, 33256, -1, 31520, -1, 31890, -1, 
-  29376, -1, 28825, -1, 35672, -1, 20160, -1, 
-  33590, -1, 21050, -1, 20999, -1, 24230, -1, 
-  25299, -1, 31958, -1, 23429, -1, 27934, -1, 
-  26292, -1, 36667, -1, 38477, -1, 24275, -1, 
-  20800, -1, 21952, -1, 22618, -1, 26228, -1, 
-  20958, -1, 29482, -1, 30410, -1, 31036, -1, 
-  31070, -1, 31077, -1, 31119, -1, 38742, -1, 
-  31934, -1, 34322, -1, 35576, -1, 36920, -1, 
-  37117, -1, 39151, -1, 39164, -1, 39208, -1, 
-  40372, -1, 20398, -1, 20711, -1, 20813, -1, 
-  21193, -1, 21220, -1, 21329, -1, 21917, -1, 
-  22022, -1, 22120, -1, 22592, -1, 22696, -1, 
-  23652, -1, 24724, -1, 24936, -1, 24974, -1, 
-  25074, -1, 25935, -1, 26082, -1, 26257, -1, 
-  26757, -1, 28023, -1, 28186, -1, 28450, -1, 
-  29038, -1, 29227, -1, 29730, -1, 30865, -1, 
-  31049, -1, 31048, -1, 31056, -1, 31062, -1, 
-  31117, -1, 31118, -1, 31296, -1, 31361, -1, 
-  31680, -1, 32265, -1, 32321, -1, 32626, -1, 
-  32773, -1, 33261, -1, 33401, -1, 33879, -1, 
-  35088, -1, 35222, -1, 35585, -1, 35641, -1, 
-  36051, -1, 36104, -1, 36790, -1, 38627, -1, 
-  38911, -1, 38971, -1, 20006, -1, 20917, -1, 
-  20840, -1, 20352, -1, 20805, -1, 20864, -1, 
-  21191, -1, 21242, -1, 21845, -1, 21913, -1, 
-  21986, -1, 22707, -1, 22852, -1, 22868, -1, 
-  23138, -1, 23336, -1, 24274, -1, 24281, -1, 
-  24425, -1, 24493, -1, 24792, -1, 24910, -1, 
-  24840, -1, 24928, -1, 25140, -1, 25540, -1, 
-  25628, -1, 25682, -1, 25942, -1, 26395, -1, 
-  26454, -1, 28379, -1, 28363, -1, 28702, -1, 
-  30631, -1, 29237, -1, 29359, -1, 29809, -1, 
-  29958, -1, 30011, -1, 30237, -1, 30239, -1, 
-  30427, -1, 30452, -1, 30538, -1, 30528, -1, 
-  30924, -1, 31409, -1, 31867, -1, 32091, -1, 
-  32574, -1, 33618, -1, 33775, -1, 34681, -1, 
-  35137, -1, 35206, -1, 35519, -1, 35531, -1, 
-  35565, -1, 35722, -1, 36664, -1, 36978, -1, 
-  37273, -1, 37494, -1, 38524, -1, 38875, -1, 
-  38923, -1, 39698, -1, 141386, -1, 141380, -1, 
-  144341, -1, 15261, -1, 16408, -1, 16441, -1, 
-  152137, -1, 154832, -1, 163539, -1, 40771, -1, 
-  40846, -1, 102, 102, -1, 102, 105, -1, 
-  102, 108, -1, 102, 102, 105, -1, 102, 
-  102, 108, -1, 383, 116, -1, 115, 116, 
-  -1, 1396, 1398, -1, 1396, 1381, -1, 1396, 
-  1387, -1, 1406, 1398, -1, 1396, 1389, -1, 
-  1497, 1460, -1, 1522, 1463, -1, 1506, -1, 
-  1492, -1, 1499, -1, 1500, -1, 1501, -1, 
-  1512, -1, 1514, -1, 1513, 1473, -1, 1513, 
-  1474, -1, 64329, 1473, -1, 64329, 1474, -1, 
-  1488, 1463, -1, 1488, 1464, -1, 1488, 1468, 
-  -1, 1489, 1468, -1, 1490, 1468, -1, 1491, 
-  1468, -1, 1492, 1468, -1, 1493, 1468, -1, 
-  1494, 1468, -1, 1496, 1468, -1, 1497, 1468, 
-  -1, 1498, 1468, -1, 1499, 1468, -1, 1500, 
-  1468, -1, 1502, 1468, -1, 1504, 1468, -1, 
-  1505, 1468, -1, 1507, 1468, -1, 1508, 1468, 
-  -1, 1510, 1468, -1, 1511, 1468, -1, 1512, 
-  1468, -1, 1513, 1468, -1, 1514, 1468, -1, 
-  1493, 1465, -1, 1489, 1471, -1, 1499, 1471, 
-  -1, 1508, 1471, -1, 1488, 1500, -1, 1649, 
-  -1, 1659, -1, 1662, -1, 1664, -1, 1658, 
-  -1, 1663, -1, 1657, -1, 1700, -1, 1702, 
-  -1, 1668, -1, 1667, -1, 1670, -1, 1671, 
-  -1, 1677, -1, 1676, -1, 1678, -1, 1672, 
-  -1, 1688, -1, 1681, -1, 1705, -1, 1711, 
-  -1, 1715, -1, 1713, -1, 1722, -1, 1723, 
-  -1, 1728, -1, 1729, -1, 1726, -1, 1746, 
-  -1, 1747, -1, 1709, -1, 1735, -1, 1734, 
-  -1, 1736, -1, 1655, -1, 1739, -1, 1733, 
-  -1, 1737, -1, 1744, -1, 1609, -1, 1574, 
-  1575, -1, 1574, 1749, -1, 1574, 1608, -1, 
-  1574, 1735, -1, 1574, 1734, -1, 1574, 1736, 
-  -1, 1574, 1744, -1, 1574, 1609, -1, 1740, 
-  -1, 1574, 1580, -1, 1574, 1581, -1, 1574, 
-  1605, -1, 1574, 1610, -1, 1576, 1580, -1, 
-  1576, 1581, -1, 1576, 1582, -1, 1576, 1605, 
-  -1, 1576, 1609, -1, 1576, 1610, -1, 1578, 
-  1580, -1, 1578, 1581, -1, 1578, 1582, -1, 
-  1578, 1605, -1, 1578, 1609, -1, 1578, 1610, 
-  -1, 1579, 1580, -1, 1579, 1605, -1, 1579, 
-  1609, -1, 1579, 1610, -1, 1580, 1581, -1, 
-  1580, 1605, -1, 1581, 1580, -1, 1581, 1605, 
-  -1, 1582, 1580, -1, 1582, 1581, -1, 1582, 
-  1605, -1, 1587, 1580, -1, 1587, 1581, -1, 
-  1587, 1582, -1, 1587, 1605, -1, 1589, 1581, 
-  -1, 1589, 1605, -1, 1590, 1580, -1, 1590, 
-  1581, -1, 1590, 1582, -1, 1590, 1605, -1, 
-  1591, 1581, -1, 1591, 1605, -1, 1592, 1605, 
-  -1, 1593, 1580, -1, 1593, 1605, -1, 1594, 
-  1580, -1, 1594, 1605, -1, 1601, 1580, -1, 
-  1601, 1581, -1, 1601, 1582, -1, 1601, 1605, 
-  -1, 1601, 1609, -1, 1601, 1610, -1, 1602, 
-  1581, -1, 1602, 1605, -1, 1602, 1609, -1, 
-  1602, 1610, -1, 1603, 1575, -1, 1603, 1580, 
-  -1, 1603, 1581, -1, 1603, 1582, -1, 1603, 
-  1604, -1, 1603, 1605, -1, 1603, 1609, -1, 
-  1603, 1610, -1, 1604, 1580, -1, 1604, 1581, 
-  -1, 1604, 1582, -1, 1604, 1605, -1, 1604, 
-  1609, -1, 1604, 1610, -1, 1605, 1580, -1, 
-  1605, 1581, -1, 1605, 1582, -1, 1605, 1605, 
-  -1, 1605, 1609, -1, 1605, 1610, -1, 1606, 
-  1580, -1, 1606, 1581, -1, 1606, 1582, -1, 
-  1606, 1605, -1, 1606, 1609, -1, 1606, 1610, 
-  -1, 1607, 1580, -1, 1607, 1605, -1, 1607, 
-  1609, -1, 1607, 1610, -1, 1610, 1580, -1, 
-  1610, 1581, -1, 1610, 1582, -1, 1610, 1605, 
-  -1, 1610, 1609, -1, 1610, 1610, -1, 1584, 
-  1648, -1, 1585, 1648, -1, 1609, 1648, -1, 
-  32, 1612, 1617, -1, 32, 1613, 1617, -1, 
-  32, 1614, 1617, -1, 32, 1615, 1617, -1, 
-  32, 1616, 1617, -1, 32, 1617, 1648, -1, 
-  1574, 1585, -1, 1574, 1586, -1, 1574, 1606, 
-  -1, 1576, 1585, -1, 1576, 1586, -1, 1576, 
-  1606, -1, 1578, 1585, -1, 1578, 1586, -1, 
-  1578, 1606, -1, 1579, 1585, -1, 1579, 1586, 
-  -1, 1579, 1606, -1, 1605, 1575, -1, 1606, 
-  1585, -1, 1606, 1586, -1, 1606, 1606, -1, 
-  1610, 1585, -1, 1610, 1586, -1, 1610, 1606, 
-  -1, 1574, 1582, -1, 1574, 1607, -1, 1576, 
-  1607, -1, 1578, 1607, -1, 1589, 1582, -1, 
-  1604, 1607, -1, 1606, 1607, -1, 1607, 1648, 
-  -1, 1610, 1607, -1, 1579, 1607, -1, 1587, 
-  1607, -1, 1588, 1605, -1, 1588, 1607, -1, 
-  1600, 1614, 1617, -1, 1600, 1615, 1617, -1, 
-  1600, 1616, 1617, -1, 1591, 1609, -1, 1591, 
-  1610, -1, 1593, 1609, -1, 1593, 1610, -1, 
-  1594, 1609, -1, 1594, 1610, -1, 1587, 1609, 
-  -1, 1587, 1610, -1, 1588, 1609, -1, 1588, 
-  1610, -1, 1581, 1609, -1, 1581, 1610, -1, 
-  1580, 1609, -1, 1580, 1610, -1, 1582, 1609, 
-  -1, 1582, 1610, -1, 1589, 1609, -1, 1589, 
-  1610, -1, 1590, 1609, -1, 1590, 1610, -1, 
-  1588, 1580, -1, 1588, 1581, -1, 1588, 1582, 
-  -1, 1588, 1585, -1, 1587, 1585, -1, 1589, 
-  1585, -1, 1590, 1585, -1, 1575, 1611, -1, 
-  1578, 1580, 1605, -1, 1578, 1581, 1580, -1, 
-  1578, 1581, 1605, -1, 1578, 1582, 1605, -1, 
-  1578, 1605, 1580, -1, 1578, 1605, 1581, -1, 
-  1578, 1605, 1582, -1, 1580, 1605, 1581, -1, 
-  1581, 1605, 1610, -1, 1581, 1605, 1609, -1, 
-  1587, 1581, 1580, -1, 1587, 1580, 1581, -1, 
-  1587, 1580, 1609, -1, 1587, 1605, 1581, -1, 
-  1587, 1605, 1580, -1, 1587, 1605, 1605, -1, 
-  1589, 1581, 1581, -1, 1589, 1605, 1605, -1, 
-  1588, 1581, 1605, -1, 1588, 1580, 1610, -1, 
-  1588, 1605, 1582, -1, 1588, 1605, 1605, -1, 
-  1590, 1581, 1609, -1, 1590, 1582, 1605, -1, 
-  1591, 1605, 1581, -1, 1591, 1605, 1605, -1, 
-  1591, 1605, 1610, -1, 1593, 1580, 1605, -1, 
-  1593, 1605, 1605, -1, 1593, 1605, 1609, -1, 
-  1594, 1605, 1605, -1, 1594, 1605, 1610, -1, 
-  1594, 1605, 1609, -1, 1601, 1582, 1605, -1, 
-  1602, 1605, 1581, -1, 1602, 1605, 1605, -1, 
-  1604, 1581, 1605, -1, 1604, 1581, 1610, -1, 
-  1604, 1581, 1609, -1, 1604, 1580, 1580, -1, 
-  1604, 1582, 1605, -1, 1604, 1605, 1581, -1, 
-  1605, 1581, 1580, -1, 1605, 1581, 1605, -1, 
-  1605, 1581, 1610, -1, 1605, 1580, 1581, -1, 
-  1605, 1580, 1605, -1, 1605, 1582, 1580, -1, 
-  1605, 1582, 1605, -1, 1605, 1580, 1582, -1, 
-  1607, 1605, 1580, -1, 1607, 1605, 1605, -1, 
-  1606, 1581, 1605, -1, 1606, 1581, 1609, -1, 
-  1606, 1580, 1605, -1, 1606, 1580, 1609, -1, 
-  1606, 1605, 1610, -1, 1606, 1605, 1609, -1, 
-  1610, 1605, 1605, -1, 1576, 1582, 1610, -1, 
-  1578, 1580, 1610, -1, 1578, 1580, 1609, -1, 
-  1578, 1582, 1610, -1, 1578, 1582, 1609, -1, 
-  1578, 1605, 1610, -1, 1578, 1605, 1609, -1, 
-  1580, 1605, 1610, -1, 1580, 1581, 1609, -1, 
-  1580, 1605, 1609, -1, 1587, 1582, 1609, -1, 
-  1589, 1581, 1610, -1, 1588, 1581, 1610, -1, 
-  1590, 1581, 1610, -1, 1604, 1580, 1610, -1, 
-  1604, 1605, 1610, -1, 1610, 1581, 1610, -1, 
-  1610, 1580, 1610, -1, 1610, 1605, 1610, -1, 
-  1605, 1605, 1610, -1, 1602, 1605, 1610, -1, 
-  1606, 1581, 1610, -1, 1593, 1605, 1610, -1, 
-  1603, 1605, 1610, -1, 1606, 1580, 1581, -1, 
-  1605, 1582, 1610, -1, 1604, 1580, 1605, -1, 
-  1603, 1605, 1605, -1, 1580, 1581, 1610, -1, 
-  1581, 1580, 1610, -1, 1605, 1580, 1610, -1, 
-  1601, 1605, 1610, -1, 1576, 1581, 1610, -1, 
-  1587, 1582, 1610, -1, 1606, 1580, 1610, -1, 
-  1589, 1604, 1746, -1, 1602, 1604, 1746, -1, 
-  1575, 1604, 1604, 1607, -1, 1575, 1603, 1576, 
-  1585, -1, 1605, 1581, 1605, 1583, -1, 1589, 
-  1604, 1593, 1605, -1, 1585, 1587, 1608, 1604, 
-  -1, 1593, 1604, 1610, 1607, -1, 1608, 1587, 
-  1604, 1605, -1, 1589, 1604, 1609, -1, 1589, 
-  1604, 1609, 32, 1575, 1604, 1604, 1607, 32, 
-  1593, 1604, 1610, 1607, 32, 1608, 1587, 1604, 
-  1605, -1, 1580, 1604, 32, 1580, 1604, 1575, 
-  1604, 1607, -1, 1585, 1740, 1575, 1604, -1, 
-  44, -1, 12289, -1, 12290, -1, 58, -1, 
-  33, -1, 63, -1, 12310, -1, 12311, -1, 
-  8230, -1, 8229, -1, 8212, -1, 8211, -1, 
-  95, -1, 123, -1, 125, -1, 12308, -1, 
-  12309, -1, 12304, -1, 12305, -1, 12298, -1, 
-  12299, -1, 12300, -1, 12301, -1, 12302, -1, 
-  12303, -1, 91, -1, 93, -1, 8254, -1, 
-  35, -1, 38, -1, 42, -1, 45, -1, 
-  60, -1, 62, -1, 92, -1, 36, -1, 
-  37, -1, 64, -1, 32, 1611, -1, 1600, 
-  1611, -1, 32, 1612, -1, 32, 1613, -1, 
-  32, 1614, -1, 1600, 1614, -1, 32, 1615, 
-  -1, 1600, 1615, -1, 32, 1616, -1, 1600, 
-  1616, -1, 32, 1617, -1, 1600, 1617, -1, 
-  32, 1618, -1, 1600, 1618, -1, 1569, -1, 
-  1570, -1, 1571, -1, 1572, -1, 1573, -1, 
-  1574, -1, 1575, -1, 1576, -1, 1577, -1, 
-  1578, -1, 1579, -1, 1580, -1, 1581, -1, 
-  1582, -1, 1583, -1, 1584, -1, 1585, -1, 
-  1586, -1, 1587, -1, 1588, -1, 1589, -1, 
-  1590, -1, 1591, -1, 1592, -1, 1593, -1, 
-  1594, -1, 1601, -1, 1602, -1, 1603, -1, 
-  1604, -1, 1605, -1, 1606, -1, 1607, -1, 
-  1608, -1, 1610, -1, 1604, 1570, -1, 1604, 
-  1571, -1, 1604, 1573, -1, 1604, 1575, -1, 
-  34, -1, 39, -1, 47, -1, 65345, -1, 
-  65346, -1, 65347, -1, 65348, -1, 65349, -1, 
-  65350, -1, 65351, -1, 65352, -1, 65353, -1, 
-  65354, -1, 65355, -1, 65356, -1, 65357, -1, 
-  65358, -1, 65359, -1, 65360, -1, 65361, -1, 
-  65362, -1, 65363, -1, 65364, -1, 65365, -1, 
-  65366, -1, 65367, -1, 65368, -1, 65369, -1, 
-  65370, -1, 94, -1, 124, -1, 126, -1, 
-  10629, -1, 10630, -1, 12539, -1, 12449, -1, 
-  12451, -1, 12453, -1, 12455, -1, 12457, -1, 
-  12515, -1, 12517, -1, 12519, -1, 12483, -1, 
-  12540, -1, 12531, -1, 12441, -1, 12442, -1, 
-  12644, -1, 12593, -1, 12594, -1, 12595, -1, 
-  12596, -1, 12597, -1, 12598, -1, 12599, -1, 
-  12600, -1, 12601, -1, 12602, -1, 12603, -1, 
-  12604, -1, 12605, -1, 12606, -1, 12607, -1, 
-  12608, -1, 12609, -1, 12610, -1, 12611, -1, 
-  12612, -1, 12613, -1, 12614, -1, 12615, -1, 
-  12616, -1, 12617, -1, 12618, -1, 12619, -1, 
-  12620, -1, 12621, -1, 12622, -1, 12623, -1, 
-  12624, -1, 12625, -1, 12626, -1, 12627, -1, 
-  12628, -1, 12629, -1, 12630, -1, 12631, -1, 
-  12632, -1, 12633, -1, 12634, -1, 12635, -1, 
-  12636, -1, 12637, -1, 12638, -1, 12639, -1, 
-  12640, -1, 12641, -1, 12642, -1, 12643, -1, 
-  162, -1, 163, -1, 172, -1, 175, -1, 
-  166, -1, 165, -1, 8361, -1, 9474, -1, 
-  8592, -1, 8593, -1, 8594, -1, 8595, -1, 
-  9632, -1, 9675, -1, 66600, -1, 66601, -1, 
-  66602, -1, 66603, -1, 66604, -1, 66605, -1, 
-  66606, -1, 66607, -1, 66608, -1, 66609, -1, 
-  66610, -1, 66611, -1, 66612, -1, 66613, -1, 
-  66614, -1, 66615, -1, 66616, -1, 66617, -1, 
-  66618, -1, 66619, -1, 66620, -1, 66621, -1, 
-  66622, -1, 66623, -1, 66624, -1, 66625, -1, 
-  66626, -1, 66627, -1, 66628, -1, 66629, -1, 
-  66630, -1, 66631, -1, 66632, -1, 66633, -1, 
-  66634, -1, 66635, -1, 66636, -1, 66637, -1, 
-  66638, -1, 66639, -1, 119127, 119141, -1, 119128, 
-  119141, -1, 119135, 119150, -1, 119135, 119151, -1, 
-  119135, 119152, -1, 119135, 119153, -1, 119135, 119154, 
-  -1, 119225, 119141, -1, 119226, 119141, -1, 119227, 
-  119150, -1, 119228, 119150, -1, 119227, 119151, -1, 
-  119228, 119151, -1, 305, -1, 567, -1, 913, 
-  -1, 914, -1, 916, -1, 917, -1, 918, 
-  -1, 919, -1, 921, -1, 922, -1, 923, 
-  -1, 924, -1, 925, -1, 926, -1, 927, 
-  -1, 929, -1, 1012, -1, 932, -1, 934, 
-  -1, 935, -1, 936, -1, 8711, -1, 8706, 
-  -1, 1013, -1, 977, -1, 1008, -1, 981, 
-  -1, 1009, -1, 982, -1, 988, -1, 20029, 
-  -1, 20024, -1, 20033, -1, 131362, -1, 20320, 
-  -1, 20411, -1, 20482, -1, 20602, -1, 20633, 
-  -1, 20687, -1, 13470, -1, 132666, -1, 20820, 
-  -1, 20836, -1, 20855, -1, 132380, -1, 13497, 
-  -1, 20839, -1, 20877, -1, 132427, -1, 20887, 
-  -1, 20900, -1, 20172, -1, 20908, -1, 168415, 
-  -1, 20995, -1, 13535, -1, 21051, -1, 21062, 
-  -1, 21106, -1, 21111, -1, 13589, -1, 21253, 
-  -1, 21254, -1, 21321, -1, 21338, -1, 21363, 
-  -1, 21373, -1, 21375, -1, 133676, -1, 28784, 
-  -1, 21450, -1, 21471, -1, 133987, -1, 21483, 
-  -1, 21489, -1, 21510, -1, 21662, -1, 21560, 
-  -1, 21576, -1, 21608, -1, 21666, -1, 21750, 
-  -1, 21776, -1, 21843, -1, 21859, -1, 21892, 
-  -1, 21931, -1, 21939, -1, 21954, -1, 22294, 
-  -1, 22295, -1, 22097, -1, 22132, -1, 22766, 
-  -1, 22478, -1, 22516, -1, 22541, -1, 22411, 
-  -1, 22578, -1, 22577, -1, 22700, -1, 136420, 
-  -1, 22770, -1, 22775, -1, 22790, -1, 22810, 
-  -1, 22818, -1, 22882, -1, 136872, -1, 136938, 
-  -1, 23020, -1, 23067, -1, 23079, -1, 23000, 
-  -1, 23142, -1, 14062, -1, 14076, -1, 23304, 
-  -1, 23358, -1, 137672, -1, 23491, -1, 23512, 
-  -1, 23539, -1, 138008, -1, 23551, -1, 23558, 
-  -1, 24403, -1, 14209, -1, 23648, -1, 23744, 
-  -1, 23693, -1, 138724, -1, 23875, -1, 138726, 
-  -1, 23918, -1, 23915, -1, 23932, -1, 24033, 
-  -1, 24034, -1, 14383, -1, 24061, -1, 24104, 
-  -1, 24125, -1, 24169, -1, 14434, -1, 139651, 
-  -1, 14460, -1, 24240, -1, 24243, -1, 24246, 
-  -1, 172946, -1, 140081, -1, 33281, -1, 24354, 
-  -1, 14535, -1, 144056, -1, 156122, -1, 24418, 
-  -1, 24427, -1, 14563, -1, 24474, -1, 24525, 
-  -1, 24535, -1, 24569, -1, 24705, -1, 14650, 
-  -1, 14620, -1, 141012, -1, 24775, -1, 24904, 
-  -1, 24908, -1, 24954, -1, 25010, -1, 24996, 
-  -1, 25007, -1, 25054, -1, 25104, -1, 25115, 
-  -1, 25181, -1, 25265, -1, 25300, -1, 25424, 
-  -1, 142092, -1, 25405, -1, 25340, -1, 25448, 
-  -1, 25475, -1, 25572, -1, 142321, -1, 25634, 
-  -1, 25541, -1, 25513, -1, 14894, -1, 25705, 
-  -1, 25726, -1, 25757, -1, 25719, -1, 14956, 
-  -1, 25964, -1, 143370, -1, 26083, -1, 26360, 
-  -1, 26185, -1, 15129, -1, 15112, -1, 15076, 
-  -1, 20882, -1, 20885, -1, 26368, -1, 26268, 
-  -1, 32941, -1, 17369, -1, 26401, -1, 26462, 
-  -1, 26451, -1, 144323, -1, 15177, -1, 26618, 
-  -1, 26501, -1, 26706, -1, 144493, -1, 26766, 
-  -1, 26655, -1, 26900, -1, 26946, -1, 27043, 
-  -1, 27114, -1, 27304, -1, 145059, -1, 27355, 
-  -1, 15384, -1, 27425, -1, 145575, -1, 27476, 
-  -1, 15438, -1, 27506, -1, 27551, -1, 27579, 
-  -1, 146061, -1, 138507, -1, 146170, -1, 27726, 
-  -1, 146620, -1, 27839, -1, 27853, -1, 27751, 
-  -1, 27926, -1, 27966, -1, 28009, -1, 28024, 
-  -1, 28037, -1, 146718, -1, 27956, -1, 28207, 
-  -1, 28270, -1, 15667, -1, 28359, -1, 147153, 
-  -1, 28153, -1, 28526, -1, 147294, -1, 147342, 
-  -1, 28614, -1, 28729, -1, 28699, -1, 15766, 
-  -1, 28746, -1, 28797, -1, 28791, -1, 28845, 
-  -1, 132389, -1, 28997, -1, 148067, -1, 29084, 
-  -1, 148395, -1, 29224, -1, 29264, -1, 149000, 
-  -1, 29312, -1, 29333, -1, 149301, -1, 149524, 
-  -1, 29562, -1, 29579, -1, 16044, -1, 29605, 
-  -1, 16056, -1, 29767, -1, 29788, -1, 29829, 
-  -1, 29898, -1, 16155, -1, 29988, -1, 150582, 
-  -1, 30014, -1, 150674, -1, 139679, -1, 30224, 
-  -1, 151457, -1, 151480, -1, 151620, -1, 16380, 
-  -1, 16392, -1, 151795, -1, 151794, -1, 151833, 
-  -1, 151859, -1, 30494, -1, 30495, -1, 30603, 
-  -1, 16454, -1, 16534, -1, 152605, -1, 30798, 
-  -1, 16611, -1, 153126, -1, 153242, -1, 153285, 
-  -1, 31211, -1, 16687, -1, 31306, -1, 31311, 
-  -1, 153980, -1, 154279, -1, 31470, -1, 16898, 
-  -1, 154539, -1, 31686, -1, 31689, -1, 16935, 
-  -1, 154752, -1, 31954, -1, 17056, -1, 31976, 
-  -1, 31971, -1, 32000, -1, 155526, -1, 32099, 
-  -1, 17153, -1, 32199, -1, 32258, -1, 32325, 
-  -1, 17204, -1, 156200, -1, 156231, -1, 17241, 
-  -1, 156377, -1, 32634, -1, 156478, -1, 32661, 
-  -1, 32762, -1, 156890, -1, 156963, -1, 32864, 
-  -1, 157096, -1, 32880, -1, 144223, -1, 17365, 
-  -1, 32946, -1, 33027, -1, 17419, -1, 33086, 
-  -1, 23221, -1, 157607, -1, 157621, -1, 144275, 
-  -1, 144284, -1, 33284, -1, 36766, -1, 17515, 
-  -1, 33425, -1, 33419, -1, 33437, -1, 21171, 
-  -1, 33457, -1, 33459, -1, 33469, -1, 33510, 
-  -1, 158524, -1, 33565, -1, 33635, -1, 33709, 
-  -1, 33571, -1, 33725, -1, 33767, -1, 33619, 
-  -1, 33738, -1, 33740, -1, 33756, -1, 158774, 
-  -1, 159083, -1, 158933, -1, 17707, -1, 34033, 
-  -1, 34035, -1, 34070, -1, 160714, -1, 34148, 
-  -1, 159532, -1, 17757, -1, 17761, -1, 159665, 
-  -1, 159954, -1, 17771, -1, 34384, -1, 34407, 
-  -1, 34409, -1, 34473, -1, 34440, -1, 34574, 
-  -1, 34530, -1, 34600, -1, 34667, -1, 34694, 
-  -1, 17879, -1, 34785, -1, 34817, -1, 17913, 
-  -1, 34912, -1, 161383, -1, 35031, -1, 35038, 
-  -1, 17973, -1, 35066, -1, 13499, -1, 161966, 
-  -1, 162150, -1, 18110, -1, 18119, -1, 35488, 
-  -1, 162984, -1, 36011, -1, 36033, -1, 36123, 
-  -1, 36215, -1, 163631, -1, 133124, -1, 36299, 
-  -1, 36284, -1, 36336, -1, 133342, -1, 36564, 
-  -1, 165330, -1, 165357, -1, 37012, -1, 37105, 
-  -1, 37137, -1, 165678, -1, 37147, -1, 37432, 
-  -1, 37591, -1, 37592, -1, 37500, -1, 37881, 
-  -1, 37909, -1, 166906, -1, 38283, -1, 18837, 
-  -1, 38327, -1, 167287, -1, 18918, -1, 38595, 
-  -1, 23986, -1, 38691, -1, 168261, -1, 168474, 
-  -1, 19054, -1, 19062, -1, 38880, -1, 168970, 
-  -1, 19122, -1, 169110, -1, 38953, -1, 169398, 
-  -1, 39138, -1, 19251, -1, 39209, -1, 39335, 
-  -1, 39362, -1, 39422, -1, 19406, -1, 170800, 
-  -1, 40000, -1, 40189, -1, 19662, -1, 19693, 
-  -1, 40295, -1, 172238, -1, 19704, -1, 172293, 
-  -1, 172558, -1, 172689, -1, 19798, -1, 40702, 
-  -1, 40709, -1, 40719, -1, 40726, -1, 173568, 
-  -1, };
-
-const uint16_t utf8proc_stage1table[] = {
-  0, 256, 512, 768, 1024, 1280, 1536, 
-  1792, 2048, 2304, 2560, 2816, 3072, 3328, 3584, 
-  3840, 4096, 4352, 4608, 4864, 5120, 5376, 5632, 
-  5888, 6144, 6400, 6656, 6912, 2048, 7168, 7424, 
-  7680, 7936, 8192, 8448, 8704, 8960, 9216, 9472, 
-  9728, 9984, 10240, 10496, 10752, 11008, 11264, 11520, 
-  11776, 12032, 12288, 12544, 12800, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 13056, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  13312, 13568, 5376, 5376, 5376, 13824, 2048, 2048, 
-  14080, 14336, 2048, 2048, 2048, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  14592, 14848, 14848, 14848, 14848, 14848, 14848, 14848, 
-  14848, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15360, 15616, 15872, 16128, 16384, 16640, 
-  16896, 17152, 17408, 2048, 17664, 17920, 2048, 2048, 
-  2048, 18176, 18432, 18688, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 5376, 5376, 5376, 18944, 19200, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 19456, 19712, 19968, 20224, 20480, 20736, 20992, 
-  21248, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 
-  5376, 5376, 5376, 5376, 5376, 5376, 5376, 21504, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 21760, 22016, 22272, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 22528, 22784, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
-  2048, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  23040, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  15104, 15104, 15104, 15104, 15104, 15104, 15104, 15104, 
-  23040, };
-
-const uint16_t utf8proc_stage2table[] = {
-  1, 1, 1, 1, 1, 1, 1, 
-  1, 1, 2, 3, 2, 4, 3, 1, 
-  1, 1, 1, 1, 1, 1, 1, 1, 
-  1, 1, 1, 1, 1, 5, 5, 5, 
-  6, 7, 8, 8, 9, 10, 9, 8, 
-  8, 11, 12, 8, 13, 14, 15, 14, 
-  14, 16, 16, 16, 16, 16, 16, 16, 
-  16, 16, 16, 14, 8, 17, 18, 19, 
-  8, 8, 20, 21, 22, 23, 24, 25, 
-  26, 27, 28, 29, 30, 31, 32, 33, 
-  34, 35, 36, 37, 38, 39, 40, 41, 
-  42, 43, 44, 45, 11, 8, 12, 46, 
-  47, 46, 48, 49, 50, 51, 52, 53, 
-  54, 55, 56, 57, 58, 59, 60, 61, 
-  62, 63, 64, 65, 66, 67, 68, 69, 
-  70, 71, 72, 73, 11, 74, 12, 74, 
-  1, 1, 1, 1, 1, 1, 3, 1, 
-  1, 1, 1, 1, 1, 1, 1, 1, 
-  1, 1, 1, 1, 1, 1, 1, 1, 
-  1, 1, 1, 1, 1, 1, 1, 1, 
-  1, 75, 8, 10, 10, 10, 10, 76, 
-  76, 77, 76, 78, 79, 74, 80, 76, 
-  81, 82, 83, 84, 85, 86, 87, 76, 
-  8, 88, 89, 90, 91, 92, 93, 94, 
-  8, 95, 96, 97, 98, 99, 100, 101, 
-  102, 103, 104, 105, 106, 107, 108, 109, 
-  110, 111, 112, 113, 114, 115, 116, 117, 
-  74, 118, 119, 120, 121, 122, 123, 124, 
-  125, 126, 127, 128, 129, 130, 131, 132, 
-  133, 134, 135, 136, 137, 138, 139, 140, 
-  141, 142, 143, 144, 145, 146, 147, 148, 
-  74, 149, 150, 151, 152, 153, 154, 155, 
-  156, 157, 158, 159, 160, 161, 162, 163, 
-  164, 165, 166, 167, 168, 169, 170, 171, 
-  172, 173, 174, 175, 176, 177, 178, 179, 
-  180, 181, 182, 183, 184, 185, 186, 187, 
-  188, 189, 190, 191, 192, 193, 194, 195, 
-  196, 197, 198, 199, 200, 201, 202, 203, 
-  204, 205, 206, 207, 208, 209, 210, 211, 
-  212, 213, 214, 215, 216, 217, 218, 219, 
-  220, 221, 222, 223, 224, 225, 226, 227, 
-  228, 229, 230, 231, 232, 233, 234, 235, 
-  236, 237, 238, 239, 240, 241, 242, 243, 
-  244, 245, 246, 247, 248, 249, 250, 251, 
-  252, 253, 254, 255, 256, 257, 258, 259, 
-  260, 261, 262, 263, 264, 265, 266, 267, 
-  268, 269, 270, 271, 272, 273, 274, 275, 
-  276, 277, 278, 279, 280, 281, 282, 283, 
-  284, 285, 286, 287, 288, 289, 290, 291, 
-  292, 293, 294, 295, 296, 297, 213, 298, 
-  299, 300, 301, 302, 303, 304, 305, 306, 
-  307, 308, 309, 310, 213, 311, 312, 313, 
-  314, 315, 316, 317, 318, 319, 320, 321, 
-  322, 323, 324, 213, 213, 325, 326, 327, 
-  328, 329, 330, 331, 332, 333, 334, 335, 
-  336, 337, 338, 213, 339, 340, 341, 213, 
-  342, 339, 339, 339, 339, 343, 344, 345, 
-  346, 347, 348, 349, 350, 351, 352, 353, 
-  354, 355, 356, 357, 358, 359, 360, 361, 
-  362, 363, 364, 365, 366, 367, 368, 369, 
-  370, 371, 372, 373, 374, 375, 376, 377, 
-  378, 379, 380, 381, 382, 383, 384, 385, 
-  386, 387, 388, 389, 390, 391, 392, 393, 
-  394, 395, 396, 397, 398, 399, 400, 401, 
-  402, 403, 404, 405, 406, 407, 408, 409, 
-  410, 411, 412, 413, 414, 415, 416, 417, 
-  418, 419, 420, 421, 422, 423, 424, 425, 
-  426, 427, 428, 429, 430, 431, 432, 433, 
-  434, 435, 213, 436, 437, 438, 439, 440, 
-  441, 442, 443, 444, 445, 446, 447, 448, 
-  449, 450, 451, 452, 453, 213, 213, 213, 
-  213, 213, 213, 454, 455, 456, 457, 458, 
-  213, 213, 459, 460, 461, 462, 463, 464, 
-  465, 466, 467, 468, 469, 470, 471, 472, 
-  473, 213, 213, 213, 474, 475, 213, 476, 
-  477, 213, 478, 213, 479, 213, 213, 213, 
-  213, 480, 213, 213, 481, 213, 213, 213, 
-  213, 482, 483, 213, 484, 213, 213, 213, 
-  485, 213, 213, 486, 213, 213, 487, 213, 
-  213, 213, 213, 213, 213, 213, 488, 213, 
-  213, 489, 213, 213, 490, 213, 213, 213, 
-  213, 491, 492, 493, 494, 495, 213, 213, 
-  213, 213, 213, 496, 213, 339, 213, 213, 
-  213, 213, 213, 213, 213, 213, 213, 213, 
-  213, 213, 213, 213, 213, 213, 213, 213, 
-  213, 213, 213, 213, 213, 213, 213, 213, 
-  213, 497, 498, 499, 500, 501, 502, 503, 
-  504, 505, 506, 506, 507, 507, 507, 507, 
-  507, 507, 507, 46, 46, 46, 46, 506, 
-  506, 506, 506, 506, 506, 506, 506, 506, 
-  506, 507, 507, 46, 46, 46, 46, 46, 
-  46, 508, 509, 510, 511, 512, 513, 46, 
-  46, 514, 515, 516, 517, 518, 46, 46, 
-  46, 46, 46, 46, 46, 46, 46, 507, 
-  46, 46, 46, 46, 46, 46, 46, 46, 
-  46, 46, 46, 46, 46, 46, 46, 46, 
-  46, 519, 520, 521, 522, 523, 524, 525, 
-  526, 527, 528, 529, 530, 531, 524, 524, 
-  532, 524, 533, 524, 534, 535, 536, 537, 
-  537, 537, 537, 536, 538, 537, 537, 537, 
-  537, 537, 539, 539, 540, 541, 542, 543, 
-  544, 545, 537, 537, 537, 537, 546, 547, 
-  537, 548, 549, 537, 537, 550, 550, 550, 
-  550, 551, 537, 537, 537, 537, 524, 524, 
-  524, 552, 553, 554, 555, 556, 557, 524, 
-  537, 537, 537, 524, 524, 524, 537, 537, 
-  558, 524, 524, 524, 537, 537, 537, 537, 
-  524, 536, 537, 537, 524, 559, 560, 560, 
-  559, 560, 560, 559, 524, 524, 524, 524, 
-  524, 524, 524, 524, 524, 524, 524, 524, 
-  524, 0, 0, 0, 0, 561, 46, 0, 
-  0, 0, 0, 562, 563, 564, 565, 566, 
-  0, 0, 0, 0, 0, 86, 567, 568, 
-  569, 570, 571, 572, 0, 573, 0, 574, 
-  575, 576, 577, 578, 579, 580, 581, 582, 
-  583, 584, 585, 586, 587, 588, 589, 590, 
-  591, 592, 593, 0, 594, 595, 596, 597, 
-  598, 599, 600, 601, 602, 603, 604, 605, 
-  606, 607, 608, 609, 610, 611, 612, 613, 
-  614, 615, 616, 617, 618, 619, 620, 621, 
-  622, 623, 624, 625, 626, 627, 628, 629, 
-  630, 631, 632, 633, 634, 635, 636, 637, 
-  0, 638, 639, 640, 641, 642, 643, 644, 
-  213, 645, 646, 647, 648, 649, 650, 651, 
-  652, 653, 654, 655, 656, 657, 658, 659, 
-  660, 661, 662, 663, 664, 665, 666, 667, 
-  668, 669, 670, 671, 213, 672, 673, 74, 
-  674, 675, 676, 677, 678, 213, 679, 680, 
-  681, 682, 683, 684, 685, 686, 687, 688, 
-  689, 690, 691, 692, 693, 694, 695, 696, 
-  697, 698, 699, 700, 701, 702, 703, 704, 
-  705, 706, 707, 708, 709, 710, 711, 712, 
-  713, 714, 715, 716, 717, 718, 719, 720, 
-  721, 722, 723, 724, 725, 726, 727, 728, 
-  729, 730, 731, 732, 733, 734, 735, 736, 
-  737, 738, 739, 740, 741, 742, 743, 744, 
-  745, 746, 747, 748, 749, 750, 751, 752, 
-  753, 754, 755, 756, 757, 758, 759, 760, 
-  761, 762, 763, 764, 765, 766, 767, 768, 
-  769, 770, 771, 772, 773, 774, 775, 776, 
-  777, 778, 779, 780, 781, 782, 783, 784, 
-  785, 786, 787, 788, 789, 790, 791, 792, 
-  793, 794, 795, 796, 797, 798, 799, 800, 
-  801, 802, 803, 804, 805, 806, 807, 808, 
-  809, 810, 811, 812, 524, 524, 524, 524, 
-  0, 813, 813, 814, 815, 816, 817, 818, 
-  819, 820, 821, 822, 823, 824, 825, 826, 
-  827, 828, 829, 830, 831, 832, 833, 834, 
-  835, 836, 837, 838, 839, 840, 841, 842, 
-  843, 844, 845, 846, 847, 848, 849, 850, 
-  851, 852, 853, 854, 855, 856, 857, 858, 
-  859, 860, 861, 862, 863, 864, 865, 866, 
-  867, 868, 869, 870, 871, 872, 873, 874, 
-  875, 876, 877, 878, 879, 880, 881, 882, 
-  883, 884, 885, 886, 887, 888, 889, 890, 
-  891, 892, 893, 894, 895, 896, 897, 898, 
-  899, 900, 901, 902, 903, 904, 905, 906, 
-  907, 908, 909, 910, 911, 912, 913, 914, 
-  915, 916, 917, 918, 919, 920, 921, 922, 
-  923, 924, 925, 926, 927, 928, 929, 930, 
-  931, 932, 933, 934, 935, 936, 937, 938, 
-  939, 940, 941, 942, 943, 944, 945, 946, 
-  947, 948, 949, 950, 951, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 952, 953, 954, 955, 956, 957, 
-  958, 959, 960, 961, 962, 963, 964, 965, 
-  966, 967, 968, 969, 970, 971, 972, 973, 
-  974, 975, 976, 977, 978, 979, 980, 981, 
-  982, 983, 984, 985, 986, 987, 988, 989, 
-  0, 0, 507, 990, 990, 990, 990, 990, 
-  990, 0, 991, 992, 993, 994, 995, 996, 
-  997, 998, 999, 1000, 1001, 1002, 1003, 1004, 
-  1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 
-  1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 
-  1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 
-  1029, 0, 990, 1030, 0, 0, 0, 0, 
-  0, 0, 537, 524, 524, 524, 524, 537, 
-  524, 524, 524, 1031, 537, 524, 524, 524, 
-  524, 524, 524, 537, 537, 537, 537, 537, 
-  537, 524, 524, 537, 524, 524, 1031, 1032, 
-  524, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 
-  1040, 1041, 1042, 1042, 1043, 1044, 1045, 1046, 
-  1047, 1046, 1048, 1049, 1046, 524, 537, 1046, 
-  1041, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 0, 0, 0, 0, 
-  0, 1050, 1050, 1050, 1046, 1046, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1051, 1051, 1051, 1051, 0, 0, 0, 
-  0, 0, 0, 0, 1052, 14, 1053, 76, 
-  76, 524, 524, 524, 524, 524, 524, 0, 
-  0, 0, 0, 0, 1053, 0, 0, 1053, 
-  1053, 0, 1054, 1055, 1056, 1057, 1058, 1059, 
-  1060, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 0, 0, 0, 0, 
-  0, 1061, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1062, 1054, 1063, 1064, 1065, 1066, 1067, 
-  1068, 1069, 1070, 1071, 1072, 1073, 1074, 537, 
-  524, 524, 524, 524, 524, 537, 524, 524, 
-  0, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 
-  1075, 1075, 1075, 9, 1076, 1076, 1053, 1054, 
-  1054, 1077, 1054, 1054, 1054, 1054, 1078, 1079, 
-  1080, 1081, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1082, 1083, 1084, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1085, 1086, 1053, 1087, 524, 
-  524, 524, 524, 524, 524, 524, 1051, 813, 
-  524, 524, 524, 524, 537, 524, 1061, 1061, 
-  524, 524, 76, 537, 524, 524, 537, 1054, 
-  1054, 16, 16, 16, 16, 16, 16, 16, 
-  16, 16, 16, 1054, 1054, 1054, 1088, 1088, 
-  1054, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 
-  1053, 1053, 1053, 1053, 1053, 1053, 1053, 0, 
-  80, 1054, 1089, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 524, 537, 524, 524, 537, 524, 524, 
-  537, 537, 537, 524, 537, 537, 524, 537, 
-  524, 524, 524, 537, 524, 537, 524, 537, 
-  524, 537, 524, 524, 0, 0, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 
-  1054, 1054, 1054, 1054, 1054, 1054, 1054, 1090, 
-  1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 
-  1090, 1090, 1054, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 
-  1091, 1091, 1091, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 524, 524, 524, 524, 
-  524, 524, 524, 537, 524, 1092, 1092, 76, 
-  8, 8, 8, 1092, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 1090, 1090, 1093, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 1094, 1095, 339, 339, 339, 339, 339, 
-  339, 1096, 1097, 339, 1098, 1099, 339, 339, 
-  339, 339, 339, 0, 0, 1100, 339, 1093, 
-  1093, 1093, 1090, 1090, 1090, 1090, 1090, 1090, 
-  1090, 1090, 1093, 1093, 1093, 1093, 1101, 0, 
-  0, 339, 524, 537, 524, 524, 0, 0, 
-  0, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 
-  1109, 339, 339, 1090, 1090, 990, 990, 1110, 
-  1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 990, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 339, 339, 339, 339, 
-  339, 0, 1090, 1093, 1093, 0, 339, 339, 
-  339, 339, 339, 339, 339, 339, 0, 0, 
-  339, 339, 0, 0, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 0, 0, 0, 339, 
-  339, 339, 339, 0, 0, 1111, 339, 1112, 
-  1093, 1093, 1090, 1090, 1090, 1090, 0, 0, 
-  1113, 1093, 0, 0, 1114, 1115, 1101, 339, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  1116, 0, 0, 0, 0, 1117, 1118, 0, 
-  1119, 339, 339, 1090, 1090, 0, 0, 1110, 
-  1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 339, 339, 10, 10, 1120, 1120, 1120, 
-  1120, 1120, 1120, 812, 0, 0, 0, 0, 
-  0, 0, 1090, 1090, 1093, 0, 339, 339, 
-  339, 339, 339, 339, 0, 0, 0, 0, 
-  339, 339, 0, 0, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 1121, 0, 339, 1122, 
-  0, 339, 339, 0, 0, 1111, 0, 1093, 
-  1093, 1093, 1090, 1090, 0, 0, 0, 0, 
-  1090, 1090, 0, 0, 1090, 1090, 1101, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 1123, 1124, 1125, 339, 0, 1126, 
-  0, 0, 0, 0, 0, 0, 0, 1110, 
-  1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 1090, 1090, 339, 339, 339, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 1090, 1090, 1093, 0, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 0, 
-  339, 339, 339, 0, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 0, 339, 339, 
-  339, 339, 339, 0, 0, 1111, 339, 1093, 
-  1093, 1093, 1090, 1090, 1090, 1090, 1090, 0, 
-  1090, 1090, 1093, 0, 1093, 1093, 1101, 0, 
-  0, 339, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 1090, 1090, 0, 0, 1110, 
-  1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 0, 10, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 1090, 1093, 1093, 0, 339, 339, 
-  339, 339, 339, 339, 339, 339, 0, 0, 
-  339, 339, 0, 0, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 0, 339, 339, 
-  339, 339, 339, 0, 0, 1111, 339, 1127, 
-  1090, 1093, 1090, 1090, 1090, 0, 0, 0, 
-  1128, 1129, 0, 0, 1130, 1131, 1101, 0, 
-  0, 0, 0, 0, 0, 0, 0, 1132, 
-  1133, 0, 0, 0, 0, 1134, 1135, 0, 
-  339, 339, 339, 0, 0, 0, 0, 1110, 
-  1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 812, 339, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 1090, 339, 0, 339, 339, 
-  339, 339, 339, 339, 0, 0, 0, 339, 
-  339, 339, 0, 1136, 339, 1137, 339, 0, 
-  0, 0, 339, 339, 0, 339, 0, 339, 
-  339, 0, 0, 0, 339, 339, 0, 0, 
-  0, 339, 339, 339, 0, 0, 0, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 0, 0, 0, 0, 1138, 
-  1093, 1090, 1093, 1093, 0, 0, 0, 1139, 
-  1140, 1093, 0, 1141, 1142, 1143, 1101, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  1144, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 1110, 
-  1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 1120, 1120, 1120, 76, 76, 76, 76, 
-  76, 76, 10, 76, 0, 0, 0, 0, 
-  0, 0, 1093, 1093, 1093, 0, 339, 339, 
-  339, 339, 339, 339, 339, 339, 0, 339, 
-  339, 339, 0, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 0, 339, 339, 
-  339, 339, 339, 0, 0, 0, 0, 1090, 
-  1090, 1090, 1093, 1093, 1093, 1093, 0, 1145, 
-  1090, 1146, 0, 1090, 1090, 1090, 1101, 0, 
-  0, 0, 0, 0, 0, 0, 1147, 1148, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 0, 0, 0, 0, 1110, 
-  1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 1093, 1093, 0, 339, 339, 
-  339, 339, 339, 339, 339, 339, 0, 339, 
-  339, 339, 0, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 0, 339, 339, 
-  339, 339, 339, 0, 0, 1111, 339, 1093, 
-  1149, 1150, 1093, 1151, 1093, 1093, 0, 1152, 
-  1153, 1154, 0, 1155, 1156, 1090, 1101, 0, 
-  0, 0, 0, 0, 0, 0, 1157, 1158, 
-  0, 0, 0, 0, 0, 0, 0, 339, 
-  0, 339, 339, 1090, 1090, 0, 0, 1110, 
-  1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 0, 76, 76, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 1093, 1093, 0, 339, 339, 
-  339, 339, 339, 339, 339, 339, 0, 339, 
-  339, 339, 0, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 0, 0, 0, 0, 1159, 
-  1093, 1093, 1090, 1090, 1090, 0, 0, 1160, 
-  1161, 1093, 0, 1162, 1163, 1164, 1101, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  1165, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 0, 0, 0, 0, 1110, 
-  1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 1093, 1093, 0, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  0, 0, 0, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 0, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 0, 339, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  0, 0, 0, 1166, 0, 0, 0, 0, 
-  1167, 1093, 1093, 1090, 1090, 1090, 0, 1090, 
-  0, 1093, 1168, 1169, 1093, 1170, 1171, 1172, 
-  1173, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 1093, 1093, 990, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 1090, 339, 1174, 1090, 1090, 1090, 
-  1090, 1175, 1175, 1101, 0, 0, 0, 0, 
-  10, 339, 339, 339, 339, 339, 339, 507, 
-  1090, 1176, 1176, 1176, 1176, 1090, 1090, 1090, 
-  990, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 1110, 1110, 990, 990, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 339, 339, 0, 339, 0, 0, 
-  339, 339, 0, 339, 0, 0, 339, 0, 
-  0, 0, 0, 0, 0, 339, 339, 339, 
-  339, 0, 339, 339, 339, 339, 339, 339, 
-  339, 0, 339, 339, 339, 0, 339, 0, 
-  339, 0, 0, 339, 339, 0, 339, 339, 
-  339, 339, 1090, 339, 1177, 1090, 1090, 1090, 
-  1090, 1178, 1178, 0, 1090, 1090, 339, 0, 
-  0, 339, 339, 339, 339, 339, 0, 507, 
-  0, 1179, 1179, 1179, 1179, 1090, 1090, 0, 
-  0, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 1110, 1110, 0, 0, 1180, 1181, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 812, 812, 812, 990, 990, 990, 
-  990, 990, 990, 990, 990, 1182, 990, 990, 
-  990, 990, 990, 990, 812, 812, 812, 812, 
-  812, 537, 537, 812, 812, 812, 812, 812, 
-  812, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 1110, 1110, 1120, 1120, 1120, 1120, 1120, 
-  1120, 1120, 1120, 1120, 1120, 812, 537, 812, 
-  537, 812, 1183, 11, 12, 11, 12, 1093, 
-  1093, 339, 339, 339, 1184, 339, 339, 339, 
-  339, 0, 339, 339, 339, 339, 1185, 339, 
-  339, 339, 339, 1186, 339, 339, 339, 339, 
-  1187, 339, 339, 339, 339, 1188, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 1189, 339, 0, 0, 0, 0, 
-  0, 0, 1190, 1191, 1192, 1193, 1194, 1195, 
-  1196, 1197, 1198, 1191, 1191, 1191, 1191, 1090, 
-  1093, 1191, 1199, 524, 524, 1101, 990, 524, 
-  524, 339, 339, 339, 339, 0, 0, 0, 
-  0, 1090, 1090, 1090, 1200, 1090, 1090, 1090, 
-  1090, 0, 1090, 1090, 1090, 1090, 1201, 1090, 
-  1090, 1090, 1090, 1202, 1090, 1090, 1090, 1090, 
-  1203, 1090, 1090, 1090, 1090, 1204, 1090, 1090, 
-  1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 
-  1090, 1090, 1205, 1090, 1090, 1090, 0, 812, 
-  812, 812, 812, 812, 812, 812, 812, 537, 
-  812, 812, 812, 812, 812, 812, 0, 0, 
-  812, 990, 990, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 0, 339, 339, 1206, 1207, 
-  339, 0, 339, 339, 0, 1093, 1090, 1208, 
-  1090, 1090, 1093, 1090, 0, 0, 0, 1090, 
-  1111, 1093, 1101, 0, 0, 0, 0, 0, 
-  0, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 1110, 1110, 990, 990, 990, 990, 990, 
-  990, 339, 339, 339, 339, 339, 339, 1093, 
-  1093, 1090, 1090, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 
-  1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 
-  1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 
-  1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 
-  1240, 1241, 1242, 1243, 1244, 1245, 1246, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 990, 1247, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 0, 0, 0, 0, 0, 
-  1248, 1248, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 339, 339, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  0, 339, 0, 339, 339, 339, 339, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 339, 339, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 339, 339, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  0, 339, 0, 339, 339, 339, 339, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 0, 339, 339, 339, 339, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 0, 0, 0, 0, 
-  524, 812, 990, 990, 990, 990, 990, 990, 
-  990, 990, 1120, 1120, 1120, 1120, 1120, 1120, 
-  1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 
-  1120, 1120, 1120, 1120, 1120, 1120, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 990, 990, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 7, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 11, 12, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 990, 990, 990, 1249, 
-  1249, 1249, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 0, 339, 
-  339, 339, 339, 1090, 1090, 1101, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 1090, 1090, 1101, 990, 990, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 1090, 1090, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 0, 339, 
-  339, 339, 0, 1090, 1090, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 1250, 1250, 1093, 
-  1090, 1090, 1090, 1090, 1090, 1090, 1090, 1093, 
-  1093, 1093, 1093, 1093, 1093, 1093, 1093, 1090, 
-  1093, 1093, 1090, 1090, 1090, 1090, 1090, 1090, 
-  1090, 1090, 1090, 1101, 1090, 990, 990, 990, 
-  507, 990, 990, 990, 10, 339, 524, 0, 
-  0, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 1110, 1110, 0, 0, 0, 0, 0, 
-  0, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 
-  1251, 1251, 1251, 0, 0, 0, 0, 0, 
-  0, 8, 8, 8, 8, 8, 8, 1030, 
-  8, 8, 8, 8, 558, 558, 558, 7, 
-  0, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 1110, 1110, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 507, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 1032, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 0, 0, 
-  0, 1090, 1090, 1090, 1093, 1093, 1093, 1093, 
-  1090, 1090, 1252, 1252, 1252, 0, 0, 0, 
-  0, 1093, 1093, 1090, 1093, 1093, 1093, 1093, 
-  1093, 1093, 1031, 524, 537, 0, 0, 0, 
-  0, 76, 0, 0, 0, 8, 8, 1110, 
-  1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 0, 
-  0, 339, 339, 339, 339, 339, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 0, 0, 0, 0, 0, 
-  0, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 
-  1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 
-  1093, 1093, 339, 339, 339, 339, 339, 339, 
-  339, 1093, 1093, 0, 0, 0, 0, 0, 
-  0, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 1110, 1110, 0, 0, 0, 0, 8, 
-  8, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  524, 537, 1093, 1093, 1093, 0, 0, 990, 
-  990, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1090, 1090, 1090, 1090, 1093, 1253, 1254, 
-  1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 
-  339, 339, 1263, 1264, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 1111, 1265, 1090, 
-  1090, 1090, 1090, 1266, 1267, 1268, 1269, 1270, 
-  1271, 1272, 1273, 1274, 1275, 1276, 339, 339, 
-  339, 339, 339, 339, 339, 0, 0, 0, 
-  0, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 1110, 1110, 990, 990, 990, 990, 990, 
-  990, 990, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 524, 537, 524, 524, 
-  524, 524, 524, 524, 524, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 213, 213, 213, 213, 213, 213, 213, 
-  213, 213, 213, 213, 213, 213, 213, 213, 
-  213, 213, 213, 213, 213, 213, 213, 213, 
-  213, 213, 213, 213, 213, 213, 213, 213, 
-  213, 213, 213, 213, 213, 213, 213, 213, 
-  213, 213, 213, 213, 213, 1277, 1278, 1279, 
-  507, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 
-  1287, 1288, 1289, 1290, 507, 1291, 1292, 1293, 
-  1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 
-  1302, 1303, 1304, 1305, 1306, 1307, 1308, 507, 
-  1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 
-  1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 
-  1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 
-  1333, 1334, 1335, 1336, 213, 213, 213, 213, 
-  213, 213, 213, 213, 213, 213, 213, 213, 
-  213, 1337, 213, 213, 213, 213, 1338, 213, 
-  213, 213, 213, 213, 213, 213, 213, 213, 
-  213, 213, 213, 213, 213, 213, 213, 213, 
-  213, 213, 213, 213, 213, 213, 213, 213, 
-  213, 213, 213, 213, 1339, 1340, 1341, 1342, 
-  1307, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 
-  1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 
-  1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 
-  1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 
-  1374, 524, 524, 537, 524, 524, 524, 524, 
-  524, 524, 524, 537, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 524, 
-  537, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 
-  1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 
-  1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 
-  1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 
-  1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 
-  1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 
-  1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 
-  1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 
-  1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 
-  1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 
-  1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 
-  1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 
-  1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 
-  1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 
-  1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 
-  1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 
-  1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 
-  1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 
-  1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 
-  1526, 1527, 1528, 1529, 1530, 0, 0, 0, 
-  0, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 
-  1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 
-  1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 
-  1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 
-  1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 
-  1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 
-  1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 
-  1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 
-  1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 
-  1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 
-  1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 
-  1618, 1619, 1620, 0, 0, 0, 0, 0, 
-  0, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 
-  1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 
-  1636, 1637, 1638, 1639, 1640, 1641, 1642, 0, 
-  0, 1643, 1644, 1645, 1646, 1647, 1648, 0, 
-  0, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 
-  1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 
-  1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 
-  1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 
-  1680, 1681, 1682, 1683, 1684, 1685, 1686, 0, 
-  0, 1687, 1688, 1689, 1690, 1691, 1692, 0, 
-  0, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 
-  1700, 0, 1701, 0, 1702, 0, 1703, 0, 
-  1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 
-  1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 
-  1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 
-  1728, 1729, 1730, 1731, 1732, 1733, 1734, 0, 
-  0, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 
-  1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 
-  1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 
-  1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 
-  1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 
-  1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 
-  1782, 1783, 1784, 1785, 1786, 1787, 0, 1788, 
-  1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 
-  1797, 1798, 1799, 1800, 1801, 1802, 0, 1803, 
-  1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 
-  1812, 1813, 1814, 1815, 1816, 0, 0, 1817, 
-  1818, 1819, 1820, 1821, 1822, 0, 1823, 1824, 
-  1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 
-  1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 
-  1841, 0, 0, 1842, 1843, 1844, 0, 1845, 
-  1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 
-  0, 1854, 1855, 1856, 1856, 1856, 1856, 1856, 
-  1857, 1856, 1856, 1856, 80, 1858, 1858, 1250, 
-  1859, 1030, 1860, 1030, 1030, 1030, 1030, 8, 
-  1861, 79, 91, 11, 79, 79, 91, 11, 
-  79, 8, 8, 8, 8, 1862, 1863, 1864, 
-  8, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 
-  75, 9, 9, 9, 1872, 1873, 8, 1874, 
-  1875, 8, 79, 91, 8, 1876, 8, 1877, 
-  47, 47, 8, 8, 8, 1878, 11, 12, 
-  1879, 1880, 1881, 8, 8, 8, 8, 8, 
-  8, 8, 8, 74, 8, 47, 8, 8, 
-  1882, 8, 8, 8, 8, 8, 8, 8, 
-  1856, 80, 80, 80, 80, 0, 0, 0, 
-  0, 0, 0, 80, 80, 80, 80, 80, 
-  80, 1883, 1884, 0, 0, 1885, 1886, 1887, 
-  1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 
-  1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 
-  1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 
-  0, 1912, 1913, 1914, 1915, 1916, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 10, 10, 10, 10, 10, 10, 10, 
-  10, 1917, 10, 10, 10, 10, 10, 10, 
-  10, 10, 10, 10, 10, 10, 10, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 524, 524, 550, 550, 524, 524, 524, 
-  524, 550, 550, 550, 524, 524, 813, 813, 
-  813, 813, 524, 813, 813, 813, 550, 550, 
-  524, 537, 524, 550, 550, 537, 537, 537, 
-  537, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1918, 1919, 1920, 1921, 76, 1922, 1923, 
-  1924, 76, 1925, 1926, 1927, 1927, 1927, 1928, 
-  1929, 1930, 1930, 1931, 1932, 76, 1933, 1934, 
-  76, 76, 1935, 1936, 1937, 1937, 1937, 76, 
-  76, 1938, 1939, 1940, 76, 1941, 76, 1942, 
-  76, 1941, 76, 1943, 1944, 1945, 1920, 82, 
-  1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 
-  1954, 1955, 1956, 76, 1957, 1958, 1959, 1960, 
-  1961, 1962, 74, 74, 74, 74, 1963, 1964, 
-  1946, 1956, 1965, 76, 74, 76, 76, 1966, 
-  0, 0, 0, 0, 1967, 1968, 1969, 1970, 
-  1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 
-  1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 
-  1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 
-  1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 
-  2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 
-  2011, 1249, 1249, 1249, 2012, 2013, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 2014, 74, 2015, 74, 2016, 76, 76, 
-  76, 76, 76, 2017, 2018, 76, 76, 76, 
-  76, 74, 76, 76, 74, 76, 76, 74, 
-  76, 76, 76, 76, 76, 76, 76, 2019, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 2020, 2021, 
-  2022, 2023, 76, 2024, 76, 2025, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 2026, 2026, 2027, 2028, 74, 74, 
-  74, 2029, 2030, 2026, 2031, 2032, 2026, 74, 
-  74, 74, 2026, 13, 83, 74, 2026, 2026, 
-  74, 74, 74, 2026, 2026, 2026, 2026, 74, 
-  2026, 2026, 2026, 2026, 2033, 2034, 2035, 2036, 
-  74, 74, 74, 74, 2026, 2037, 2038, 2026, 
-  2039, 2040, 2026, 2026, 2026, 74, 74, 74, 
-  74, 74, 2026, 74, 2026, 2041, 2026, 2026, 
-  2026, 2026, 2042, 2026, 2043, 2044, 2045, 2026, 
-  2046, 2047, 2048, 2026, 2026, 2026, 2049, 74, 
-  74, 74, 74, 2026, 2026, 2026, 2026, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  2026, 2050, 2051, 2052, 74, 2053, 2054, 2026, 
-  2026, 2026, 2026, 2026, 2026, 74, 2055, 2056, 
-  2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 
-  2065, 2066, 2067, 2068, 2069, 2070, 2071, 2026, 
-  2026, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 
-  2079, 2080, 2081, 2026, 2026, 2026, 74, 74, 
-  2026, 2026, 2082, 2083, 74, 74, 74, 74, 
-  74, 2026, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 2084, 2026, 74, 74, 2026, 
-  2026, 2085, 2086, 2026, 2087, 2088, 2089, 2090, 
-  2091, 2026, 2026, 2092, 2093, 2094, 2095, 2026, 
-  2026, 2026, 74, 74, 74, 74, 74, 2026, 
-  2026, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 2026, 2026, 2026, 2026, 2026, 74, 
-  74, 2026, 2026, 74, 74, 74, 74, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2096, 2097, 2098, 2099, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2100, 2101, 2102, 2103, 74, 
-  74, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 76, 76, 76, 76, 76, 76, 76, 
-  76, 2026, 2026, 2026, 2026, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 2026, 2026, 76, 76, 76, 76, 76, 
-  76, 76, 2104, 2105, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 76, 74, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 812, 76, 
-  76, 76, 76, 76, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 74, 74, 74, 
-  74, 74, 74, 76, 76, 76, 76, 76, 
-  76, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 
-  2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 
-  2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 
-  2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 
-  2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 
-  2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 
-  2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 
-  2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 
-  2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 
-  2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 
-  2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 
-  2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 
-  2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 
-  2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 
-  2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 
-  2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 
-  2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 
-  2241, 2242, 2243, 2244, 1251, 1251, 1251, 1251, 
-  1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 
-  1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 
-  1251, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  74, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 74, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 74, 74, 74, 74, 74, 74, 74, 
-  74, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  74, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 0, 0, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 812, 76, 76, 
-  76, 76, 76, 76, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 76, 76, 76, 76, 0, 76, 
-  76, 76, 76, 0, 0, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 0, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 0, 76, 0, 
-  76, 76, 76, 76, 0, 0, 0, 76, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  0, 0, 76, 76, 76, 76, 76, 76, 
-  76, 11, 12, 11, 12, 11, 12, 11, 
-  12, 11, 12, 11, 12, 11, 12, 1251, 
-  1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 
-  1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 
-  1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 
-  1251, 1251, 1251, 1251, 1251, 76, 0, 0, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 0, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  0, 2026, 74, 74, 2026, 2026, 11, 12, 
-  74, 74, 74, 74, 0, 0, 0, 0, 
-  0, 74, 74, 74, 2026, 2026, 2026, 2026, 
-  74, 74, 74, 74, 74, 2026, 2026, 2026, 
-  74, 74, 74, 2026, 2026, 2026, 2026, 11, 
-  12, 11, 12, 11, 12, 0, 0, 0, 
-  0, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 11, 12, 11, 12, 
-  11, 12, 11, 12, 11, 12, 11, 12, 
-  11, 12, 11, 12, 11, 12, 11, 12, 
-  11, 12, 74, 74, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 74, 74, 74, 74, 74, 74, 74, 
-  74, 2026, 74, 74, 74, 74, 74, 74, 
-  74, 2026, 2026, 2026, 2026, 2026, 2026, 74, 
-  74, 74, 2026, 74, 74, 74, 74, 2026, 
-  2026, 2026, 2026, 2026, 74, 2026, 2026, 74, 
-  74, 11, 12, 11, 12, 2026, 74, 74, 
-  74, 74, 2026, 74, 2026, 2026, 2026, 74, 
-  74, 2026, 2026, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 2026, 2026, 2026, 
-  2026, 2026, 2026, 74, 74, 11, 12, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 2026, 2026, 2245, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 74, 2026, 
-  2026, 2026, 2026, 74, 74, 2026, 74, 2026, 
-  74, 74, 2026, 74, 2026, 2026, 2026, 2026, 
-  74, 74, 74, 74, 74, 2026, 2026, 74, 
-  74, 74, 74, 74, 74, 2026, 2026, 2026, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 74, 74, 74, 
-  2026, 2026, 74, 74, 74, 74, 74, 74, 
-  74, 74, 74, 74, 74, 2026, 2026, 74, 
-  74, 74, 74, 2026, 2026, 2026, 2026, 74, 
-  2026, 2026, 74, 74, 2026, 2246, 2247, 2248, 
-  74, 74, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 74, 74, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 74, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 
-  74, 74, 74, 74, 74, 2249, 2250, 2026, 
-  74, 74, 74, 2026, 2026, 2026, 2026, 2026, 
-  74, 74, 74, 74, 74, 2026, 2026, 2026, 
-  74, 74, 74, 74, 2026, 74, 74, 74, 
-  2026, 2026, 2026, 2026, 2026, 74, 2026, 74, 
-  74, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 0, 0, 0, 0, 
-  0, 76, 76, 76, 76, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 
-  2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 
-  2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 
-  2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 
-  2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 
-  2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 
-  0, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 
-  2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 
-  2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 
-  2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 
-  2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 
-  2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 
-  0, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 
-  2352, 2353, 2354, 2355, 2356, 2357, 0, 0, 
-  0, 0, 0, 0, 0, 213, 2358, 2359, 
-  213, 0, 0, 0, 0, 0, 0, 0, 
-  0, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 
-  2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 
-  2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 
-  2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 
-  2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 
-  2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 
-  2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 
-  2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 
-  2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 
-  2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 
-  2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 
-  2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 
-  2455, 2456, 2457, 2458, 2459, 213, 76, 76, 
-  76, 76, 76, 76, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 8, 8, 8, 8, 1251, 8, 
-  8, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 
-  2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 
-  2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 
-  2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 
-  2491, 2492, 2493, 2494, 2495, 2496, 2497, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  2498, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 8, 8, 79, 91, 79, 91, 8, 
-  8, 8, 79, 91, 8, 79, 91, 8, 
-  8, 8, 8, 8, 8, 8, 8, 8, 
-  1030, 0, 0, 0, 0, 79, 91, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 0, 76, 76, 76, 76, 
-  2499, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 2500, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 
-  2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 
-  2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 
-  2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 
-  2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 
-  2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 
-  2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 
-  2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 
-  2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 
-  2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 
-  2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 
-  2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 
-  2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 
-  2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 
-  2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 
-  2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 
-  2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 
-  2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 
-  2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 
-  2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 
-  2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 
-  2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 
-  2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 
-  2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 
-  2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 
-  2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 
-  2708, 2709, 2710, 2711, 2712, 2713, 2714, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 0, 0, 0, 
-  0, 2715, 8, 8, 8, 76, 507, 339, 
-  1249, 11, 12, 11, 12, 11, 12, 11, 
-  12, 11, 12, 76, 76, 11, 12, 11, 
-  12, 11, 12, 11, 12, 1030, 11, 12, 
-  12, 76, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 2716, 1032, 536, 1031, 2717, 
-  2717, 1030, 507, 507, 507, 507, 507, 2718, 
-  76, 2719, 2720, 2721, 507, 339, 8, 76, 
-  76, 0, 339, 339, 339, 339, 339, 2722, 
-  339, 339, 339, 339, 2723, 2724, 2725, 2726, 
-  2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 
-  2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 
-  2743, 2744, 2745, 2746, 339, 2747, 2748, 2749, 
-  2750, 2751, 2752, 339, 339, 339, 339, 339, 
-  2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 
-  2761, 2762, 2763, 2764, 2765, 2766, 2767, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 2768, 339, 339, 
-  0, 0, 2769, 2770, 2771, 2772, 2773, 2774, 
-  2775, 1030, 339, 339, 339, 339, 339, 2776, 
-  339, 339, 339, 339, 2777, 2778, 2779, 2780, 
-  2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 
-  2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 
-  2797, 2798, 2799, 2800, 339, 2801, 2802, 2803, 
-  2804, 2805, 2806, 339, 339, 339, 339, 339, 
-  2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 
-  2815, 2816, 2817, 2818, 2819, 2820, 2821, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  2822, 2823, 2824, 2825, 339, 2826, 339, 339, 
-  2827, 2828, 2829, 2830, 8, 507, 2831, 2832, 
-  2833, 0, 0, 0, 0, 0, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 0, 0, 
-  0, 0, 2834, 2835, 2836, 2837, 2838, 2839, 
-  2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 
-  2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 
-  2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 
-  2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 
-  2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 
-  2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 
-  2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 
-  2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 
-  2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 
-  2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 
-  2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 
-  0, 812, 812, 2928, 2929, 2930, 2931, 2932, 
-  2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 
-  2941, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 0, 0, 0, 0, 0, 0, 0, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 
-  2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 
-  2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 
-  2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 
-  0, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 
-  2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 
-  2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 
-  2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 
-  3004, 3005, 3006, 3007, 3008, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 
-  3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 
-  3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 
-  3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 
-  3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 
-  3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 
-  812, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 
-  3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 
-  3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 
-  3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 
-  3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 
-  3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 
-  3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 
-  3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 
-  3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 
-  3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 
-  3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 
-  3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 
-  3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 
-  3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 
-  3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 
-  3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 
-  0, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 
-  3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 
-  3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 
-  3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 
-  3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 
-  3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 
-  3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 
-  3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 
-  3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 
-  3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 
-  3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 
-  3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 
-  3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 
-  3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 
-  3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 
-  3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 
-  3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 
-  3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 
-  3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 
-  3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 
-  3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 
-  3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 
-  3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 
-  3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 
-  3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 
-  3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 
-  3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 
-  3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 
-  3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 
-  3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 
-  3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 
-  3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 
-  3438, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 507, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 0, 0, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 46, 46, 46, 46, 46, 46, 46, 
-  46, 46, 46, 46, 46, 46, 46, 46, 
-  46, 46, 46, 46, 46, 46, 46, 46, 
-  506, 506, 506, 506, 0, 0, 0, 0, 
-  0, 46, 46, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 1252, 339, 339, 339, 1101, 
-  339, 339, 339, 339, 1090, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 1093, 1093, 1090, 1090, 
-  1093, 76, 76, 76, 76, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 8, 8, 8, 
-  8, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 
-  3439, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 
-  3448, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 
-  3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 
-  3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 
-  3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 
-  3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 
-  3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 
-  3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 
-  3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 
-  3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 
-  3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 
-  3527, 3528, 3529, 3530, 3531, 3460, 3532, 3533, 
-  3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 
-  3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 
-  3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 
-  3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 
-  3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 
-  3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 
-  3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 
-  3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 
-  3598, 3599, 3550, 3600, 3601, 3602, 3603, 3604, 
-  3605, 3606, 3607, 3534, 3608, 3609, 3610, 3611, 
-  3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 
-  3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 
-  3460, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 
-  3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 
-  3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 
-  3651, 3652, 3653, 3654, 3536, 3655, 3656, 3657, 
-  3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 
-  3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 
-  3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 
-  3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 
-  3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 
-  3698, 3699, 3700, 3701, 3702, 3703, 3704, 339, 
-  339, 3705, 339, 3706, 339, 339, 3707, 3708, 
-  3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 
-  339, 3717, 339, 3718, 339, 339, 3719, 3720, 
-  339, 339, 339, 3721, 3722, 3723, 3724, 0, 
-  0, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 
-  3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 
-  3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 
-  3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 
-  3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 
-  3589, 3764, 3765, 3766, 3767, 3768, 3769, 3769, 
-  3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 
-  3719, 3778, 3779, 3780, 0, 0, 0, 0, 
-  0, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 
-  3788, 3731, 3789, 3790, 3791, 3705, 3792, 3793, 
-  3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 
-  3802, 3803, 3740, 3804, 3741, 3805, 3806, 3807, 
-  3808, 3809, 3706, 3481, 3810, 3811, 3812, 3551, 
-  3638, 3813, 3814, 3748, 3815, 3749, 3816, 3817, 
-  3818, 3708, 3819, 3820, 3821, 3822, 3823, 3709, 
-  3824, 3825, 3826, 3827, 3828, 3829, 3763, 3830, 
-  3831, 3589, 3832, 3767, 3833, 3834, 3835, 3836, 
-  3837, 3772, 3838, 3718, 3839, 3773, 3532, 3840, 
-  3774, 3841, 3776, 3842, 3843, 3844, 3845, 3846, 
-  3778, 3714, 3847, 3779, 3848, 3780, 3849, 3448, 
-  3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 
-  3858, 3859, 3860, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 3868, 3869, 3870, 3871, 
-  3872, 0, 0, 0, 0, 0, 3873, 3874, 
-  3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 
-  3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 
-  3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 
-  0, 3899, 3900, 3901, 3902, 3903, 0, 3904, 
-  0, 3905, 3906, 0, 3907, 3908, 0, 3909, 
-  3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 
-  3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 
-  3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 
-  3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 
-  3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 
-  3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 
-  3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 
-  3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 
-  3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 
-  3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 
-  3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 
-  3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 
-  4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 
-  4014, 4015, 4016, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 4017, 4018, 4019, 4020, 
-  4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 
-  4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 
-  4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 
-  4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 
-  4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 
-  4061, 4062, 4063, 4064, 4055, 4065, 4066, 4067, 
-  4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 
-  4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 
-  4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 
-  4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 
-  4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 
-  4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 
-  4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 
-  4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 
-  4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 
-  4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 
-  4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 
-  4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 
-  4164, 4056, 4165, 4166, 4167, 4168, 4169, 4170, 
-  4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 
-  4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 
-  4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 
-  4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 
-  4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 
-  4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 
-  4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 
-  4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 
-  4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 
-  4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 
-  4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 
-  4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 
-  4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 
-  4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 
-  4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 
-  4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 
-  4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 
-  4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 
-  4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 
-  4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 
-  4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 
-  4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 
-  4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 
-  4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 
-  4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 
-  4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 
-  4379, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 
-  4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 
-  4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 
-  4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 
-  4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 
-  4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 
-  4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 
-  4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 
-  4443, 0, 0, 4444, 4445, 4446, 4447, 4448, 
-  4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 
-  4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 
-  4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 
-  4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 
-  4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 
-  4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 
-  4497, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 
-  4505, 4506, 4507, 4508, 4509, 4510, 76, 0, 
-  0, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 
-  4518, 4519, 4520, 0, 0, 0, 0, 0, 
-  0, 524, 524, 524, 524, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 4521, 4522, 4523, 4524, 4524, 4525, 4526, 
-  4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 
-  4535, 4536, 4537, 4538, 4539, 4540, 8, 8, 
-  4541, 4542, 4543, 4543, 4543, 4543, 4544, 4544, 
-  4544, 4545, 4546, 4547, 0, 4548, 4549, 4550, 
-  4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 
-  4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 
-  0, 4567, 4568, 4569, 4570, 0, 0, 0, 
-  0, 4571, 4572, 4573, 1054, 4574, 0, 4575, 
-  4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 
-  4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 
-  4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 
-  4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 
-  4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 
-  4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 
-  4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 
-  4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 
-  4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 
-  4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 
-  4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 
-  4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 
-  4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 
-  4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 
-  4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 
-  4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 
-  4704, 4705, 4706, 4707, 4708, 4709, 0, 0, 
-  80, 0, 4710, 4711, 4712, 4713, 4714, 4715, 
-  4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 
-  4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 
-  4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 
-  4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 
-  4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 
-  4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 
-  4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 
-  4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 
-  4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 
-  4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 
-  4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 
-  4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 
-  4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 
-  4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 
-  4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 
-  4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 
-  4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 
-  4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 
-  4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 
-  4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 
-  4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 
-  4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 
-  4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 
-  0, 0, 0, 4900, 4901, 4902, 4903, 4904, 
-  4905, 0, 0, 4906, 4907, 4908, 4909, 4910, 
-  4911, 0, 0, 4912, 4913, 4914, 4915, 4916, 
-  4917, 0, 0, 4918, 4919, 4920, 0, 0, 
-  0, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 
-  0, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 4935, 4935, 4935, 76, 76, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 0, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 0, 339, 339, 0, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 0, 0, 0, 0, 
-  0, 990, 8, 812, 0, 0, 0, 0, 
-  1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 
-  1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 
-  1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 
-  1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 
-  1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 
-  1120, 1120, 1120, 1120, 1120, 0, 0, 0, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 4936, 4936, 4936, 4936, 4936, 4936, 4936, 
-  4936, 4936, 4936, 4936, 4936, 4936, 4936, 4936, 
-  4936, 4936, 4936, 4936, 4936, 4936, 4936, 4936, 
-  4936, 4936, 4936, 4936, 4936, 4936, 4936, 4936, 
-  4936, 4936, 4936, 4936, 4936, 4936, 4936, 4936, 
-  4936, 4936, 4936, 4936, 4936, 4936, 4936, 4936, 
-  4936, 4936, 4936, 4936, 4936, 4936, 1251, 1251, 
-  1251, 1251, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 1251, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  0, 1120, 1120, 1120, 1120, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 1249, 339, 339, 339, 339, 339, 
-  339, 339, 339, 1249, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 0, 
-  990, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 990, 1249, 1249, 1249, 1249, 1249, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 
-  4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 
-  4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 
-  4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 
-  4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 
-  4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 
-  4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 
-  4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 
-  5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 
-  5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 
-  5016, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 0, 
-  0, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 
-  1110, 1110, 1110, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1050, 1050, 1050, 1050, 1050, 1050, 0, 
-  0, 1050, 0, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 0, 
-  1050, 1050, 0, 0, 0, 1050, 0, 0, 
-  1050, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 5017, 
-  5017, 5017, 5017, 0, 0, 0, 0, 0, 
-  8, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1050, 1090, 1090, 1090, 0, 1090, 1090, 
-  0, 0, 0, 0, 0, 1090, 537, 1090, 
-  524, 1050, 1050, 1050, 1050, 0, 1050, 1050, 
-  1050, 0, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 
-  1050, 1050, 1050, 1050, 1050, 0, 0, 0, 
-  0, 524, 550, 537, 0, 0, 0, 0, 
-  1101, 5017, 5017, 5017, 5017, 5017, 5017, 5017, 
-  5017, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 
-  1046, 1046, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 
-  1249, 1249, 1249, 1249, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 990, 990, 990, 990, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  0, 0, 0, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  5018, 5019, 812, 812, 812, 812, 812, 5020, 
-  5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 
-  550, 550, 550, 812, 812, 812, 5029, 5030, 
-  5031, 5032, 5033, 5034, 80, 80, 80, 80, 
-  80, 80, 80, 80, 537, 537, 537, 537, 
-  537, 537, 537, 537, 812, 812, 524, 524, 
-  524, 524, 524, 537, 537, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 524, 524, 524, 524, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 5035, 5036, 5037, 5038, 5039, 5040, 
-  5041, 5042, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 812, 
-  812, 812, 812, 812, 812, 812, 812, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 524, 524, 524, 76, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  76, 76, 76, 76, 76, 76, 76, 76, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 
-  1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 
-  1120, 1120, 1120, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 5043, 1945, 1920, 1963, 1947, 1948, 5044, 
-  1927, 1930, 5045, 5046, 1931, 1950, 1933, 5047, 
-  1935, 1936, 1937, 5048, 5049, 5050, 5051, 5052, 
-  5053, 5054, 1941, 5055, 5056, 5057, 1964, 1946, 
-  5058, 1926, 1928, 1956, 1965, 5059, 1932, 5060, 
-  5061, 1951, 5062, 5063, 5064, 5065, 5066, 5067, 
-  5068, 5069, 5070, 5071, 5072, 5043, 1945, 1920, 
-  1963, 1947, 1948, 5044, 1927, 1930, 5045, 5046, 
-  1931, 1950, 1933, 5047, 1935, 1936, 1937, 5048, 
-  5049, 5050, 5051, 5052, 5053, 5054, 1941, 5055, 
-  5056, 5057, 1964, 1946, 5058, 1926, 0, 1956, 
-  1965, 5059, 1932, 5060, 5061, 1951, 5062, 5063, 
-  5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 
-  5072, 5043, 1945, 1920, 1963, 1947, 1948, 5044, 
-  1927, 1930, 5045, 5046, 1931, 1950, 1933, 5047, 
-  1935, 1936, 1937, 5048, 5049, 5050, 5051, 5052, 
-  5053, 5054, 1941, 5055, 5056, 5057, 1964, 1946, 
-  5058, 1926, 1928, 1956, 1965, 5059, 1932, 5060, 
-  5061, 1951, 5062, 5063, 5064, 5065, 5066, 5067, 
-  5068, 5069, 5070, 5071, 5072, 5043, 0, 1920, 
-  1963, 0, 0, 5044, 0, 0, 5045, 5046, 
-  0, 0, 1933, 5047, 1935, 1936, 0, 5048, 
-  5049, 5050, 5051, 5052, 5053, 5054, 1941, 5055, 
-  5056, 5057, 1964, 0, 5058, 0, 1928, 1956, 
-  1965, 5059, 1932, 5060, 5061, 0, 5062, 5063, 
-  5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 
-  5072, 5043, 1945, 1920, 1963, 1947, 1948, 5044, 
-  1927, 1930, 5045, 5046, 1931, 1950, 1933, 5047, 
-  1935, 1936, 1937, 5048, 5049, 5050, 5051, 5052, 
-  5053, 5054, 1941, 5055, 5056, 5057, 1964, 1946, 
-  5058, 1926, 1928, 1956, 1965, 5059, 1932, 5060, 
-  5061, 1951, 5062, 5063, 5064, 5065, 5066, 5067, 
-  5068, 5069, 5070, 5071, 5072, 5043, 1945, 0, 
-  1963, 1947, 1948, 5044, 0, 0, 5045, 5046, 
-  1931, 1950, 1933, 5047, 1935, 1936, 0, 5048, 
-  5049, 5050, 5051, 5052, 5053, 5054, 0, 5055, 
-  5056, 5057, 1964, 1946, 5058, 1926, 1928, 1956, 
-  1965, 5059, 1932, 5060, 5061, 1951, 5062, 5063, 
-  5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 
-  5072, 5043, 1945, 0, 1963, 1947, 1948, 5044, 
-  0, 1930, 5045, 5046, 1931, 1950, 0, 5047, 
-  0, 0, 0, 5048, 5049, 5050, 5051, 5052, 
-  5053, 5054, 0, 5055, 5056, 5057, 1964, 1946, 
-  5058, 1926, 1928, 1956, 1965, 5059, 1932, 5060, 
-  5061, 1951, 5062, 5063, 5064, 5065, 5066, 5067, 
-  5068, 5069, 5070, 5071, 5072, 5043, 1945, 1920, 
-  1963, 1947, 1948, 5044, 1927, 1930, 5045, 5046, 
-  1931, 1950, 1933, 5047, 1935, 1936, 1937, 5048, 
-  5049, 5050, 5051, 5052, 5053, 5054, 1941, 5055, 
-  5056, 5057, 1964, 1946, 5058, 1926, 1928, 1956, 
-  1965, 5059, 1932, 5060, 5061, 1951, 5062, 5063, 
-  5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 
-  5072, 5043, 1945, 1920, 1963, 1947, 1948, 5044, 
-  1927, 1930, 5045, 5046, 1931, 1950, 1933, 5047, 
-  1935, 1936, 1937, 5048, 5049, 5050, 5051, 5052, 
-  5053, 5054, 1941, 5055, 5056, 5057, 1964, 1946, 
-  5058, 1926, 1928, 1956, 1965, 5059, 1932, 5060, 
-  5061, 1951, 5062, 5063, 5064, 5065, 5066, 5067, 
-  5068, 5069, 5070, 5071, 5072, 5043, 1945, 1920, 
-  1963, 1947, 1948, 5044, 1927, 1930, 5045, 5046, 
-  1931, 1950, 1933, 5047, 1935, 1936, 1937, 5048, 
-  5049, 5050, 5051, 5052, 5053, 5054, 1941, 5055, 
-  5056, 5057, 1964, 1946, 5058, 1926, 1928, 1956, 
-  1965, 5059, 1932, 5060, 5061, 1951, 5062, 5063, 
-  5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 
-  5072, 5043, 1945, 1920, 1963, 1947, 1948, 5044, 
-  1927, 1930, 5045, 5046, 1931, 1950, 1933, 5047, 
-  1935, 1936, 1937, 5048, 5049, 5050, 5051, 5052, 
-  5053, 5054, 1941, 5055, 5056, 5057, 1964, 1946, 
-  5058, 1926, 1928, 1956, 1965, 5059, 1932, 5060, 
-  5061, 1951, 5062, 5063, 5064, 5065, 5066, 5067, 
-  5068, 5069, 5070, 5071, 5072, 5043, 1945, 1920, 
-  1963, 1947, 1948, 5044, 1927, 1930, 5045, 5046, 
-  1931, 1950, 1933, 5047, 1935, 1936, 1937, 5048, 
-  5049, 5050, 5051, 5052, 5053, 5054, 1941, 5055, 
-  5056, 5057, 1964, 1946, 5058, 1926, 1928, 1956, 
-  1965, 5059, 1932, 5060, 5061, 1951, 5062, 5063, 
-  5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 
-  5072, 5043, 1945, 1920, 1963, 1947, 1948, 5044, 
-  1927, 1930, 5045, 5046, 1931, 1950, 1933, 5047, 
-  1935, 1936, 1937, 5048, 5049, 5050, 5051, 5052, 
-  5053, 5054, 1941, 5055, 5056, 5057, 1964, 1946, 
-  5058, 1926, 1928, 1956, 1965, 5059, 1932, 5060, 
-  5061, 1951, 5062, 5063, 5064, 5065, 5066, 5067, 
-  5068, 5069, 5070, 5071, 5072, 5073, 5074, 0, 
-  0, 5075, 5076, 1960, 5077, 5078, 5079, 5080, 
-  5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 
-  1961, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 
-  5096, 5097, 5098, 5099, 5100, 1959, 5101, 5102, 
-  5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 
-  5111, 5112, 1958, 5113, 5114, 5115, 5116, 5117, 
-  5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 
-  5126, 5127, 5128, 5075, 5076, 1960, 5077, 5078, 
-  5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 
-  5087, 5088, 1961, 5089, 5090, 5091, 5092, 5093, 
-  5094, 5095, 5096, 5097, 5098, 5099, 5100, 1959, 
-  5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 
-  5109, 5110, 5111, 5112, 1958, 5113, 5114, 5115, 
-  5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 
-  5124, 5125, 5126, 5127, 5128, 5075, 5076, 1960, 
-  5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 
-  5085, 5086, 5087, 5088, 1961, 5089, 5090, 5091, 
-  5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 
-  5100, 1959, 5101, 5102, 5103, 5104, 5105, 5106, 
-  5107, 5108, 5109, 5110, 5111, 5112, 1958, 5113, 
-  5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 
-  5122, 5123, 5124, 5125, 5126, 5127, 5128, 5075, 
-  5076, 1960, 5077, 5078, 5079, 5080, 5081, 5082, 
-  5083, 5084, 5085, 5086, 5087, 5088, 1961, 5089, 
-  5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 
-  5098, 5099, 5100, 1959, 5101, 5102, 5103, 5104, 
-  5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 
-  1958, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 
-  5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 
-  5128, 5075, 5076, 1960, 5077, 5078, 5079, 5080, 
-  5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 
-  1961, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 
-  5096, 5097, 5098, 5099, 5100, 1959, 5101, 5102, 
-  5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 
-  5111, 5112, 1958, 5113, 5114, 5115, 5116, 5117, 
-  5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 
-  5126, 5127, 5128, 5129, 5130, 0, 0, 5131, 
-  5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 
-  5140, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 
-  5138, 5139, 5140, 5131, 5132, 5133, 5134, 5135, 
-  5136, 5137, 5138, 5139, 5140, 5131, 5132, 5133, 
-  5134, 5135, 5136, 5137, 5138, 5139, 5140, 5131, 
-  5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 
-  5140, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  339, 339, 339, 339, 339, 339, 339, 339, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 5141, 5142, 5143, 5144, 5145, 3725, 5146, 
-  5147, 5148, 5149, 3726, 5150, 5151, 5152, 3727, 
-  5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 
-  5161, 5162, 5163, 5164, 3782, 5165, 5166, 5167, 
-  5168, 5169, 5170, 5171, 5172, 5173, 3787, 3728, 
-  3729, 3788, 5174, 5175, 3538, 5176, 3730, 5177, 
-  5178, 5179, 5180, 5180, 5180, 5181, 5182, 5183, 
-  5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 
-  5192, 5193, 5194, 5195, 5196, 5197, 5198, 5198, 
-  3790, 5199, 5200, 5201, 5202, 3732, 5203, 5204, 
-  5205, 3691, 5206, 5207, 5208, 5209, 5210, 5211, 
-  5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 
-  5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 
-  5228, 5229, 5230, 5231, 5231, 5232, 5233, 5234, 
-  3534, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 
-  5242, 3737, 5243, 5244, 5245, 5246, 5247, 5248, 
-  5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 
-  5257, 5258, 5259, 5260, 5261, 5262, 5263, 3480, 
-  5264, 5265, 5266, 5266, 5267, 5268, 5268, 5269, 
-  5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 
-  5278, 5279, 5280, 5281, 3738, 5282, 5283, 5284, 
-  5285, 3802, 5285, 5286, 3740, 5287, 5288, 5289, 
-  5290, 3741, 3453, 5291, 5292, 5293, 5294, 5295, 
-  5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 
-  5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 
-  5312, 3742, 5313, 5314, 5315, 5316, 5317, 5318, 
-  3744, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 
-  5326, 3481, 3810, 5327, 5328, 5329, 5330, 5331, 
-  5332, 5333, 5334, 3745, 5335, 5336, 5337, 5338, 
-  3853, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 
-  5346, 5347, 5348, 5349, 5350, 5351, 3551, 5352, 
-  5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 
-  5361, 5362, 3746, 3638, 5363, 5364, 5365, 5366, 
-  5367, 5368, 5369, 5370, 3814, 5371, 5372, 5373, 
-  5374, 5375, 5376, 5377, 5378, 3815, 5379, 5380, 
-  5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 
-  5389, 5390, 3817, 5391, 5392, 5393, 5394, 5395, 
-  5396, 5397, 5398, 5399, 5400, 5401, 5401, 5402, 
-  5403, 3819, 5404, 5405, 5406, 5407, 5408, 5409, 
-  5410, 3537, 5411, 5412, 5413, 5414, 5415, 5416, 
-  5417, 3825, 5418, 5419, 5420, 5421, 5422, 5423, 
-  5423, 3826, 3855, 5424, 5425, 5426, 5427, 5428, 
-  3499, 3828, 5429, 5430, 3757, 5431, 5432, 3713, 
-  5433, 5434, 3761, 5435, 5436, 5437, 5438, 5438, 
-  5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 
-  5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 
-  5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 
-  5463, 5464, 5465, 3767, 5466, 5467, 5468, 5469, 
-  5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 
-  5478, 5479, 5480, 5481, 5267, 5482, 5483, 5484, 
-  5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 
-  5493, 3555, 5494, 5495, 5496, 5497, 5498, 5499, 
-  3770, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 
-  5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 
-  5515, 5516, 5517, 5518, 5519, 3494, 5520, 5521, 
-  5522, 5523, 5524, 5525, 3835, 5526, 5527, 5528, 
-  5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 
-  5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 
-  5545, 3840, 3841, 5546, 5547, 5548, 5549, 5550, 
-  5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 
-  3842, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 
-  5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 
-  5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 
-  5582, 5583, 5584, 5585, 5586, 5587, 5588, 3848, 
-  3848, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 
-  5596, 5597, 5598, 3849, 5599, 5600, 5601, 5602, 
-  5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 
-  5611, 5612, 5613, 5614, 5615, 5616, 5617, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 80, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 80, 80, 80, 80, 80, 80, 80, 
-  80, 80, 80, 80, 80, 80, 80, 80, 
-  80, 80, 80, 80, 80, 80, 80, 80, 
-  80, 80, 80, 80, 80, 80, 80, 80, 
-  80, 80, 80, 80, 80, 80, 80, 80, 
-  80, 80, 80, 80, 80, 80, 80, 80, 
-  80, 80, 80, 80, 80, 80, 80, 80, 
-  80, 80, 80, 80, 80, 80, 80, 80, 
-  80, 80, 80, 80, 80, 80, 80, 80, 
-  80, 80, 80, 80, 80, 80, 80, 80, 
-  80, 80, 80, 80, 80, 80, 80, 80, 
-  80, 80, 80, 80, 80, 80, 80, 80, 
-  80, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 558, 558, 558, 558, 558, 558, 558, 
-  558, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 
-  3440, 3440, 3440, 3440, 3440, 3440, 3440, 0, 
-  0, };
-
-const utf8proc_property_t utf8proc_properties[] = {
-  {0, 0, 0, 0, NULL, false, -1, -1, -1, -1, -1, false},
-  {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_BN, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_S, 0, NULL, false, -1, -1, -1, -1, -1, false, false, true, false, NULL},
-  {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, NULL, false, -1, -1, -1, -1, -1, false, false, true, false, NULL},
-  {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_WS, 0, NULL, false, -1, -1, -1, -1, -1, false, false, true, false, NULL},
-  {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_S, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 17580, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 17400, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 17640, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 97, -1, 0, -1, false, false, false, false, utf8proc_sequences + 0},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 98, -1, 8640, -1, false, false, false, false, utf8proc_sequences + 2},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 99, -1, 60, -1, false, false, false, false, utf8proc_sequences + 4},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 100, -1, 960, -1, false, false, false, false, utf8proc_sequences + 6},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 101, -1, 120, -1, false, false, false, false, utf8proc_sequences + 8},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 102, -1, 9120, -1, false, false, false, false, utf8proc_sequences + 10},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 103, -1, 1080, -1, false, false, false, false, utf8proc_sequences + 12},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 104, -1, 1200, -1, false, false, false, false, utf8proc_sequences + 14},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 105, -1, 180, -1, false, false, false, false, utf8proc_sequences + 16},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 106, -1, 1320, -1, false, false, false, false, utf8proc_sequences + 18},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 107, -1, 1440, -1, false, false, false, false, utf8proc_sequences + 20},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 108, -1, 1560, -1, false, false, false, false, utf8proc_sequences + 22},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 109, -1, 9480, -1, false, false, false, false, utf8proc_sequences + 24},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 110, -1, 240, -1, false, false, false, false, utf8proc_sequences + 26},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 111, -1, 300, -1, false, false, false, false, utf8proc_sequences + 28},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 112, -1, 9720, -1, false, false, false, false, utf8proc_sequences + 30},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 113, -1, -1, -1, false, false, false, false, utf8proc_sequences + 32},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 114, -1, 1680, -1, false, false, false, false, utf8proc_sequences + 34},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 115, -1, 1800, -1, false, false, false, false, utf8proc_sequences + 36},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 116, -1, 1920, -1, false, false, false, false, utf8proc_sequences + 38},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 117, -1, 360, -1, false, false, false, false, utf8proc_sequences + 40},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 118, -1, 10560, -1, false, false, false, false, utf8proc_sequences + 42},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 119, -1, 2040, -1, false, false, false, false, utf8proc_sequences + 44},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 120, -1, 10680, -1, false, false, false, false, utf8proc_sequences + 46},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 121, -1, 420, -1, false, false, false, false, utf8proc_sequences + 48},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 122, -1, 2160, -1, false, false, false, false, utf8proc_sequences + 50},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 65, -1, 65, 480, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66, -1, 66, 8700, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 67, -1, 67, 540, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 68, -1, 68, 1020, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 69, -1, 69, 600, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 70, -1, 70, 9180, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 71, -1, 71, 1140, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 72, -1, 72, 1260, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 73, -1, 73, 660, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 74, -1, 74, 1380, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 75, -1, 75, 1500, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 76, -1, 76, 1620, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 77, -1, 77, 9540, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 78, -1, 78, 720, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 79, -1, 79, 780, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 80, -1, 80, 9780, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 81, -1, 81, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 82, -1, 82, 1740, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 83, -1, 83, 1860, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 84, -1, 84, 1980, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 85, -1, 85, 840, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 86, -1, 86, 10620, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 87, -1, 87, 2100, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 88, -1, 88, 10740, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 89, -1, 89, 900, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 90, -1, 90, 2220, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_NOBREAK, utf8proc_sequences + 52, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 54, false, -1, -1, -1, 3600, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 0, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PI, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_BN, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 57, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ET, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ET, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 60, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 62, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 64, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 67, false, 924, -1, 924, -1, -1, false, false, false, false, utf8proc_sequences + 67},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 69, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 72, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 28, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PF, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 74, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 78, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 82, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 86, false, -1, 224, -1, -1, -1, false, false, false, false, utf8proc_sequences + 89},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 91, false, -1, 225, -1, -1, -1, false, false, false, false, utf8proc_sequences + 94},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 96, false, -1, 226, -1, 10860, -1, false, false, false, false, utf8proc_sequences + 99},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 101, false, -1, 227, -1, -1, -1, false, false, false, false, utf8proc_sequences + 104},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 106, false, -1, 228, -1, 2400, -1, false, false, false, false, utf8proc_sequences + 109},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 111, false, -1, 229, -1, 3000, -1, false, false, false, false, utf8proc_sequences + 114},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 230, -1, 2640, -1, false, false, false, false, utf8proc_sequences + 116},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 118, false, -1, 231, -1, 8760, -1, false, false, false, false, utf8proc_sequences + 121},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 123, false, -1, 232, -1, -1, -1, false, false, false, false, utf8proc_sequences + 126},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 128, false, -1, 233, -1, -1, -1, false, false, false, false, utf8proc_sequences + 131},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 133, false, -1, 234, -1, 11220, -1, false, false, false, false, utf8proc_sequences + 136},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 138, false, -1, 235, -1, -1, -1, false, false, false, false, utf8proc_sequences + 141},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 143, false, -1, 236, -1, -1, -1, false, false, false, false, utf8proc_sequences + 146},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 148, false, -1, 237, -1, -1, -1, false, false, false, false, utf8proc_sequences + 151},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 153, false, -1, 238, -1, -1, -1, false, false, false, false, utf8proc_sequences + 156},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 158, false, -1, 239, -1, 9240, -1, false, false, false, false, utf8proc_sequences + 161},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 240, -1, -1, -1, false, false, false, false, utf8proc_sequences + 163},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 165, false, -1, 241, -1, -1, -1, false, false, false, false, utf8proc_sequences + 168},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 170, false, -1, 242, -1, -1, -1, false, false, false, false, utf8proc_sequences + 173},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 175, false, -1, 243, -1, -1, -1, false, false, false, false, utf8proc_sequences + 178},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 180, false, -1, 244, -1, 11460, -1, false, false, false, false, utf8proc_sequences + 183},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 185, false, -1, 245, -1, 3360, -1, false, false, false, false, utf8proc_sequences + 188},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 190, false, -1, 246, -1, 3240, -1, false, false, false, false, utf8proc_sequences + 193},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 248, -1, 3120, -1, false, false, false, false, utf8proc_sequences + 195},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 197, false, -1, 249, -1, -1, -1, false, false, false, false, utf8proc_sequences + 200},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 202, false, -1, 250, -1, -1, -1, false, false, false, false, utf8proc_sequences + 205},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 207, false, -1, 251, -1, -1, -1, false, false, false, false, utf8proc_sequences + 210},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 212, false, -1, 252, -1, 2280, -1, false, false, false, false, utf8proc_sequences + 215},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 217, false, -1, 253, -1, -1, -1, false, false, false, false, utf8proc_sequences + 220},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 254, -1, -1, -1, false, false, false, false, utf8proc_sequences + 222},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 224},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 227, false, 192, -1, 192, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 230, false, 193, -1, 193, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 233, false, 194, -1, 194, 10920, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 236, false, 195, -1, 195, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 239, false, 196, -1, 196, 2460, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 242, false, 197, -1, 197, 3060, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 198, -1, 198, 2700, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 245, false, 199, -1, 199, 8820, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 248, false, 200, -1, 200, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 251, false, 201, -1, 201, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 254, false, 202, -1, 202, 11280, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 257, false, 203, -1, 203, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 260, false, 204, -1, 204, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 263, false, 205, -1, 205, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 266, false, 206, -1, 206, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 269, false, 207, -1, 207, 9300, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 208, -1, 208, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 272, false, 209, -1, 209, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 275, false, 210, -1, 210, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 278, false, 211, -1, 211, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 281, false, 212, -1, 212, 11520, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 284, false, 213, -1, 213, 3420, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 287, false, 214, -1, 214, 3300, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 216, -1, 216, 3180, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 290, false, 217, -1, 217, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 293, false, 218, -1, 218, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 296, false, 219, -1, 219, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 299, false, 220, -1, 220, 2340, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 302, false, 221, -1, 221, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 222, -1, 222, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 305, false, 376, -1, 376, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 308, false, -1, 257, -1, -1, -1, false, false, false, false, utf8proc_sequences + 311},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 313, false, 256, -1, 256, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 316, false, -1, 259, -1, 11100, -1, false, false, false, false, utf8proc_sequences + 319},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 321, false, 258, -1, 258, 11160, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 324, false, -1, 261, -1, -1, -1, false, false, false, false, utf8proc_sequences + 327},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 329, false, 260, -1, 260, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 332, false, -1, 263, -1, -1, -1, false, false, false, false, utf8proc_sequences + 335},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 337, false, 262, -1, 262, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 340, false, -1, 265, -1, -1, -1, false, false, false, false, utf8proc_sequences + 343},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 345, false, 264, -1, 264, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 348, false, -1, 267, -1, -1, -1, false, false, false, false, utf8proc_sequences + 351},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 353, false, 266, -1, 266, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 356, false, -1, 269, -1, -1, -1, false, false, false, false, utf8proc_sequences + 359},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 361, false, 268, -1, 268, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 364, false, -1, 271, -1, -1, -1, false, false, false, false, utf8proc_sequences + 367},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 369, false, 270, -1, 270, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 273, -1, -1, -1, false, false, false, false, utf8proc_sequences + 372},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 272, -1, 272, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 374, false, -1, 275, -1, 8880, -1, false, false, false, false, utf8proc_sequences + 377},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 379, false, 274, -1, 274, 8940, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 382, false, -1, 277, -1, -1, -1, false, false, false, false, utf8proc_sequences + 385},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 387, false, 276, -1, 276, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 390, false, -1, 279, -1, -1, -1, false, false, false, false, utf8proc_sequences + 393},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 395, false, 278, -1, 278, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 398, false, -1, 281, -1, -1, -1, false, false, false, false, utf8proc_sequences + 401},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 403, false, 280, -1, 280, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 406, false, -1, 283, -1, -1, -1, false, false, false, false, utf8proc_sequences + 409},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 411, false, 282, -1, 282, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 414, false, -1, 285, -1, -1, -1, false, false, false, false, utf8proc_sequences + 417},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 419, false, 284, -1, 284, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 422, false, -1, 287, -1, -1, -1, false, false, false, false, utf8proc_sequences + 425},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 427, false, 286, -1, 286, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 430, false, -1, 289, -1, -1, -1, false, false, false, false, utf8proc_sequences + 433},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 435, false, 288, -1, 288, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 438, false, -1, 291, -1, -1, -1, false, false, false, false, utf8proc_sequences + 441},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 443, false, 290, -1, 290, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 446, false, -1, 293, -1, -1, -1, false, false, false, false, utf8proc_sequences + 449},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 451, false, 292, -1, 292, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 295, -1, -1, -1, false, false, false, false, utf8proc_sequences + 454},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 294, -1, 294, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 456, false, -1, 297, -1, -1, -1, false, false, false, false, utf8proc_sequences + 459},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 461, false, 296, -1, 296, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 464, false, -1, 299, -1, -1, -1, false, false, false, false, utf8proc_sequences + 467},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 469, false, 298, -1, 298, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 472, false, -1, 301, -1, -1, -1, false, false, false, false, utf8proc_sequences + 475},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 477, false, 300, -1, 300, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 480, false, -1, 303, -1, -1, -1, false, false, false, false, utf8proc_sequences + 483},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 485, false, 302, -1, 302, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 488, false, -1, 105, -1, -1, -1, false, false, false, false, utf8proc_sequences + 491},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 73, -1, 73, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 494, false, -1, 307, -1, -1, -1, false, false, false, false, utf8proc_sequences + 497},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 499, false, 306, -1, 306, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 502, false, -1, 309, -1, -1, -1, false, false, false, false, utf8proc_sequences + 505},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 507, false, 308, -1, 308, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 510, false, -1, 311, -1, -1, -1, false, false, false, false, utf8proc_sequences + 513},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 515, false, 310, -1, 310, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 518, false, -1, 314, -1, -1, -1, false, false, false, false, utf8proc_sequences + 521},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 523, false, 313, -1, 313, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 526, false, -1, 316, -1, -1, -1, false, false, false, false, utf8proc_sequences + 529},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 531, false, 315, -1, 315, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 534, false, -1, 318, -1, -1, -1, false, false, false, false, utf8proc_sequences + 537},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 539, false, 317, -1, 317, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 542, false, -1, 320, -1, -1, -1, false, false, false, false, utf8proc_sequences + 545},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 547, false, 319, -1, 319, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 322, -1, -1, -1, false, false, false, false, utf8proc_sequences + 550},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 321, -1, 321, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 552, false, -1, 324, -1, -1, -1, false, false, false, false, utf8proc_sequences + 555},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 557, false, 323, -1, 323, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 560, false, -1, 326, -1, -1, -1, false, false, false, false, utf8proc_sequences + 563},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 565, false, 325, -1, 325, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 568, false, -1, 328, -1, -1, -1, false, false, false, false, utf8proc_sequences + 571},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 573, false, 327, -1, 327, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 576, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 576},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 331, -1, -1, -1, false, false, false, false, utf8proc_sequences + 579},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 330, -1, 330, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 581, false, -1, 333, -1, 9600, -1, false, false, false, false, utf8proc_sequences + 584},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 586, false, 332, -1, 332, 9660, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 589, false, -1, 335, -1, -1, -1, false, false, false, false, utf8proc_sequences + 592},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 594, false, 334, -1, 334, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 597, false, -1, 337, -1, -1, -1, false, false, false, false, utf8proc_sequences + 600},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 602, false, 336, -1, 336, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 339, -1, -1, -1, false, false, false, false, utf8proc_sequences + 605},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 338, -1, 338, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 607, false, -1, 341, -1, -1, -1, false, false, false, false, utf8proc_sequences + 610},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 612, false, 340, -1, 340, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 615, false, -1, 343, -1, -1, -1, false, false, false, false, utf8proc_sequences + 618},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 620, false, 342, -1, 342, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 623, false, -1, 345, -1, -1, -1, false, false, false, false, utf8proc_sequences + 626},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 628, false, 344, -1, 344, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 631, false, -1, 347, -1, 9960, -1, false, false, false, false, utf8proc_sequences + 634},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 636, false, 346, -1, 346, 10020, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 639, false, -1, 349, -1, -1, -1, false, false, false, false, utf8proc_sequences + 642},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 644, false, 348, -1, 348, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 647, false, -1, 351, -1, -1, -1, false, false, false, false, utf8proc_sequences + 650},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 652, false, 350, -1, 350, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 655, false, -1, 353, -1, 10080, -1, false, false, false, false, utf8proc_sequences + 658},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 660, false, 352, -1, 352, 10140, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 663, false, -1, 355, -1, -1, -1, false, false, false, false, utf8proc_sequences + 666},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 668, false, 354, -1, 354, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 671, false, -1, 357, -1, -1, -1, false, false, false, false, utf8proc_sequences + 674},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 676, false, 356, -1, 356, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 359, -1, -1, -1, false, false, false, false, utf8proc_sequences + 679},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 358, -1, 358, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 681, false, -1, 361, -1, 10320, -1, false, false, false, false, utf8proc_sequences + 684},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 686, false, 360, -1, 360, 10380, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 689, false, -1, 363, -1, 10440, -1, false, false, false, false, utf8proc_sequences + 692},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 694, false, 362, -1, 362, 10500, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 697, false, -1, 365, -1, -1, -1, false, false, false, false, utf8proc_sequences + 700},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 702, false, 364, -1, 364, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 705, false, -1, 367, -1, -1, -1, false, false, false, false, utf8proc_sequences + 708},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 710, false, 366, -1, 366, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 713, false, -1, 369, -1, -1, -1, false, false, false, false, utf8proc_sequences + 716},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 718, false, 368, -1, 368, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 721, false, -1, 371, -1, -1, -1, false, false, false, false, utf8proc_sequences + 724},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 726, false, 370, -1, 370, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 729, false, -1, 373, -1, -1, -1, false, false, false, false, utf8proc_sequences + 732},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 734, false, 372, -1, 372, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 737, false, -1, 375, -1, -1, -1, false, false, false, false, utf8proc_sequences + 740},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 742, false, 374, -1, 374, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 745, false, -1, 255, -1, -1, -1, false, false, false, false, utf8proc_sequences + 748},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 750, false, -1, 378, -1, -1, -1, false, false, false, false, utf8proc_sequences + 753},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 755, false, 377, -1, 377, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 758, false, -1, 380, -1, -1, -1, false, false, false, false, utf8proc_sequences + 761},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 763, false, 379, -1, 379, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 766, false, -1, 382, -1, -1, -1, false, false, false, false, utf8proc_sequences + 769},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 771, false, 381, -1, 381, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 36, false, 83, -1, 83, 10800, -1, false, false, false, false, utf8proc_sequences + 36},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 579, -1, 579, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 595, -1, -1, -1, false, false, false, false, utf8proc_sequences + 774},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 387, -1, -1, -1, false, false, false, false, utf8proc_sequences + 776},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 386, -1, 386, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 389, -1, -1, -1, false, false, false, false, utf8proc_sequences + 778},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 388, -1, 388, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 596, -1, -1, -1, false, false, false, false, utf8proc_sequences + 780},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 392, -1, -1, -1, false, false, false, false, utf8proc_sequences + 782},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 391, -1, 391, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 598, -1, -1, -1, false, false, false, false, utf8proc_sequences + 784},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 599, -1, -1, -1, false, false, false, false, utf8proc_sequences + 786},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 396, -1, -1, -1, false, false, false, false, utf8proc_sequences + 788},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 395, -1, 395, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 477, -1, -1, -1, false, false, false, false, utf8proc_sequences + 790},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 601, -1, -1, -1, false, false, false, false, utf8proc_sequences + 792},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 603, -1, -1, -1, false, false, false, false, utf8proc_sequences + 794},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 402, -1, -1, -1, false, false, false, false, utf8proc_sequences + 796},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 401, -1, 401, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 608, -1, -1, -1, false, false, false, false, utf8proc_sequences + 798},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 611, -1, -1, -1, false, false, false, false, utf8proc_sequences + 800},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 502, -1, 502, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 617, -1, -1, -1, false, false, false, false, utf8proc_sequences + 802},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 616, -1, -1, -1, false, false, false, false, utf8proc_sequences + 804},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 409, -1, -1, -1, false, false, false, false, utf8proc_sequences + 806},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 408, -1, 408, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 573, -1, 573, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 623, -1, -1, -1, false, false, false, false, utf8proc_sequences + 808},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 626, -1, -1, -1, false, false, false, false, utf8proc_sequences + 810},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 544, -1, 544, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 629, -1, -1, -1, false, false, false, false, utf8proc_sequences + 812},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 814, false, -1, 417, -1, 11700, -1, false, false, false, false, utf8proc_sequences + 817},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 819, false, 416, -1, 416, 11760, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 419, -1, -1, -1, false, false, false, false, utf8proc_sequences + 822},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 418, -1, 418, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 421, -1, -1, -1, false, false, false, false, utf8proc_sequences + 824},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 420, -1, 420, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 640, -1, -1, -1, false, false, false, false, utf8proc_sequences + 826},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 424, -1, -1, -1, false, false, false, false, utf8proc_sequences + 828},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 423, -1, 423, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 643, -1, -1, -1, false, false, false, false, utf8proc_sequences + 830},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 429, -1, -1, -1, false, false, false, false, utf8proc_sequences + 832},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 428, -1, 428, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 648, -1, -1, -1, false, false, false, false, utf8proc_sequences + 834},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 836, false, -1, 432, -1, 11820, -1, false, false, false, false, utf8proc_sequences + 839},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 841, false, 431, -1, 431, 11880, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 650, -1, -1, -1, false, false, false, false, utf8proc_sequences + 844},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 651, -1, -1, -1, false, false, false, false, utf8proc_sequences + 846},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 436, -1, -1, -1, false, false, false, false, utf8proc_sequences + 848},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 435, -1, 435, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 438, -1, -1, -1, false, false, false, false, utf8proc_sequences + 850},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 437, -1, 437, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 658, -1, 2880, -1, false, false, false, false, utf8proc_sequences + 852},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 441, -1, -1, -1, false, false, false, false, utf8proc_sequences + 854},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 440, -1, 440, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 445, -1, -1, -1, false, false, false, false, utf8proc_sequences + 856},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 444, -1, 444, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 503, -1, 503, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 858, false, -1, 454, 453, -1, -1, false, false, false, false, utf8proc_sequences + 861},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 863, false, 452, 454, 453, -1, -1, false, false, false, false, utf8proc_sequences + 861},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 866, false, 452, -1, 453, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 869, false, -1, 457, 456, -1, -1, false, false, false, false, utf8proc_sequences + 872},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 874, false, 455, 457, 456, -1, -1, false, false, false, false, utf8proc_sequences + 872},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 877, false, 455, -1, 456, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 880, false, -1, 460, 459, -1, -1, false, false, false, false, utf8proc_sequences + 883},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 885, false, 458, 460, 459, -1, -1, false, false, false, false, utf8proc_sequences + 883},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 888, false, 458, -1, 459, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 891, false, -1, 462, -1, -1, -1, false, false, false, false, utf8proc_sequences + 894},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 896, false, 461, -1, 461, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 899, false, -1, 464, -1, -1, -1, false, false, false, false, utf8proc_sequences + 902},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 904, false, 463, -1, 463, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 907, false, -1, 466, -1, -1, -1, false, false, false, false, utf8proc_sequences + 910},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 912, false, 465, -1, 465, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 915, false, -1, 468, -1, -1, -1, false, false, false, false, utf8proc_sequences + 918},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 920, false, 467, -1, 467, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 923, false, -1, 470, -1, -1, -1, false, false, false, false, utf8proc_sequences + 926},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 928, false, 469, -1, 469, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 931, false, -1, 472, -1, -1, -1, false, false, false, false, utf8proc_sequences + 934},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 936, false, 471, -1, 471, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 939, false, -1, 474, -1, -1, -1, false, false, false, false, utf8proc_sequences + 942},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 944, false, 473, -1, 473, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 947, false, -1, 476, -1, -1, -1, false, false, false, false, utf8proc_sequences + 950},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 952, false, 475, -1, 475, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 398, -1, 398, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 955, false, -1, 479, -1, -1, -1, false, false, false, false, utf8proc_sequences + 958},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 960, false, 478, -1, 478, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 963, false, -1, 481, -1, -1, -1, false, false, false, false, utf8proc_sequences + 966},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 968, false, 480, -1, 480, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 971, false, -1, 483, -1, -1, -1, false, false, false, false, utf8proc_sequences + 974},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 976, false, 482, -1, 482, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 485, -1, -1, -1, false, false, false, false, utf8proc_sequences + 979},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 484, -1, 484, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 981, false, -1, 487, -1, -1, -1, false, false, false, false, utf8proc_sequences + 984},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 986, false, 486, -1, 486, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 989, false, -1, 489, -1, -1, -1, false, false, false, false, utf8proc_sequences + 992},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 994, false, 488, -1, 488, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 997, false, -1, 491, -1, 2760, -1, false, false, false, false, utf8proc_sequences + 1000},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1002, false, 490, -1, 490, 2820, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1005, false, -1, 493, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1008},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1010, false, 492, -1, 492, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1013, false, -1, 495, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1016},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1018, false, 494, -1, 494, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1021, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1021},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1024, false, -1, 499, 498, -1, -1, false, false, false, false, utf8proc_sequences + 1027},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1029, false, 497, 499, 498, -1, -1, false, false, false, false, utf8proc_sequences + 1027},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1032, false, 497, -1, 498, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1035, false, -1, 501, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1038},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1040, false, 500, -1, 500, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 405, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1043},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 447, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1045},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1047, false, -1, 505, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1050},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1052, false, 504, -1, 504, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1055, false, -1, 507, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1058},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1060, false, 506, -1, 506, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1063, false, -1, 509, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1066},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1068, false, 508, -1, 508, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1071, false, -1, 511, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1074},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1076, false, 510, -1, 510, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1079, false, -1, 513, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1082},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1084, false, 512, -1, 512, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1087, false, -1, 515, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1090},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1092, false, 514, -1, 514, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1095, false, -1, 517, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1098},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1100, false, 516, -1, 516, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1103, false, -1, 519, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1106},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1108, false, 518, -1, 518, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1111, false, -1, 521, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1114},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1116, false, 520, -1, 520, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1119, false, -1, 523, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1122},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1124, false, 522, -1, 522, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1127, false, -1, 525, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1130},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1132, false, 524, -1, 524, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1135, false, -1, 527, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1138},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1140, false, 526, -1, 526, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1143, false, -1, 529, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1146},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1148, false, 528, -1, 528, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1151, false, -1, 531, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1154},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1156, false, 530, -1, 530, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1159, false, -1, 533, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1162},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1164, false, 532, -1, 532, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1167, false, -1, 535, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1170},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1172, false, 534, -1, 534, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1175, false, -1, 537, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1178},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1180, false, 536, -1, 536, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1183, false, -1, 539, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1186},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1188, false, 538, -1, 538, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 541, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1191},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 540, -1, 540, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1193, false, -1, 543, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1196},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1198, false, 542, -1, 542, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 414, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1201},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 547, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1203},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 546, -1, 546, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 549, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1205},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 548, -1, 548, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1207, false, -1, 551, -1, 2520, -1, false, false, false, false, utf8proc_sequences + 1210},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1212, false, 550, -1, 550, 2580, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1215, false, -1, 553, -1, 9000, -1, false, false, false, false, utf8proc_sequences + 1218},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1220, false, 552, -1, 552, 9060, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1223, false, -1, 555, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1226},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1228, false, 554, -1, 554, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1231, false, -1, 557, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1234},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1236, false, 556, -1, 556, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1239, false, -1, 559, -1, 3480, -1, false, false, false, false, utf8proc_sequences + 1242},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1244, false, 558, -1, 558, 3540, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1247, false, -1, 561, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1250},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1252, false, 560, -1, 560, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1255, false, -1, 563, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1258},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1260, false, 562, -1, 562, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11365, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1263},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 572, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1265},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 571, -1, 571, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 410, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1267},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11366, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1269},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 578, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1271},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 577, -1, 577, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 384, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1273},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 649, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1275},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 652, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1277},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 583, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1279},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 582, -1, 582, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 585, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1281},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 584, -1, 584, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 587, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1283},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 586, -1, 586, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 589, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1285},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 588, -1, 588, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 591, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1287},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 590, -1, 590, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 385, -1, 385, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 390, -1, 390, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 393, -1, 393, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 394, -1, 394, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 399, -1, 399, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 400, -1, 400, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 403, -1, 403, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 404, -1, 404, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 407, -1, 407, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 406, -1, 406, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11362, -1, 11362, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 412, -1, 412, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 413, -1, 413, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 415, -1, 415, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11364, -1, 11364, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 422, -1, 422, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 425, -1, 425, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 430, -1, 430, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 580, -1, 580, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 433, -1, 433, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 434, -1, 434, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 581, -1, 581, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 439, -1, 439, 2940, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 14, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1289, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 18, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 34, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1291, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1293, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1295, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 44, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 48, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1297, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1300, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1303, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1306, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1309, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1312, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 800, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 22, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 36, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 46, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1315, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 0, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 2, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 3, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 7, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 8, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 10, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 4, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 46, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 5, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 12, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 11, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 14, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 15, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 47, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 48, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 232, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 216, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 13, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 40, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 45, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 39, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 16, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 6, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 9, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 42, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 44, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 43, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 41, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 1, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 1, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 51, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 1317, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 1319, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 49, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 1321, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 1323, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 240, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, 921, -1, 921, -1, 50, false, false, false, true, utf8proc_sequences + 1326},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, true, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 233, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 234, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 1328, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1330, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1021, -1, 1021, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1022, -1, 1022, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1023, -1, 1023, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 1333, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 1335, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1338, false, -1, 940, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1341},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 1343, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1345, false, -1, 941, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1348},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1350, false, -1, 942, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1353},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1355, false, -1, 943, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1358},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1360, false, -1, 972, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1363},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1365, false, -1, 973, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1368},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1370, false, -1, 974, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1373},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1375, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1378},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 945, -1, 3660, -1, false, false, false, false, utf8proc_sequences + 1382},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 946, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1384},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 947, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1386},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 948, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1388},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 949, -1, 3720, -1, false, false, false, false, utf8proc_sequences + 1390},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 950, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1392},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 951, -1, 3780, -1, false, false, false, false, utf8proc_sequences + 1394},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 952, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1396},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 953, -1, 3840, -1, false, false, false, false, utf8proc_sequences + 1326},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 954, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1398},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 955, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1400},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 956, -1, -1, -1, false, false, false, false, utf8proc_sequences + 67},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 957, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1402},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 958, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1404},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 959, -1, 3900, -1, false, false, false, false, utf8proc_sequences + 1406},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 960, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1408},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 961, -1, 16260, -1, false, false, false, false, utf8proc_sequences + 1410},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 963, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1412},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 964, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1414},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 965, -1, 3960, -1, false, false, false, false, utf8proc_sequences + 1416},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 966, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1418},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 967, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1420},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 968, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1422},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 969, -1, 4020, -1, false, false, false, false, utf8proc_sequences + 1424},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1426, false, -1, 970, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1429},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1431, false, -1, 971, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1434},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1436, false, 902, -1, 902, 15780, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1439, false, 904, -1, 904, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1442, false, 905, -1, 905, 15960, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1445, false, 906, -1, 906, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1448, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1451},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 913, -1, 913, 4140, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 914, -1, 914, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 915, -1, 915, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 916, -1, 916, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 917, -1, 917, 4200, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 918, -1, 918, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 919, -1, 919, 4260, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 920, -1, 920, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 921, -1, 921, 4320, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 922, -1, 922, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 923, -1, 923, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 924, -1, 924, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 925, -1, 925, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 926, -1, 926, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 927, -1, 927, 4500, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 928, -1, 928, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 929, -1, 929, 16200, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 931, -1, 931, -1, -1, false, false, false, false, utf8proc_sequences + 1412},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 931, -1, 931, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 932, -1, 932, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 933, -1, 933, 4440, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 934, -1, 934, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 935, -1, 935, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 936, -1, 936, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 937, -1, 937, 4560, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1455, false, 938, -1, 938, 4080, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1458, false, 939, -1, 939, 4380, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1461, false, 908, -1, 908, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1464, false, 910, -1, 910, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1467, false, 911, -1, 911, 16380, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1384, false, 914, -1, 914, -1, -1, false, false, false, false, utf8proc_sequences + 1384},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1396, false, 920, -1, 920, -1, -1, false, false, false, false, utf8proc_sequences + 1396},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1470, false, -1, -1, -1, 4620, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1472, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1475, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1418, false, 934, -1, 934, -1, -1, false, false, false, false, utf8proc_sequences + 1418},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1408, false, 928, -1, 928, -1, -1, false, false, false, false, utf8proc_sequences + 1408},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 985, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1478},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 984, -1, 984, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 987, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1480},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 986, -1, 986, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 989, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1482},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 988, -1, 988, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 991, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1484},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 990, -1, 990, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 993, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1486},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 992, -1, 992, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 995, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1488},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 994, -1, 994, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 997, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1490},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 996, -1, 996, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 999, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1492},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 998, -1, 998, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1001, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1494},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1000, -1, 1000, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1003, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1496},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1002, -1, 1002, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1005, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1498},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1004, -1, 1004, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1007, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1500},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1006, -1, 1006, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1398, false, 922, -1, 922, -1, -1, false, false, false, false, utf8proc_sequences + 1398},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1410, false, 929, -1, 929, -1, -1, false, false, false, false, utf8proc_sequences + 1410},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1502, false, 1017, -1, 1017, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1504, false, -1, 952, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1396},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1390, false, 917, -1, 917, -1, -1, false, false, false, false, utf8proc_sequences + 1390},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1016, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1506},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1015, -1, 1015, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 1508, false, -1, 1010, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1510},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1019, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1512},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1018, -1, 1018, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 891, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1514},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 892, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1516},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 893, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1518},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1520, false, -1, 1104, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1523},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1525, false, -1, 1105, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1528},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1106, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1530},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1532, false, -1, 1107, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1535},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1108, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1537},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1109, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1539},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1110, -1, 4800, -1, false, false, false, false, utf8proc_sequences + 1541},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1543, false, -1, 1111, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1546},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1112, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1548},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1113, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1550},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1114, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1552},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1115, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1554},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1556, false, -1, 1116, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1559},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1561, false, -1, 1117, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1564},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1566, false, -1, 1118, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1569},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1119, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1571},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1072, -1, 5640, -1, false, false, false, false, utf8proc_sequences + 1573},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1073, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1575},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1074, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1577},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1075, -1, 4740, -1, false, false, false, false, utf8proc_sequences + 1579},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1076, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1581},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1077, -1, 4680, -1, false, false, false, false, utf8proc_sequences + 1583},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1078, -1, 5520, -1, false, false, false, false, utf8proc_sequences + 1585},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1079, -1, 5880, -1, false, false, false, false, utf8proc_sequences + 1587},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1080, -1, 4920, -1, false, false, false, false, utf8proc_sequences + 1589},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1591, false, -1, 1081, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1594},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1082, -1, 4860, -1, false, false, false, false, utf8proc_sequences + 1596},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1083, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1598},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1084, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1600},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1085, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1602},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1086, -1, 6000, -1, false, false, false, false, utf8proc_sequences + 1604},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1087, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1606},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1088, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1608},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1089, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1610},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1090, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1612},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1091, -1, 4980, -1, false, false, false, false, utf8proc_sequences + 1614},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1092, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1616},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1093, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1618},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1094, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1620},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1095, -1, 6360, -1, false, false, false, false, utf8proc_sequences + 1622},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1096, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1624},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1097, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1626},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1098, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1628},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1099, -1, 6480, -1, false, false, false, false, utf8proc_sequences + 1630},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1100, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1632},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1101, -1, 6240, -1, false, false, false, false, utf8proc_sequences + 1634},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1102, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1636},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1103, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1638},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1040, -1, 1040, 5700, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1041, -1, 1041, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1042, -1, 1042, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1043, -1, 1043, 5160, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1044, -1, 1044, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1045, -1, 1045, 5100, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1046, -1, 1046, 5580, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1047, -1, 1047, 5940, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1048, -1, 1048, 5040, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1640, false, 1049, -1, 1049, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1050, -1, 1050, 5280, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1051, -1, 1051, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1052, -1, 1052, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1053, -1, 1053, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1054, -1, 1054, 6060, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1055, -1, 1055, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1056, -1, 1056, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1057, -1, 1057, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1058, -1, 1058, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1059, -1, 1059, 5340, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1060, -1, 1060, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1061, -1, 1061, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1062, -1, 1062, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1063, -1, 1063, 6420, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1064, -1, 1064, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1065, -1, 1065, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1066, -1, 1066, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1067, -1, 1067, 6540, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1068, -1, 1068, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1069, -1, 1069, 6300, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1070, -1, 1070, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1071, -1, 1071, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1643, false, 1024, -1, 1024, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1646, false, 1025, -1, 1025, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1026, -1, 1026, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1649, false, 1027, -1, 1027, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1028, -1, 1028, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1029, -1, 1029, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1030, -1, 1030, 5220, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1652, false, 1031, -1, 1031, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1032, -1, 1032, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1033, -1, 1033, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1034, -1, 1034, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1035, -1, 1035, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1655, false, 1036, -1, 1036, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1658, false, 1037, -1, 1037, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1661, false, 1038, -1, 1038, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1039, -1, 1039, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1121, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1664},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1120, -1, 1120, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1123, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1666},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1122, -1, 1122, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1125, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1668},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1124, -1, 1124, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1127, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1670},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1126, -1, 1126, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1129, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1672},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1128, -1, 1128, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1131, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1674},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1130, -1, 1130, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1133, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1676},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1132, -1, 1132, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1135, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1678},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1134, -1, 1134, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1137, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1680},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1136, -1, 1136, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1139, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1682},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1138, -1, 1138, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1141, -1, 5400, -1, false, false, false, false, utf8proc_sequences + 1684},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1140, -1, 1140, 5460, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1686, false, -1, 1143, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1689},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1691, false, 1142, -1, 1142, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1145, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1694},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1144, -1, 1144, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1147, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1696},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1146, -1, 1146, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1149, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1698},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1148, -1, 1148, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1151, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1700},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1150, -1, 1150, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1153, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1702},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1152, -1, 1152, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ME, 0, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1163, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1704},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1162, -1, 1162, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1165, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1706},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1164, -1, 1164, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1167, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1708},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1166, -1, 1166, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1169, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1710},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1168, -1, 1168, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1171, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1712},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1170, -1, 1170, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1173, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1714},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1172, -1, 1172, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1175, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1716},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1174, -1, 1174, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1177, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1718},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1176, -1, 1176, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1179, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1720},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1178, -1, 1178, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1181, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1722},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1180, -1, 1180, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1183, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1724},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1182, -1, 1182, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1185, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1726},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1184, -1, 1184, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1187, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1728},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1186, -1, 1186, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1189, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1730},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1188, -1, 1188, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1191, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1732},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1190, -1, 1190, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1193, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1734},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1192, -1, 1192, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1195, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1736},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1194, -1, 1194, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1197, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1738},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1196, -1, 1196, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1199, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1740},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1198, -1, 1198, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1201, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1742},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1200, -1, 1200, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1203, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1744},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1202, -1, 1202, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1205, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1746},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1204, -1, 1204, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1207, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1748},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1206, -1, 1206, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1209, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1750},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1208, -1, 1208, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1211, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1752},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1210, -1, 1210, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1213, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1754},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1212, -1, 1212, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1215, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1756},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1214, -1, 1214, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1231, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1758},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1760, false, -1, 1218, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1763},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1765, false, 1217, -1, 1217, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1220, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1768},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1219, -1, 1219, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1222, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1770},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1221, -1, 1221, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1224, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1772},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1223, -1, 1223, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1226, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1774},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1225, -1, 1225, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1228, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1776},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1227, -1, 1227, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1230, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1778},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1229, -1, 1229, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1216, -1, 1216, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1780, false, -1, 1233, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1783},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1785, false, 1232, -1, 1232, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1788, false, -1, 1235, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1791},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1793, false, 1234, -1, 1234, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1237, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1796},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1236, -1, 1236, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1798, false, -1, 1239, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1801},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1803, false, 1238, -1, 1238, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1241, -1, 5760, -1, false, false, false, false, utf8proc_sequences + 1806},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1240, -1, 1240, 5820, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1808, false, -1, 1243, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1811},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1813, false, 1242, -1, 1242, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1816, false, -1, 1245, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1819},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1821, false, 1244, -1, 1244, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1824, false, -1, 1247, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1827},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1829, false, 1246, -1, 1246, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1249, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1832},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1248, -1, 1248, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1834, false, -1, 1251, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1837},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1839, false, 1250, -1, 1250, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1842, false, -1, 1253, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1845},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1847, false, 1252, -1, 1252, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1850, false, -1, 1255, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1853},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1855, false, 1254, -1, 1254, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1257, -1, 6120, -1, false, false, false, false, utf8proc_sequences + 1858},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1256, -1, 1256, 6180, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1860, false, -1, 1259, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1863},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1865, false, 1258, -1, 1258, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1868, false, -1, 1261, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1871},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1873, false, 1260, -1, 1260, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1876, false, -1, 1263, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1879},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1881, false, 1262, -1, 1262, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1884, false, -1, 1265, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1887},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1889, false, 1264, -1, 1264, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1892, false, -1, 1267, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1895},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1897, false, 1266, -1, 1266, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1900, false, -1, 1269, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1903},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1905, false, 1268, -1, 1268, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1271, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1908},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1270, -1, 1270, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1910, false, -1, 1273, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1913},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1915, false, 1272, -1, 1272, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1275, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1918},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1274, -1, 1274, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1277, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1920},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1276, -1, 1276, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1279, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1922},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1278, -1, 1278, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1281, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1924},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1280, -1, 1280, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1283, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1926},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1282, -1, 1282, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1285, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1928},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1284, -1, 1284, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1287, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1930},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1286, -1, 1286, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1289, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1932},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1288, -1, 1288, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1291, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1934},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1290, -1, 1290, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1293, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1936},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1292, -1, 1292, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1295, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1938},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1294, -1, 1294, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1297, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1940},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1296, -1, 1296, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1299, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1942},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1298, -1, 1298, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1377, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1944},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1378, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1946},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1379, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1948},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1380, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1950},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1381, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1952},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1382, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1954},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1383, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1956},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1384, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1958},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1385, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1960},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1386, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1962},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1387, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1964},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1388, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1966},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1389, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1968},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1390, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1970},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1391, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1972},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1392, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1974},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1393, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1976},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1394, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1978},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1395, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1980},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1396, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1982},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1397, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1984},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1398, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1986},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1399, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1988},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1400, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1990},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1401, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1992},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1402, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1994},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1403, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1996},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1404, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1998},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1405, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2000},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1406, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2002},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1407, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2004},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1408, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2006},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1409, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2008},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1410, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2010},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1411, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2012},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1412, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2014},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1413, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2016},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 1414, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2018},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1329, -1, 1329, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1330, -1, 1330, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1331, -1, 1331, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1332, -1, 1332, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1333, -1, 1333, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1334, -1, 1334, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1335, -1, 1335, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1336, -1, 1336, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1337, -1, 1337, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1338, -1, 1338, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1339, -1, 1339, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1340, -1, 1340, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1341, -1, 1341, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1342, -1, 1342, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1343, -1, 1343, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1344, -1, 1344, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1345, -1, 1345, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1346, -1, 1346, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1347, -1, 1347, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1348, -1, 1348, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1349, -1, 1349, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1350, -1, 1350, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1351, -1, 1351, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1352, -1, 1352, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1353, -1, 1353, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1354, -1, 1354, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1355, -1, 1355, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1356, -1, 1356, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1357, -1, 1357, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1358, -1, 1358, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1359, -1, 1359, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1360, -1, 1360, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1361, -1, 1361, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1362, -1, 1362, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1363, -1, 1363, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1364, -1, 1364, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1365, -1, 1365, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 1366, -1, 1366, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2020, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2020},
-  {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 222, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 228, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 10, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 11, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 12, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 13, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 14, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 15, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 16, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 17, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 18, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 19, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 20, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 21, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 22, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_R, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 23, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 24, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 25, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, utf8proc_sequences + 2023, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, utf8proc_sequences + 2026, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, utf8proc_sequences + 2029, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, utf8proc_sequences + 2032, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, utf8proc_sequences + 2035, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, 6600, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, 6660, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, 6720, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 27, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 28, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 29, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 30, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 31, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 32, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 33, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 34, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 17, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 18, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 19, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_AN, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AN, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 35, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2038, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2041, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2044, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2047, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, utf8proc_sequences + 2050, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, 6840, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, utf8proc_sequences + 2053, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, 6900, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, utf8proc_sequences + 2056, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, 6780, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_AL, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 36, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_R, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_R, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 6960, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2059, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7020, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2062, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7080, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2065, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 7, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 20, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2068, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2071, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2074, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2077, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2080, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2083, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2086, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2089, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 7, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 21, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7140, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2092, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2095, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 22, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2098, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2101, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2104, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2107, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2110, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2113, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2116, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2119, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2122, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 24, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7200, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2125, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2128, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2131, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 23, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 25, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2134, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2137, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7260, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2140, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 27, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7320, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7380, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2143, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2146, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2149, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 26, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, 7440, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2152, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 84, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 91, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 28, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7500, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2155, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 31, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7560, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2158, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2161, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2164, false, -1, -1, -1, 7620, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2167, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 29, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 30, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 32, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7680, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7740, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2170, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2173, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2176, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 33, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 34, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 35, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7800, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2179, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2182, false, -1, -1, -1, 7860, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2185, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2188, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 36, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2191, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 103, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 107, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2194, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 118, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 122, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2197, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2200, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NOBREAK, utf8proc_sequences + 2203, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 216, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2205, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2208, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2211, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2214, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2217, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2220, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 129, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 130, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2223, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 132, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2226, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2229, false, -1, -1, -1, -1, -1, true, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2232, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2235, false, -1, -1, -1, -1, -1, true, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2238, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2241, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2244, false, -1, -1, -1, -1, -1, true, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2247, false, -1, -1, -1, -1, -1, true, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2250, false, -1, -1, -1, -1, -1, true, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2253, false, -1, -1, -1, -1, -1, true, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2256, false, -1, -1, -1, -1, -1, true, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, utf8proc_sequences + 2259, false, -1, -1, -1, -1, -1, true, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7920, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2262, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 37, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11520, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2265},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11521, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2267},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11522, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2269},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11523, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2271},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11524, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2273},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11525, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2275},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11526, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2277},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11527, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2279},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11528, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2281},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11529, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2283},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11530, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2285},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11531, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2287},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11532, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2289},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11533, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2291},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11534, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2293},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11535, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2295},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11536, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2297},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11537, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2299},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11538, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2301},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11539, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2303},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11540, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2305},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11541, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2307},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11542, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2309},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11543, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2311},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11544, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2313},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11545, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2315},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11546, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2317},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11547, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2319},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11548, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2321},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11549, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2323},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11550, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2325},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11551, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2327},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11552, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2329},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11553, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2331},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11554, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2333},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11555, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2335},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11556, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2337},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11557, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2339},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2341, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, true, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 7980, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2343, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 8040, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2346, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 8100, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2349, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 8160, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2352, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 8220, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2355, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 8280, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2358, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 38, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, 8340, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2361, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, 8400, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2364, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 8460, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 8520, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2367, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2370, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, 8580, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2373, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 9, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2376, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2378, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2380, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2382, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2384, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2386, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2388, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2390, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2392, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2394, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2396, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2398, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2400, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2402, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2404, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2406, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2408, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2410, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2412, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2414, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2416, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 0, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2418, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2420, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2422, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 6, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 8, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 792, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 794, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2424, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 12, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 20, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 24, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 579, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 28, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 780, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2426, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2428, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 30, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 38, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 40, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2430, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 808, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 42, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2432, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1384, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1386, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1388, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1418, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1420, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 16, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 34, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 40, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 42, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 1384, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 1386, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 1410, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 1418, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 1420, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1602, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11363, -1, 11363, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2434, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2436, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 163, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 10, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2438, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2440, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2442, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 804, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 802, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2444, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2446, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2448, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2450, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2452, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2454, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2456, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2458, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 810, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2460, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2462, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 812, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2464, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2466, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 830, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2468, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1275, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 844, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2470, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 846, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1277, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 50, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2472, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 2474, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 852, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 1396, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2476, false, -1, 7681, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2479},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2481, false, 7680, -1, 7680, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2484, false, -1, 7683, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2487},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2489, false, 7682, -1, 7682, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2492, false, -1, 7685, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2495},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2497, false, 7684, -1, 7684, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2500, false, -1, 7687, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2503},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2505, false, 7686, -1, 7686, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2508, false, -1, 7689, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2511},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2513, false, 7688, -1, 7688, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2516, false, -1, 7691, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2519},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2521, false, 7690, -1, 7690, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2524, false, -1, 7693, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2527},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2529, false, 7692, -1, 7692, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2532, false, -1, 7695, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2535},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2537, false, 7694, -1, 7694, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2540, false, -1, 7697, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2543},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2545, false, 7696, -1, 7696, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2548, false, -1, 7699, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2551},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2553, false, 7698, -1, 7698, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2556, false, -1, 7701, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2559},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2561, false, 7700, -1, 7700, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2564, false, -1, 7703, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2567},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2569, false, 7702, -1, 7702, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2572, false, -1, 7705, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2575},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2577, false, 7704, -1, 7704, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2580, false, -1, 7707, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2583},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2585, false, 7706, -1, 7706, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2588, false, -1, 7709, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2591},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2593, false, 7708, -1, 7708, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2596, false, -1, 7711, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2599},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2601, false, 7710, -1, 7710, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2604, false, -1, 7713, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2607},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2609, false, 7712, -1, 7712, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2612, false, -1, 7715, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2615},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2617, false, 7714, -1, 7714, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2620, false, -1, 7717, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2623},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2625, false, 7716, -1, 7716, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2628, false, -1, 7719, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2631},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2633, false, 7718, -1, 7718, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2636, false, -1, 7721, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2639},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2641, false, 7720, -1, 7720, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2644, false, -1, 7723, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2647},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2649, false, 7722, -1, 7722, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2652, false, -1, 7725, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2655},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2657, false, 7724, -1, 7724, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2660, false, -1, 7727, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2663},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2665, false, 7726, -1, 7726, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2668, false, -1, 7729, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2671},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2673, false, 7728, -1, 7728, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2676, false, -1, 7731, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2679},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2681, false, 7730, -1, 7730, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2684, false, -1, 7733, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2687},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2689, false, 7732, -1, 7732, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2692, false, -1, 7735, -1, 9360, -1, false, false, false, false, utf8proc_sequences + 2695},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2697, false, 7734, -1, 7734, 9420, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2700, false, -1, 7737, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2703},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2705, false, 7736, -1, 7736, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2708, false, -1, 7739, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2711},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2713, false, 7738, -1, 7738, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2716, false, -1, 7741, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2719},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2721, false, 7740, -1, 7740, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2724, false, -1, 7743, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2727},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2729, false, 7742, -1, 7742, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2732, false, -1, 7745, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2735},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2737, false, 7744, -1, 7744, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2740, false, -1, 7747, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2743},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2745, false, 7746, -1, 7746, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2748, false, -1, 7749, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2751},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2753, false, 7748, -1, 7748, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2756, false, -1, 7751, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2759},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2761, false, 7750, -1, 7750, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2764, false, -1, 7753, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2767},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2769, false, 7752, -1, 7752, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2772, false, -1, 7755, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2775},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2777, false, 7754, -1, 7754, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2780, false, -1, 7757, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2783},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2785, false, 7756, -1, 7756, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2788, false, -1, 7759, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2791},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2793, false, 7758, -1, 7758, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2796, false, -1, 7761, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2799},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2801, false, 7760, -1, 7760, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2804, false, -1, 7763, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2807},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2809, false, 7762, -1, 7762, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2812, false, -1, 7765, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2815},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2817, false, 7764, -1, 7764, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2820, false, -1, 7767, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2823},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2825, false, 7766, -1, 7766, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2828, false, -1, 7769, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2831},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2833, false, 7768, -1, 7768, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2836, false, -1, 7771, -1, 9840, -1, false, false, false, false, utf8proc_sequences + 2839},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2841, false, 7770, -1, 7770, 9900, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2844, false, -1, 7773, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2847},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2849, false, 7772, -1, 7772, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2852, false, -1, 7775, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2855},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2857, false, 7774, -1, 7774, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2860, false, -1, 7777, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2863},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2865, false, 7776, -1, 7776, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2868, false, -1, 7779, -1, 10200, -1, false, false, false, false, utf8proc_sequences + 2871},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2873, false, 7778, -1, 7778, 10260, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2876, false, -1, 7781, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2879},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2881, false, 7780, -1, 7780, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2884, false, -1, 7783, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2887},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2889, false, 7782, -1, 7782, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2892, false, -1, 7785, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2895},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2897, false, 7784, -1, 7784, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2900, false, -1, 7787, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2903},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2905, false, 7786, -1, 7786, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2908, false, -1, 7789, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2911},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2913, false, 7788, -1, 7788, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2916, false, -1, 7791, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2919},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2921, false, 7790, -1, 7790, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2924, false, -1, 7793, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2927},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2929, false, 7792, -1, 7792, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2932, false, -1, 7795, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2935},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2937, false, 7794, -1, 7794, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2940, false, -1, 7797, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2943},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2945, false, 7796, -1, 7796, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2948, false, -1, 7799, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2951},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2953, false, 7798, -1, 7798, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2956, false, -1, 7801, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2959},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2961, false, 7800, -1, 7800, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2964, false, -1, 7803, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2967},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2969, false, 7802, -1, 7802, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2972, false, -1, 7805, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2975},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2977, false, 7804, -1, 7804, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2980, false, -1, 7807, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2983},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2985, false, 7806, -1, 7806, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2988, false, -1, 7809, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2991},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2993, false, 7808, -1, 7808, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2996, false, -1, 7811, -1, -1, -1, false, false, false, false, utf8proc_sequences + 2999},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3001, false, 7810, -1, 7810, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3004, false, -1, 7813, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3007},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3009, false, 7812, -1, 7812, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3012, false, -1, 7815, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3015},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3017, false, 7814, -1, 7814, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3020, false, -1, 7817, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3023},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3025, false, 7816, -1, 7816, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3028, false, -1, 7819, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3031},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3033, false, 7818, -1, 7818, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3036, false, -1, 7821, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3039},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3041, false, 7820, -1, 7820, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3044, false, -1, 7823, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3047},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3049, false, 7822, -1, 7822, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3052, false, -1, 7825, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3055},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3057, false, 7824, -1, 7824, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3060, false, -1, 7827, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3063},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3065, false, 7826, -1, 7826, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3068, false, -1, 7829, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3071},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3073, false, 7828, -1, 7828, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3076, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3076},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3079, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3079},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3082, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3082},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3085, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3085},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 3088, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3088},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3091, false, 7776, -1, 7776, -1, -1, false, false, false, false, utf8proc_sequences + 2863},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3094, false, -1, 7841, -1, 10980, -1, false, false, false, false, utf8proc_sequences + 3097},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3099, false, 7840, -1, 7840, 11040, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3102, false, -1, 7843, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3105},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3107, false, 7842, -1, 7842, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3110, false, -1, 7845, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3113},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3115, false, 7844, -1, 7844, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3118, false, -1, 7847, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3121},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3123, false, 7846, -1, 7846, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3126, false, -1, 7849, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3129},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3131, false, 7848, -1, 7848, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3134, false, -1, 7851, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3137},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3139, false, 7850, -1, 7850, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3142, false, -1, 7853, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3145},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3147, false, 7852, -1, 7852, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3150, false, -1, 7855, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3153},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3155, false, 7854, -1, 7854, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3158, false, -1, 7857, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3161},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3163, false, 7856, -1, 7856, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3166, false, -1, 7859, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3169},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3171, false, 7858, -1, 7858, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3174, false, -1, 7861, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3177},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3179, false, 7860, -1, 7860, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3182, false, -1, 7863, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3185},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3187, false, 7862, -1, 7862, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3190, false, -1, 7865, -1, 11340, -1, false, false, false, false, utf8proc_sequences + 3193},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3195, false, 7864, -1, 7864, 11400, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3198, false, -1, 7867, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3201},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3203, false, 7866, -1, 7866, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3206, false, -1, 7869, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3209},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3211, false, 7868, -1, 7868, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3214, false, -1, 7871, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3217},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3219, false, 7870, -1, 7870, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3222, false, -1, 7873, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3225},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3227, false, 7872, -1, 7872, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3230, false, -1, 7875, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3233},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3235, false, 7874, -1, 7874, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3238, false, -1, 7877, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3241},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3243, false, 7876, -1, 7876, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3246, false, -1, 7879, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3249},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3251, false, 7878, -1, 7878, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3254, false, -1, 7881, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3257},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3259, false, 7880, -1, 7880, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3262, false, -1, 7883, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3265},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3267, false, 7882, -1, 7882, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3270, false, -1, 7885, -1, 11580, -1, false, false, false, false, utf8proc_sequences + 3273},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3275, false, 7884, -1, 7884, 11640, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3278, false, -1, 7887, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3281},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3283, false, 7886, -1, 7886, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3286, false, -1, 7889, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3289},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3291, false, 7888, -1, 7888, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3294, false, -1, 7891, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3297},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3299, false, 7890, -1, 7890, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3302, false, -1, 7893, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3305},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3307, false, 7892, -1, 7892, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3310, false, -1, 7895, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3313},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3315, false, 7894, -1, 7894, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3318, false, -1, 7897, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3321},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3323, false, 7896, -1, 7896, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3326, false, -1, 7899, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3329},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3331, false, 7898, -1, 7898, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3334, false, -1, 7901, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3337},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3339, false, 7900, -1, 7900, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3342, false, -1, 7903, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3345},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3347, false, 7902, -1, 7902, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3350, false, -1, 7905, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3353},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3355, false, 7904, -1, 7904, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3358, false, -1, 7907, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3361},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3363, false, 7906, -1, 7906, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3366, false, -1, 7909, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3369},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3371, false, 7908, -1, 7908, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3374, false, -1, 7911, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3377},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3379, false, 7910, -1, 7910, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3382, false, -1, 7913, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3385},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3387, false, 7912, -1, 7912, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3390, false, -1, 7915, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3393},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3395, false, 7914, -1, 7914, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3398, false, -1, 7917, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3401},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3403, false, 7916, -1, 7916, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3406, false, -1, 7919, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3409},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3411, false, 7918, -1, 7918, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3414, false, -1, 7921, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3417},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3419, false, 7920, -1, 7920, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3422, false, -1, 7923, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3425},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3427, false, 7922, -1, 7922, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3430, false, -1, 7925, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3433},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3435, false, 7924, -1, 7924, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3438, false, -1, 7927, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3441},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3443, false, 7926, -1, 7926, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3446, false, -1, 7929, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3449},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3451, false, 7928, -1, 7928, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3454, false, 7944, -1, 7944, 11940, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3457, false, 7945, -1, 7945, 12000, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3460, false, 7946, -1, 7946, 13560, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3463, false, 7947, -1, 7947, 13620, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3466, false, 7948, -1, 7948, 13680, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3469, false, 7949, -1, 7949, 13740, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3472, false, 7950, -1, 7950, 13800, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3475, false, 7951, -1, 7951, 13860, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3478, false, -1, 7936, -1, 12060, -1, false, false, false, false, utf8proc_sequences + 3481},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3483, false, -1, 7937, -1, 12120, -1, false, false, false, false, utf8proc_sequences + 3486},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3488, false, -1, 7938, -1, 13920, -1, false, false, false, false, utf8proc_sequences + 3491},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3493, false, -1, 7939, -1, 13980, -1, false, false, false, false, utf8proc_sequences + 3496},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3498, false, -1, 7940, -1, 14040, -1, false, false, false, false, utf8proc_sequences + 3501},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3503, false, -1, 7941, -1, 14100, -1, false, false, false, false, utf8proc_sequences + 3506},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3508, false, -1, 7942, -1, 14160, -1, false, false, false, false, utf8proc_sequences + 3511},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3513, false, -1, 7943, -1, 14220, -1, false, false, false, false, utf8proc_sequences + 3516},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3518, false, 7960, -1, 7960, 12180, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3521, false, 7961, -1, 7961, 12240, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3524, false, 7962, -1, 7962, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3527, false, 7963, -1, 7963, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3530, false, 7964, -1, 7964, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3533, false, 7965, -1, 7965, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3536, false, -1, 7952, -1, 12300, -1, false, false, false, false, utf8proc_sequences + 3539},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3541, false, -1, 7953, -1, 12360, -1, false, false, false, false, utf8proc_sequences + 3544},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3546, false, -1, 7954, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3549},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3551, false, -1, 7955, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3554},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3556, false, -1, 7956, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3559},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3561, false, -1, 7957, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3564},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3566, false, 7976, -1, 7976, 12420, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3569, false, 7977, -1, 7977, 12480, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3572, false, 7978, -1, 7978, 14280, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3575, false, 7979, -1, 7979, 14340, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3578, false, 7980, -1, 7980, 14400, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3581, false, 7981, -1, 7981, 14460, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3584, false, 7982, -1, 7982, 14520, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3587, false, 7983, -1, 7983, 14580, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3590, false, -1, 7968, -1, 12540, -1, false, false, false, false, utf8proc_sequences + 3593},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3595, false, -1, 7969, -1, 12600, -1, false, false, false, false, utf8proc_sequences + 3598},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3600, false, -1, 7970, -1, 14640, -1, false, false, false, false, utf8proc_sequences + 3603},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3605, false, -1, 7971, -1, 14700, -1, false, false, false, false, utf8proc_sequences + 3608},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3610, false, -1, 7972, -1, 14760, -1, false, false, false, false, utf8proc_sequences + 3613},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3615, false, -1, 7973, -1, 14820, -1, false, false, false, false, utf8proc_sequences + 3618},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3620, false, -1, 7974, -1, 14880, -1, false, false, false, false, utf8proc_sequences + 3623},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3625, false, -1, 7975, -1, 14940, -1, false, false, false, false, utf8proc_sequences + 3628},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3630, false, 7992, -1, 7992, 12660, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3633, false, 7993, -1, 7993, 12720, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3636, false, 7994, -1, 7994, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3639, false, 7995, -1, 7995, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3642, false, 7996, -1, 7996, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3645, false, 7997, -1, 7997, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3648, false, 7998, -1, 7998, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3651, false, 7999, -1, 7999, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3654, false, -1, 7984, -1, 12780, -1, false, false, false, false, utf8proc_sequences + 3657},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3659, false, -1, 7985, -1, 12840, -1, false, false, false, false, utf8proc_sequences + 3662},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3664, false, -1, 7986, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3667},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3669, false, -1, 7987, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3672},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3674, false, -1, 7988, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3677},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3679, false, -1, 7989, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3682},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3684, false, -1, 7990, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3687},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3689, false, -1, 7991, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3692},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3694, false, 8008, -1, 8008, 12900, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3697, false, 8009, -1, 8009, 12960, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3700, false, 8010, -1, 8010, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3703, false, 8011, -1, 8011, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3706, false, 8012, -1, 8012, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3709, false, 8013, -1, 8013, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3712, false, -1, 8000, -1, 13020, -1, false, false, false, false, utf8proc_sequences + 3715},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3717, false, -1, 8001, -1, 13080, -1, false, false, false, false, utf8proc_sequences + 3720},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3722, false, -1, 8002, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3725},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3727, false, -1, 8003, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3730},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3732, false, -1, 8004, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3735},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3737, false, -1, 8005, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3740},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3742, false, -1, -1, -1, 13140, -1, false, false, false, false, utf8proc_sequences + 3742},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3745, false, 8025, -1, 8025, 13200, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3748, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3751},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3755, false, 8027, -1, 8027, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3758, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3761},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3765, false, 8029, -1, 8029, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3768, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3771},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3775, false, 8031, -1, 8031, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3778, false, -1, 8017, -1, 13260, -1, false, false, false, false, utf8proc_sequences + 3781},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3783, false, -1, 8019, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3786},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3788, false, -1, 8021, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3791},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3793, false, -1, 8023, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3796},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3798, false, 8040, -1, 8040, 13320, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3801, false, 8041, -1, 8041, 13380, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3804, false, 8042, -1, 8042, 15000, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3807, false, 8043, -1, 8043, 15060, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3810, false, 8044, -1, 8044, 15120, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3813, false, 8045, -1, 8045, 15180, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3816, false, 8046, -1, 8046, 15240, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3819, false, 8047, -1, 8047, 15300, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3822, false, -1, 8032, -1, 13440, -1, false, false, false, false, utf8proc_sequences + 3825},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3827, false, -1, 8033, -1, 13500, -1, false, false, false, false, utf8proc_sequences + 3830},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3832, false, -1, 8034, -1, 15360, -1, false, false, false, false, utf8proc_sequences + 3835},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3837, false, -1, 8035, -1, 15420, -1, false, false, false, false, utf8proc_sequences + 3840},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3842, false, -1, 8036, -1, 15480, -1, false, false, false, false, utf8proc_sequences + 3845},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3847, false, -1, 8037, -1, 15540, -1, false, false, false, false, utf8proc_sequences + 3850},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3852, false, -1, 8038, -1, 15600, -1, false, false, false, false, utf8proc_sequences + 3855},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3857, false, -1, 8039, -1, 15660, -1, false, false, false, false, utf8proc_sequences + 3860},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3862, false, 8122, -1, 8122, 15720, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1341, false, 8123, -1, 8123, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3865, false, 8136, -1, 8136, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1348, false, 8137, -1, 8137, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3868, false, 8138, -1, 8138, 15900, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1353, false, 8139, -1, 8139, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3871, false, 8154, -1, 8154, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1358, false, 8155, -1, 8155, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3874, false, 8184, -1, 8184, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1363, false, 8185, -1, 8185, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3877, false, 8170, -1, 8170, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1368, false, 8171, -1, 8171, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3880, false, 8186, -1, 8186, 16320, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1373, false, 8187, -1, 8187, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3883, false, 8072, -1, 8072, -1, -1, false, false, false, false, utf8proc_sequences + 3886},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3889, false, 8073, -1, 8073, -1, -1, false, false, false, false, utf8proc_sequences + 3892},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3895, false, 8074, -1, 8074, -1, -1, false, false, false, false, utf8proc_sequences + 3898},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3901, false, 8075, -1, 8075, -1, -1, false, false, false, false, utf8proc_sequences + 3904},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3907, false, 8076, -1, 8076, -1, -1, false, false, false, false, utf8proc_sequences + 3910},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3913, false, 8077, -1, 8077, -1, -1, false, false, false, false, utf8proc_sequences + 3916},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3919, false, 8078, -1, 8078, -1, -1, false, false, false, false, utf8proc_sequences + 3922},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3925, false, 8079, -1, 8079, -1, -1, false, false, false, false, utf8proc_sequences + 3928},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3931, false, -1, 8064, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3934},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3936, false, -1, 8065, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3939},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3941, false, -1, 8066, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3944},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3946, false, -1, 8067, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3949},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3951, false, -1, 8068, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3954},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3956, false, -1, 8069, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3959},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3961, false, -1, 8070, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3964},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3966, false, -1, 8071, -1, -1, -1, false, false, false, false, utf8proc_sequences + 3969},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3971, false, 8088, -1, 8088, -1, -1, false, false, false, false, utf8proc_sequences + 3974},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3977, false, 8089, -1, 8089, -1, -1, false, false, false, false, utf8proc_sequences + 3980},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3983, false, 8090, -1, 8090, -1, -1, false, false, false, false, utf8proc_sequences + 3986},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3989, false, 8091, -1, 8091, -1, -1, false, false, false, false, utf8proc_sequences + 3992},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 3995, false, 8092, -1, 8092, -1, -1, false, false, false, false, utf8proc_sequences + 3998},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4001, false, 8093, -1, 8093, -1, -1, false, false, false, false, utf8proc_sequences + 4004},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4007, false, 8094, -1, 8094, -1, -1, false, false, false, false, utf8proc_sequences + 4010},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4013, false, 8095, -1, 8095, -1, -1, false, false, false, false, utf8proc_sequences + 4016},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4019, false, -1, 8080, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4022},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4024, false, -1, 8081, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4027},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4029, false, -1, 8082, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4032},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4034, false, -1, 8083, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4037},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4039, false, -1, 8084, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4042},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4044, false, -1, 8085, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4047},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4049, false, -1, 8086, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4052},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4054, false, -1, 8087, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4057},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4059, false, 8104, -1, 8104, -1, -1, false, false, false, false, utf8proc_sequences + 4062},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4065, false, 8105, -1, 8105, -1, -1, false, false, false, false, utf8proc_sequences + 4068},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4071, false, 8106, -1, 8106, -1, -1, false, false, false, false, utf8proc_sequences + 4074},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4077, false, 8107, -1, 8107, -1, -1, false, false, false, false, utf8proc_sequences + 4080},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4083, false, 8108, -1, 8108, -1, -1, false, false, false, false, utf8proc_sequences + 4086},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4089, false, 8109, -1, 8109, -1, -1, false, false, false, false, utf8proc_sequences + 4092},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4095, false, 8110, -1, 8110, -1, -1, false, false, false, false, utf8proc_sequences + 4098},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4101, false, 8111, -1, 8111, -1, -1, false, false, false, false, utf8proc_sequences + 4104},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4107, false, -1, 8096, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4110},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4112, false, -1, 8097, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4115},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4117, false, -1, 8098, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4120},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4122, false, -1, 8099, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4125},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4127, false, -1, 8100, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4130},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4132, false, -1, 8101, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4135},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4137, false, -1, 8102, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4140},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4142, false, -1, 8103, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4145},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4147, false, 8120, -1, 8120, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4150, false, 8121, -1, 8121, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4153, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4156},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4159, false, 8124, -1, 8124, -1, -1, false, false, false, false, utf8proc_sequences + 4162},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4165, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4168},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4171, false, -1, -1, -1, 15840, -1, false, false, false, false, utf8proc_sequences + 4171},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4174, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4177},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4181, false, -1, 8112, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4184},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4186, false, -1, 8113, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4189},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4191, false, -1, 8048, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4194},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4196, false, -1, 8049, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4198},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4200, false, -1, 8115, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4203},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4205, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 1326, false, 921, -1, 921, -1, -1, false, false, false, false, utf8proc_sequences + 1326},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4205, false, -1, -1, -1, 16080, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4208, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4211, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4214, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4217},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4220, false, 8140, -1, 8140, -1, -1, false, false, false, false, utf8proc_sequences + 4223},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4226, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4229},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4232, false, -1, -1, -1, 16020, -1, false, false, false, false, utf8proc_sequences + 4232},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4235, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4238},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4242, false, -1, 8050, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4245},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4247, false, -1, 8051, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4249},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4251, false, -1, 8052, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4254},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4256, false, -1, 8053, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4258},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4260, false, -1, 8131, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4263},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4265, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4268, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4271, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4274, false, 8152, -1, 8152, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4277, false, 8153, -1, 8153, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4280, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4283},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4287, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1378},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4289, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4289},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4292, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4295},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4299, false, -1, 8144, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4302},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4304, false, -1, 8145, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4307},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4309, false, -1, 8054, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4312},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4314, false, -1, 8055, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4316},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4318, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4321, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4324, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4327, false, 8168, -1, 8168, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4330, false, 8169, -1, 8169, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4333, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4336},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4340, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1451},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4342, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4342},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4345, false, 8172, -1, 8172, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4348, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4348},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4351, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4354},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4358, false, -1, 8160, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4361},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4363, false, -1, 8161, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4366},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4368, false, -1, 8058, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4371},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4373, false, -1, 8059, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4375},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4377, false, -1, 8165, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4380},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4382, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4385, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4387, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4389, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4392},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4395, false, 8188, -1, 8188, -1, -1, false, false, false, false, utf8proc_sequences + 4398},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4401, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4404},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4407, false, -1, -1, -1, 16440, -1, false, false, false, false, utf8proc_sequences + 4407},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4410, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4413},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4417, false, -1, 8056, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4420},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4422, false, -1, 8057, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4424},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4426, false, -1, 8060, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4429},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4431, false, -1, 8061, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4433},
-  {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4435, false, -1, 8179, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4438},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4440, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4442, false, -1, -1, -1, 16140, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, utf8proc_sequences + 4445, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, utf8proc_sequences + 4447, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 52, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_NOBREAK, utf8proc_sequences + 52, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_BN, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, true, NULL},
-  {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_R, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NOBREAK, utf8proc_sequences + 4449, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4451, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4454, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4456, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4459, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ZL, 0, UTF8PROC_BIDI_CLASS_WS, 0, NULL, false, -1, -1, -1, -1, -1, false, false, true, false, NULL},
-  {UTF8PROC_CATEGORY_ZP, 0, UTF8PROC_BIDI_CLASS_B, 0, NULL, false, -1, -1, -1, -1, -1, false, false, true, false, NULL},
-  {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_LRE, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_RLE, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_PDF, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_LRO, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_RLO, 0, NULL, false, -1, -1, -1, -1, -1, false, true, true, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4463, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4466, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4470, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4473, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4477, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4480, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_CS, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4483, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4486, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4489, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4492, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4497, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 16, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4499, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4501, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4503, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4505, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4507, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4509, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4511, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4513, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4515, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4517, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4519, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 26, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4497, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 72, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 60, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 62, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4499, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4501, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4503, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4505, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4507, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4509, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4511, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4513, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4515, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4517, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 4519, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 0, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 8, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 28, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 46, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, utf8proc_sequences + 792, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4521, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4524, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4528, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4532, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4534, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4537, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4541, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4545, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4547, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 12, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2390, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 14, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 454, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2392, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2398, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 22, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2402, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4550, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2408, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4553, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2410, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4555, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4558, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 4562, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4565, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4567, false, -1, 969, -1, -1, -1, false, false, false, false, utf8proc_sequences + 1424},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 2396, false, -1, 107, -1, -1, -1, false, false, false, false, utf8proc_sequences + 20},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 4569, false, -1, 229, -1, -1, -1, false, false, false, false, utf8proc_sequences + 114},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2380, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 8, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2384, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4571, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 8526, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4573},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2400, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 28, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4575, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4577, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4579, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4581, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 16, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4583, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1408, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1386, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4587, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4589, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4591, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2382, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 6, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 18, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 8498, -1, 8498, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4593, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4597, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4601, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4605, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4609, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4613, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4617, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4621, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4625, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4629, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4633, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4637, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, utf8proc_sequences + 4641, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2392, false, -1, 8560, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4644},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4646, false, -1, 8561, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4649},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4651, false, -1, 8562, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4655},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4657, false, -1, 8563, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4660},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4662, false, -1, 8564, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4664},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4666, false, -1, 8565, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4669},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4671, false, -1, 8566, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4675},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4677, false, -1, 8567, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4682},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4684, false, -1, 8568, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4687},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4689, false, -1, 8569, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4691},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4693, false, -1, 8570, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4696},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4698, false, -1, 8571, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4702},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2398, false, -1, 8572, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4704},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4532, false, -1, 8573, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4706},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2382, false, -1, 8574, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4708},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 2400, false, -1, 8575, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4710},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 16, false, 8544, -1, 8544, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4712, false, 8545, -1, 8545, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4715, false, 8546, -1, 8546, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4719, false, 8547, -1, 8547, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 42, false, 8548, -1, 8548, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4722, false, 8549, -1, 8549, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4725, false, 8550, -1, 8550, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4729, false, 8551, -1, 8551, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4734, false, 8552, -1, 8552, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 46, false, 8553, -1, 8553, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4737, false, 8554, -1, 8554, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4740, false, 8555, -1, 8555, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 22, false, 8556, -1, 8556, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4, false, 8557, -1, 8557, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6, false, 8558, -1, 8558, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 24, false, 8559, -1, 8559, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 8580, -1, -1, -1, false, false, false, false, utf8proc_sequences + 4744},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 8579, -1, 8579, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 16500, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 16560, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 16620, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4746, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4749, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4752, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4755, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4758, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4761, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 16680, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 16800, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 16740, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 16860, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4764, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 16920, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4767, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 16980, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4770, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 17040, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4773, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 17100, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4776, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4779, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4782, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4786, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4789, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 17160, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4793, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 17220, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4796, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 17280, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4799, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 17340, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4802, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 17520, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4805, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 17460, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4808, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 17700, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 17760, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4811, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4814, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4817, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4820, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4823, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 17820, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 17880, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4826, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4829, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 17940, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18000, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4832, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4835, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18060, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18120, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18660, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18720, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4838, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4841, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18180, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18240, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4844, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4847, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18300, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18360, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4850, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4853, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18780, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18840, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18420, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18480, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18540, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18600, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4856, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4859, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4862, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4865, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18900, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 18960, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 19020, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, true, -1, -1, -1, 19080, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4868, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4871, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4874, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4877, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4880, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4883, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4886, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4889, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4892, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 4894, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 72, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 60, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 62, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4499, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4501, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4503, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4505, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4507, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4509, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4896, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4899, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4902, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4905, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4908, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4911, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4914, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4917, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4920, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4923, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4926, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4929, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4933, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4937, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4941, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4945, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4949, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4953, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4957, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4961, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4965, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4970, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4975, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4980, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4985, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4990, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 4995, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5000, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5005, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5010, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5015, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5020, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5023, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5026, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5029, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5032, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5035, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5038, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5041, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5044, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5047, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5051, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5055, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5059, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5063, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5067, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5071, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5075, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5079, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5083, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5087, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5091, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5095, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5099, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5103, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5107, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5111, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5115, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5119, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5123, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5127, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5131, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5135, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5139, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5143, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5147, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5151, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5155, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5159, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5163, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5167, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5171, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5175, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5179, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5183, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5187, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5191, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2376, false, -1, 9424, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5195},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2380, false, -1, 9425, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5197},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4532, false, -1, 9426, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5199},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2382, false, -1, 9427, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5201},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2384, false, -1, 9428, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5203},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4571, false, -1, 9429, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5205},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2388, false, -1, 9430, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5207},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2390, false, -1, 9431, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5209},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2392, false, -1, 9432, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5211},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2394, false, -1, 9433, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5213},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2396, false, -1, 9434, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5215},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2398, false, -1, 9435, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5217},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2400, false, -1, 9436, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5219},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2402, false, -1, 9437, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5221},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2404, false, -1, 9438, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5223},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2408, false, -1, 9439, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5225},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4553, false, -1, 9440, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5227},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2410, false, -1, 9441, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5229},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5231, false, -1, 9442, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5233},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2412, false, -1, 9443, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5235},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2414, false, -1, 9444, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5237},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4662, false, -1, 9445, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5239},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2416, false, -1, 9446, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5241},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4689, false, -1, 9447, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5243},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5245, false, -1, 9448, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5247},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4565, false, -1, 9449, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5249},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 0, false, 9398, -1, 9398, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 2, false, 9399, -1, 9399, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4, false, 9400, -1, 9400, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6, false, 9401, -1, 9401, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 8, false, 9402, -1, 9402, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 10, false, 9403, -1, 9403, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 12, false, 9404, -1, 9404, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 14, false, 9405, -1, 9405, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 16, false, 9406, -1, 9406, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 18, false, 9407, -1, 9407, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 20, false, 9408, -1, 9408, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 22, false, 9409, -1, 9409, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 24, false, 9410, -1, 9410, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 26, false, 9411, -1, 9411, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 28, false, 9412, -1, 9412, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 30, false, 9413, -1, 9413, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 32, false, 9414, -1, 9414, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 34, false, 9415, -1, 9415, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 36, false, 9416, -1, 9416, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 38, false, 9417, -1, 9417, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 40, false, 9418, -1, 9418, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 42, false, 9419, -1, 9419, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 44, false, 9420, -1, 9420, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 46, false, 9421, -1, 9421, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 48, false, 9422, -1, 9422, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 50, false, 9423, -1, 9423, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 4497, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5251, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5256, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5260, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5263, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, utf8proc_sequences + 5267, true, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, 19140, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11312, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5270},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11313, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5272},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11314, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5274},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11315, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5276},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11316, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5278},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11317, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5280},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11318, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5282},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11319, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5284},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11320, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5286},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11321, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5288},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11322, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5290},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11323, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5292},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11324, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5294},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11325, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5296},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11326, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5298},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11327, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5300},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11328, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5302},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11329, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5304},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11330, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5306},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11331, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5308},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11332, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5310},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11333, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5312},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11334, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5314},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11335, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5316},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11336, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5318},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11337, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5320},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11338, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5322},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11339, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5324},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11340, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5326},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11341, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5328},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11342, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5330},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11343, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5332},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11344, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5334},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11345, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5336},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11346, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5338},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11347, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5340},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11348, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5342},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11349, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5344},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11350, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5346},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11351, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5348},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11352, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5350},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11353, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5352},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11354, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5354},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11355, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5356},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11356, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5358},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11357, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5360},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11358, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5362},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11264, -1, 11264, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11265, -1, 11265, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11266, -1, 11266, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11267, -1, 11267, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11268, -1, 11268, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11269, -1, 11269, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11270, -1, 11270, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11271, -1, 11271, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11272, -1, 11272, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11273, -1, 11273, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11274, -1, 11274, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11275, -1, 11275, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11276, -1, 11276, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11277, -1, 11277, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11278, -1, 11278, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11279, -1, 11279, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11280, -1, 11280, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11281, -1, 11281, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11282, -1, 11282, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11283, -1, 11283, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11284, -1, 11284, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11285, -1, 11285, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11286, -1, 11286, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11287, -1, 11287, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11288, -1, 11288, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11289, -1, 11289, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11290, -1, 11290, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11291, -1, 11291, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11292, -1, 11292, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11293, -1, 11293, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11294, -1, 11294, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11295, -1, 11295, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11296, -1, 11296, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11297, -1, 11297, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11298, -1, 11298, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11299, -1, 11299, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11300, -1, 11300, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11301, -1, 11301, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11302, -1, 11302, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11303, -1, 11303, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11304, -1, 11304, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11305, -1, 11305, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11306, -1, 11306, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11307, -1, 11307, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11308, -1, 11308, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11309, -1, 11309, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11310, -1, 11310, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11361, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5364},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11360, -1, 11360, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 619, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5366},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 7549, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5368},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 637, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5370},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 570, -1, 570, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 574, -1, 574, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11368, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5372},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11367, -1, 11367, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11370, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5374},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11369, -1, 11369, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11372, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5376},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11371, -1, 11371, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11382, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5378},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11381, -1, 11381, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11393, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5380},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11392, -1, 11392, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11395, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5382},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11394, -1, 11394, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11397, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5384},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11396, -1, 11396, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11399, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5386},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11398, -1, 11398, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11401, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5388},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11400, -1, 11400, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11403, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5390},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11402, -1, 11402, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11405, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5392},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11404, -1, 11404, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11407, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5394},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11406, -1, 11406, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11409, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5396},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11408, -1, 11408, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11411, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5398},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11410, -1, 11410, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11413, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5400},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11412, -1, 11412, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11415, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5402},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11414, -1, 11414, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11417, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5404},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11416, -1, 11416, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11419, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5406},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11418, -1, 11418, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11421, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5408},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11420, -1, 11420, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11423, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5410},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11422, -1, 11422, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11425, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5412},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11424, -1, 11424, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11427, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5414},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11426, -1, 11426, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11429, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5416},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11428, -1, 11428, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11431, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5418},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11430, -1, 11430, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11433, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5420},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11432, -1, 11432, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11435, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5422},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11434, -1, 11434, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11437, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5424},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11436, -1, 11436, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11439, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5426},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11438, -1, 11438, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11441, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5428},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11440, -1, 11440, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11443, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5430},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11442, -1, 11442, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11445, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5432},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11444, -1, 11444, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11447, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5434},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11446, -1, 11446, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11449, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5436},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11448, -1, 11448, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11451, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5438},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11450, -1, 11450, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11453, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5440},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11452, -1, 11452, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11455, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5442},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11454, -1, 11454, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11457, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5444},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11456, -1, 11456, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11459, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5446},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11458, -1, 11458, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11461, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5448},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11460, -1, 11460, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11463, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5450},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11462, -1, 11462, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11465, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5452},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11464, -1, 11464, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11467, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5454},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11466, -1, 11466, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11469, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5456},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11468, -1, 11468, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11471, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5458},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11470, -1, 11470, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11473, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5460},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11472, -1, 11472, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11475, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5462},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11474, -1, 11474, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11477, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5464},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11476, -1, 11476, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11479, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5466},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11478, -1, 11478, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11481, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5468},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11480, -1, 11480, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11483, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5470},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11482, -1, 11482, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11485, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5472},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11484, -1, 11484, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11487, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5474},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11486, -1, 11486, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11489, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5476},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11488, -1, 11488, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 11491, -1, -1, -1, false, false, false, false, utf8proc_sequences + 5478},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 11490, -1, 11490, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4256, -1, 4256, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4257, -1, 4257, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4258, -1, 4258, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4259, -1, 4259, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4260, -1, 4260, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4261, -1, 4261, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4262, -1, 4262, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4263, -1, 4263, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4264, -1, 4264, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4265, -1, 4265, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4266, -1, 4266, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4267, -1, 4267, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4268, -1, 4268, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4269, -1, 4269, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4270, -1, 4270, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4271, -1, 4271, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4272, -1, 4272, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4273, -1, 4273, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4274, -1, 4274, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4275, -1, 4275, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4276, -1, 4276, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4277, -1, 4277, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4278, -1, 4278, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4279, -1, 4279, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4280, -1, 4280, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4281, -1, 4281, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4282, -1, 4282, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4283, -1, 4283, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4284, -1, 4284, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4285, -1, 4285, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4286, -1, 4286, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4287, -1, 4287, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4288, -1, 4288, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4289, -1, 4289, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4290, -1, 4290, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4291, -1, 4291, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4292, -1, 4292, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 4293, -1, 4293, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 5480, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5482, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5484, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5486, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5488, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5490, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5492, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5494, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5496, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5498, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5500, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5502, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5504, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5506, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5508, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5510, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5512, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5514, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5516, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5518, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5520, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5522, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5524, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5526, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5528, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5530, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5532, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5534, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5536, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5538, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5540, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5542, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5544, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5546, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5548, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5550, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5552, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5554, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5556, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5558, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5560, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5562, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5564, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5566, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5568, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5570, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5572, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5574, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5576, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5578, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5580, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5582, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5584, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5586, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5588, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5590, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5592, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5594, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5596, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5598, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5600, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5602, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5604, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5606, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5608, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5610, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5612, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5614, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5616, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5618, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5620, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5622, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5624, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5626, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5628, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5630, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5632, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5634, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5636, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5638, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5640, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5642, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5644, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5646, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5648, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5650, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5652, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5654, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5656, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5658, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5660, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5662, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5664, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5666, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5668, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5670, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5672, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5674, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5676, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5678, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5680, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5682, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5684, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5686, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5688, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5690, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5692, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5694, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5696, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5698, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5700, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5702, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5704, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5706, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5708, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5710, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5712, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5714, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5716, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5718, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5720, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5722, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5724, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5726, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5728, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5730, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5732, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5734, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5736, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5738, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5740, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5742, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5744, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5746, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5748, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5750, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5752, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5754, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5756, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5758, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5760, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5762, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5764, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5766, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5768, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5770, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5772, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5774, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5776, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5778, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5780, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5782, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5784, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5786, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5788, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5790, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5792, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5794, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5796, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5798, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5800, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5802, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5804, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5806, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5808, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5810, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5812, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5814, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5816, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5818, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5820, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5822, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5824, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5826, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5828, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5830, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5832, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5834, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5836, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5838, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5840, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5842, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5844, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5846, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5848, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5850, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5852, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5854, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5856, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5858, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5860, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5862, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5864, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5866, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5868, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5870, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5872, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5874, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5876, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5878, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5880, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5882, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5884, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5886, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5888, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5890, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5892, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5894, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5896, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5898, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5900, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5902, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5904, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5906, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5908, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5910, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5912, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 52, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 218, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 224, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5914, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5532, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5916, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5918, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20400, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19200, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5920, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19260, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5923, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19320, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5926, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19380, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5929, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19440, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5932, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19500, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5935, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19560, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5938, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19620, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5941, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19680, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5944, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19740, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5947, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19800, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5950, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19860, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5953, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19920, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5956, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 19980, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5959, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20040, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5962, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20100, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5965, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5968, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20160, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5971, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5974, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20220, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5977, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5980, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20280, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5983, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5986, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20340, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5989, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5992, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5995, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 8, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 52, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MN, 8, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, 53, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 5998, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6001, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20460, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6004, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 6007, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21720, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20520, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6010, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20580, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6013, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20640, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6016, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20700, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6019, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20760, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6022, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20820, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6025, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20880, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6028, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 20940, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6031, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21000, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6034, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21060, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6037, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21120, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6040, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21180, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6043, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21240, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6046, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21300, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6049, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21360, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6052, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21420, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6055, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6058, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21480, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6061, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6064, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21540, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6067, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6070, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21600, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6073, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6076, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21660, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6079, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6082, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21780, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21840, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21900, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 21960, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6085, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6088, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6091, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6094, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6097, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 22020, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6100, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 6103, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6106, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6108, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6110, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6112, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6114, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6116, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6118, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6120, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6122, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6124, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6126, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6128, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6130, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6132, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6134, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6136, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6138, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6140, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6142, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6144, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6146, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6148, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6150, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6152, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6154, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6156, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6158, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6160, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6162, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6164, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6166, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6168, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6170, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6172, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6174, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6176, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6178, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6180, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6182, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6184, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6186, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6188, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6190, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6192, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6194, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6196, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6198, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6200, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6202, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6204, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6206, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6208, false, -1, -1, -1, -1, -1, false, true, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6210, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6212, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6214, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6216, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6218, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6220, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6222, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6224, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6226, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6228, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6230, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6232, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6234, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6236, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6238, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6240, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6242, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6244, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6246, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6248, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6250, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6252, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6254, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6256, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6258, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6260, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6262, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6264, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6266, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6268, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6270, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6272, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6274, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6276, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6278, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6280, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6282, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6284, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6286, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6288, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6290, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6292, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 5486, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 5498, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 6294, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 6296, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 6298, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 6300, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 6302, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 6304, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 5494, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 6306, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 6308, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 6310, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 6312, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, utf8proc_sequences + 5502, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6314, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6318, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6322, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6326, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6330, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6334, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6338, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6342, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6346, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6350, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6354, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6358, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6362, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6366, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6370, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6375, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6380, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6385, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6390, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6395, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6400, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6405, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6410, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6415, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6420, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6425, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6430, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6435, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6440, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6445, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6453, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6460, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6464, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6468, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6472, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6476, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6480, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6484, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6488, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6492, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6496, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6500, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6504, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6508, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6512, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6516, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6520, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6524, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6528, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6532, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6536, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6540, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6544, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6548, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6552, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6556, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6560, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6564, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6568, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6572, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6576, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6580, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6584, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6588, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6592, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6596, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6600, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6604, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6608, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6611, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6614, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6617, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6620, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6623, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6626, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6629, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6632, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6635, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6638, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6641, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6644, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6647, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6650, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6106, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6112, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6118, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6122, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6138, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6140, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6146, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6150, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6152, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6156, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6158, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6160, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6162, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6164, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6653, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6656, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6659, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6662, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6665, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6668, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6671, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6674, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6677, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6680, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6683, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6686, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6689, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6692, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6695, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6701, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6706, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5486, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5498, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6294, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6296, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6709, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6711, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6713, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5508, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6715, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5532, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5632, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5656, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5654, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5634, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5818, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5548, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5628, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6717, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6719, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6721, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6723, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6725, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6727, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6729, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6731, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6733, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6735, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 5560, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6737, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6739, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6741, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6743, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6745, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6747, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6749, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6751, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6298, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6300, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6302, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6753, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6755, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6757, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6759, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6761, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6763, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6765, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6767, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6769, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6771, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6773, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6776, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6779, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6782, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6785, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6788, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6791, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6794, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6797, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6800, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6803, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6806, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6809, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6812, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6815, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6818, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6821, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6824, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6827, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6830, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6833, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6836, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6839, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6842, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6845, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6849, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 6853, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6857, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6860, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6864, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6867, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6871, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6873, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6875, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6877, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6879, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6881, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6883, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6885, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6887, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6889, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6891, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6893, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6895, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6897, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6899, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6901, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6903, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6905, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6907, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6909, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6911, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6913, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6915, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6917, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6919, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6921, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6923, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6925, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6927, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6929, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6931, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6933, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6935, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6937, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6939, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6941, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6943, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6945, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6947, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6949, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6951, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6953, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6955, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6957, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6959, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6961, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, utf8proc_sequences + 6963, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6965, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6970, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6975, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6980, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6984, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6989, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6993, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 6997, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7003, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7008, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7012, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7016, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7020, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7025, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7030, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7034, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7038, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7041, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7045, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7050, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7055, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7058, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7064, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7071, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7077, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7081, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7087, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7093, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7098, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7102, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7106, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7110, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7115, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7121, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7126, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7130, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7134, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7138, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7141, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7144, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7147, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7150, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7154, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7158, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7164, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7168, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7173, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7179, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7183, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7186, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7189, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7195, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7200, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7206, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7210, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7216, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7219, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7223, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7227, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7231, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7235, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7239, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7244, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7248, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7251, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7255, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7259, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7263, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7268, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7272, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7276, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7280, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7286, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7291, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7294, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7300, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7303, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7308, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7313, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7317, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7321, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7325, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7330, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7333, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7337, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7342, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7345, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7351, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7355, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7358, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7361, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7364, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7367, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7370, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7373, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7376, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7379, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7382, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7385, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7389, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7393, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7397, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7401, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7405, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7409, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7413, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7417, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7421, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7425, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7429, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7433, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7437, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7441, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7445, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7449, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7452, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7455, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7459, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7462, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7465, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7468, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7472, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7476, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7479, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7482, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7485, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7488, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7491, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7496, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7499, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7502, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7505, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7508, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7511, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7514, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7517, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7520, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7524, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7529, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7532, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7535, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7538, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7541, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7544, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7547, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7550, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7554, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7558, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7562, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7566, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7569, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7572, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7575, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7578, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7581, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7584, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7587, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7590, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7593, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7596, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7600, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7604, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7607, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7611, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7615, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7619, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7622, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7626, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7630, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7635, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7638, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7642, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7646, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7650, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7654, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7660, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7667, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7670, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7673, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7676, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7679, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7682, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7685, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7688, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7691, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7694, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7697, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7700, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7703, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7706, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7709, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7712, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7715, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7718, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7721, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7726, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7729, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7732, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7735, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7740, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7744, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7747, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7750, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7753, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7756, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7759, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7762, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7765, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7768, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7771, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7774, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7778, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7781, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7784, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7788, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7792, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7795, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7800, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7804, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7807, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7810, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7813, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7816, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7820, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7824, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7827, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7830, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7833, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7836, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7839, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7842, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7845, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7848, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7851, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7855, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7859, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7863, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7867, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7871, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7875, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7879, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7883, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7887, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7891, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7895, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7899, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7903, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7907, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7911, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7915, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7919, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7923, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7927, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7931, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 7935, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, utf8proc_sequences + 7939, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_CS, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, true, false, false, NULL},
-  {UTF8PROC_CATEGORY_CO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7943, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7945, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5802, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7947, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7949, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7951, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7953, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5910, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7955, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5818, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7957, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7959, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7961, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7963, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7965, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7967, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7969, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7971, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7973, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7975, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7977, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7979, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7981, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7983, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7985, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7987, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7989, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7991, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7993, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7995, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7997, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 7999, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8001, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8003, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8005, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8007, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8009, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8011, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8013, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8015, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8017, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8019, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8021, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8023, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8025, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8027, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8029, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8031, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8033, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8035, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8037, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5734, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8039, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8041, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8043, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8045, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8047, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8049, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8051, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8053, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8055, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8057, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8059, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5880, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8061, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8063, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8065, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8067, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8069, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8071, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8073, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8075, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8077, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8079, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8081, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8083, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8085, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8087, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8089, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8091, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8093, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8095, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8097, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8099, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8101, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8103, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8105, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8107, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8109, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8111, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8113, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8115, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8117, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8119, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8121, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8123, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8125, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8127, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8129, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8131, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8133, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8135, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8137, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8139, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8141, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8143, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8145, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8147, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8149, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8151, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8153, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5806, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8155, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8157, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8159, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8161, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8163, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8165, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8167, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8169, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8171, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8173, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8175, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8177, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8179, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8181, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8183, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5560, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8185, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8187, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8189, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8191, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8193, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8195, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8197, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8199, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5522, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8201, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8203, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8205, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8207, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8209, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8211, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8213, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8215, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8217, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8219, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8221, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8223, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8225, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8227, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8229, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8231, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8233, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8235, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8237, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8239, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8241, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8243, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8245, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8247, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8249, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8251, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8253, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8255, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8257, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8259, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8261, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8263, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8265, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8267, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8269, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8271, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8273, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8275, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8277, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8279, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8281, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8283, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8285, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8287, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8289, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8291, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8293, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8295, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8297, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8299, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8301, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8303, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8305, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8307, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5908, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8309, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8311, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8313, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8315, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8317, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8319, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8321, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8323, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8325, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8327, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8329, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8331, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6711, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8333, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8335, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8337, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8339, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8341, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8343, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8345, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8347, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8349, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8351, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8353, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8355, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8357, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8359, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8361, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8363, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8365, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8367, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8369, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8371, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8373, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8375, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5816, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8377, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8379, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8381, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8383, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8385, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8387, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8389, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8391, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8393, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8395, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8397, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8399, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8401, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5718, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8403, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8405, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8407, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8409, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8411, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8413, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8415, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8417, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8419, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8421, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8423, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8425, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8427, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8429, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8431, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8433, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5772, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8435, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5778, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8437, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8439, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8441, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8443, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8445, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8447, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8449, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8451, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8453, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8455, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8457, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8459, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8461, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8463, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5732, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8465, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8467, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8469, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8471, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8473, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8475, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8477, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8479, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8481, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8483, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8485, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8487, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8489, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8491, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8493, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8495, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8497, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8499, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8501, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8503, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5574, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8505, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8507, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8509, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8511, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8513, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8515, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8517, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8519, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8521, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8523, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8525, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8527, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8529, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8531, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8533, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6721, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8535, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8537, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8539, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8541, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 6729, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8543, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8545, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8547, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8549, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8551, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8553, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8555, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8557, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8559, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8561, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8563, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8565, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8567, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8569, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8571, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8573, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8575, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8577, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8579, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8581, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8583, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8585, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8587, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8589, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8591, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8593, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8595, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8597, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8599, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8601, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8603, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8605, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8607, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8609, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8611, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8613, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8615, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8617, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8619, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8621, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8623, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8625, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8627, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8629, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8631, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8633, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8635, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8637, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8639, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8641, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8643, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8645, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8647, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5640, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8649, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8651, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8653, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8655, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8657, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8659, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8661, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8663, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8665, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8667, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8669, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8671, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8673, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8675, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8677, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8679, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8681, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8683, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8685, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8687, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8689, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8691, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8693, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8695, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8697, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8699, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8701, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8703, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8705, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8707, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8709, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8711, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8713, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8715, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8717, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8719, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8721, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8723, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8725, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8727, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8729, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8731, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8733, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8735, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8737, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8739, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8741, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 8743, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8745, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8745},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8748, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8748},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8751, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8751},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8754, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8754},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8758, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8758},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8762, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8765},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8765, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8765},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8768, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8768},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8771, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8771},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8774, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8774},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8777, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8777},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8780, false, -1, -1, -1, -1, -1, false, false, false, false, utf8proc_sequences + 8780},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8783, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MN, 26, UTF8PROC_BIDI_CLASS_NSM, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8786, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 8789, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4575, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4581, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 8791, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 8793, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 8795, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 8797, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 8799, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 8801, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4511, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8803, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8806, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8809, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8812, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8815, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8818, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8821, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8824, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8827, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8830, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8833, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8836, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8839, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8842, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8845, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8848, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8851, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8854, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8857, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8860, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8863, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8866, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8869, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8872, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8875, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8878, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8881, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8884, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8887, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8890, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8893, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, utf8proc_sequences + 8896, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 8899, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8902, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8902, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8904, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8904, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8904, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8904, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8906, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8906, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8906, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8906, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8908, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8908, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8908, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8908, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8910, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8910, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8910, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8910, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8912, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8912, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8912, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8912, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8914, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8914, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8914, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8914, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8916, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8916, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8916, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8916, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8918, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8918, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8918, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8918, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8920, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8920, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8920, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8920, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8922, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8922, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8922, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8922, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8924, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8924, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8924, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8924, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8926, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8926, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8926, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8926, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8928, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8928, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8930, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8930, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8932, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8932, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8934, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8934, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8936, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8936, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8938, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8938, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8940, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8940, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8940, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8940, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8942, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8942, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8942, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8942, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8944, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8944, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8944, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8944, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8946, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8946, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8946, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8946, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8948, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8948, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8950, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8950, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8950, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8950, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8952, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8952, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8954, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8954, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8954, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8954, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8956, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8956, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8956, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8956, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8958, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8958, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8960, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8960, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8962, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8962, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8962, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8962, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8964, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8964, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8966, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8966, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8968, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8968, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8970, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8972, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8972, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8974, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8974, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8976, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8976, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8978, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8978, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8978, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8978, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 8980, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 8980, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8982, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8982, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8985, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8985, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8988, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8988, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8991, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8991, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8994, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8994, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8997, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8997, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9000, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9000, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9000, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9003, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9003, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9003, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9006, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9006, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9006, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9006, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9008, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9011, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9014, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9017, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9020, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9023, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9026, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9029, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9032, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9035, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9038, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9041, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9044, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9047, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9050, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9053, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9056, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9059, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9062, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9065, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9068, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9071, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9074, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9077, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9080, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9083, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9086, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9089, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9092, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9095, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9098, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9101, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9104, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9107, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9110, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9113, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9116, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9119, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9122, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9125, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9128, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9131, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9134, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9137, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9140, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9143, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9146, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9149, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9152, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9155, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9158, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9161, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9164, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9167, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9170, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9173, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9176, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9179, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9182, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9185, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9188, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9191, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9194, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9197, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9200, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9203, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9206, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9209, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9212, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9215, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9218, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9221, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9224, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9227, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9230, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9233, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9236, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9239, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9242, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9245, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9248, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9251, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9254, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9257, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9260, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9263, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9266, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9269, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9272, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9275, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9278, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9281, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9284, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9287, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9291, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9295, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9299, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9303, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9307, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9311, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9314, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9014, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9317, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9017, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9320, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9323, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9029, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9326, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9032, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9035, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9329, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9332, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9047, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9335, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9050, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9053, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9338, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9341, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9059, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9344, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9062, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9065, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9152, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9155, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9164, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9167, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9170, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9182, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9185, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9188, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9191, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9203, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9206, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9209, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9347, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9221, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9350, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9353, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9239, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9356, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9242, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9245, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9284, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9359, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9362, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9269, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9365, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9272, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9275, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9008, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9011, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9368, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9014, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9371, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9020, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9023, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9026, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9029, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9374, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9038, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9041, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9044, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9047, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9377, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9059, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9068, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9071, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9074, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9077, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9080, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9086, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9089, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9092, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9095, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9098, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9101, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9380, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9104, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9107, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9110, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9113, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9116, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9119, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9125, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9128, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9131, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9134, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9137, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9140, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9143, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9146, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9149, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9158, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9161, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9173, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9176, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9179, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9182, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9185, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9194, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9197, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9200, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9203, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9383, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9212, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9215, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9218, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9221, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9230, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9233, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9236, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9239, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9386, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9248, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9251, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9389, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9260, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9263, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9266, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9269, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9392, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9014, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9371, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9029, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9374, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9047, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9377, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9059, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9395, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9098, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9398, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9401, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9404, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9182, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9185, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9203, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9239, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9386, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9269, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9392, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9407, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9411, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9415, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9419, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9422, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9425, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9428, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9431, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9434, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9437, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9440, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9443, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9446, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9449, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9452, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9455, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9458, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9461, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9464, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9467, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9470, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9473, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9476, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9479, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9482, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9485, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9401, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9488, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9491, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9494, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9497, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9419, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9422, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9425, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9428, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9431, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9434, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9437, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9440, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9443, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9446, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9449, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9452, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9455, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9458, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9461, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9464, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9467, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9470, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9473, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9476, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9479, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9482, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9485, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9401, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9488, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9491, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9494, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9497, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9479, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9482, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9485, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9401, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9398, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9404, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9122, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9089, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9092, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9095, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9479, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9482, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9485, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9122, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 9125, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9500, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9500, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9503, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9507, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9507, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9511, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9515, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9519, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9523, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9527, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9531, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9531, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9535, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9539, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9543, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9547, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9551, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9555, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9555, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9559, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9563, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9563, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9567, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9567, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9571, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9575, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9575, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9579, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9583, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9583, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9587, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9587, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9591, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9595, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9595, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9599, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9599, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9603, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9607, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9611, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9615, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9615, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9619, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9623, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9627, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9631, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9635, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9635, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9639, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9643, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9647, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9651, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9655, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9659, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9659, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9663, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9663, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9667, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9667, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9671, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9675, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9679, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9683, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9687, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9691, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9695, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9699, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9703, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9707, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9711, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9715, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9719, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9719, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9723, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9727, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9731, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9735, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9735, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9739, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9743, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9747, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9751, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9755, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9759, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9763, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9767, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9771, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9775, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9779, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9783, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9787, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9791, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9795, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9799, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9803, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9807, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9811, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9815, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9819, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9823, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9639, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9647, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9827, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9831, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9835, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9839, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9843, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9847, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9843, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9835, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9851, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9855, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9859, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9863, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9867, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9847, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9611, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 9571, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9871, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 9875, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9879, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9883, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9887, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9892, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9897, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9902, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9907, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9912, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9917, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9922, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9926, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9945, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 9954, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9959, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9961, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9963, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9965, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 1333, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9967, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9969, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9971, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9973, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9975, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9977, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9979, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9981, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9983, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 4517, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 4519, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9985, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9987, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9989, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9991, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9993, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9995, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9997, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 9999, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 4892, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 4894, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 10001, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 10003, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 10005, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 10007, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 10009, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, utf8proc_sequences + 10011, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 10013, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, utf8proc_sequences + 9983, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 9959, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 9961, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 4454, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 1333, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 9965, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 9969, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 9967, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 9979, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 4517, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 4519, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 9985, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 9987, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 9989, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 9991, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 10015, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 10017, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 10019, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 4511, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 10021, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 10023, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 10025, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 4515, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 10027, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 10029, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 10031, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, utf8proc_sequences + 10033, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10035, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10038, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10041, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10044, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10047, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10050, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10053, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10056, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10059, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10062, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10065, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10068, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10071, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10074, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10077, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10079, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10079, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10081, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10081, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10083, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10083, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10085, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10085, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10087, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10087, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10087, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10087, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10089, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10089, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10091, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10091, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10091, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10091, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10093, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10093, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10095, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10095, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10095, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10095, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10097, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10097, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10097, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10097, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10099, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10099, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10099, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10099, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10101, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10101, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10101, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10101, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10103, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10103, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10103, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10103, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10105, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10105, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10107, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10107, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10109, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10109, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10111, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10111, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10113, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10113, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10113, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10113, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10115, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10115, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10115, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10115, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10117, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10117, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10117, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10117, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10119, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10119, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10119, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10119, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10121, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10121, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10121, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10121, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10123, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10123, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10123, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10123, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10125, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10125, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10125, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10125, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10127, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10127, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10127, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10127, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10129, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10129, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10129, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10129, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10131, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10131, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10131, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10131, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10133, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10133, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10133, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10133, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10135, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10135, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10135, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10135, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10137, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10137, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10137, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10137, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10139, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10139, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10139, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10139, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10141, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10141, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10141, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10141, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10143, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10143, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 8980, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 8980, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10145, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10145, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, utf8proc_sequences + 10145, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, utf8proc_sequences + 10145, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10147, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10147, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10150, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10150, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10153, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10153, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, utf8proc_sequences + 10156, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, utf8proc_sequences + 10156, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 9967, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10159, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10015, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10029, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10031, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10017, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10161, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4517, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4519, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10019, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4511, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 9959, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10021, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4454, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10163, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4497, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 72, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 60, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 62, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4499, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4501, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4503, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4505, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4507, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4509, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 9965, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 1333, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10023, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4515, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10025, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 9969, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10033, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2376, false, -1, 65345, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10165},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2380, false, -1, 65346, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10167},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4532, false, -1, 65347, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10169},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2382, false, -1, 65348, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10171},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2384, false, -1, 65349, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10173},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4571, false, -1, 65350, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10175},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2388, false, -1, 65351, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10177},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2390, false, -1, 65352, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10179},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2392, false, -1, 65353, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10181},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2394, false, -1, 65354, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10183},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2396, false, -1, 65355, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10185},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2398, false, -1, 65356, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10187},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2400, false, -1, 65357, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10189},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2402, false, -1, 65358, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10191},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2404, false, -1, 65359, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10193},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2408, false, -1, 65360, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10195},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4553, false, -1, 65361, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10197},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2410, false, -1, 65362, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10199},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 5231, false, -1, 65363, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10201},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2412, false, -1, 65364, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10203},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2414, false, -1, 65365, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10205},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4662, false, -1, 65366, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10207},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2416, false, -1, 65367, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10209},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4689, false, -1, 65368, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10211},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 5245, false, -1, 65369, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10213},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4565, false, -1, 65370, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10215},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10009, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10027, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10011, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10217, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 9983, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4387, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 0, false, 65313, -1, 65313, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 2, false, 65314, -1, 65314, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 4, false, 65315, -1, 65315, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 6, false, 65316, -1, 65316, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 8, false, 65317, -1, 65317, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10, false, 65318, -1, 65318, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 12, false, 65319, -1, 65319, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 14, false, 65320, -1, 65320, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 16, false, 65321, -1, 65321, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 18, false, 65322, -1, 65322, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 20, false, 65323, -1, 65323, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 22, false, 65324, -1, 65324, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 24, false, 65325, -1, 65325, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 26, false, 65326, -1, 65326, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 28, false, 65327, -1, 65327, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 30, false, 65328, -1, 65328, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 32, false, 65329, -1, 65329, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 34, false, 65330, -1, 65330, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 36, false, 65331, -1, 65331, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 38, false, 65332, -1, 65332, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 40, false, 65333, -1, 65333, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 42, false, 65334, -1, 65334, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 44, false, 65335, -1, 65335, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 46, false, 65336, -1, 65336, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 48, false, 65337, -1, 65337, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 50, false, 65338, -1, 65338, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 9985, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10219, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 9987, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10221, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10223, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10225, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 9963, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10001, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10003, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 9961, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10227, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6963, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10229, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10231, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10233, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10235, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10237, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10239, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10241, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10243, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10245, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10247, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6871, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6873, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6875, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6877, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6879, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6881, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6883, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6885, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6887, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6889, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6891, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6893, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6895, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6897, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6899, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6901, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6903, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6905, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6907, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6909, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6911, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6913, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6915, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6917, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6919, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6921, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6923, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6925, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6927, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6929, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6931, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6933, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6935, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6937, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6939, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6941, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6943, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6945, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6947, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6949, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6951, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6953, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6955, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 6957, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10249, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10251, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10253, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10255, false, -1, -1, -1, -1, -1, false, true, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10257, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10259, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10261, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10263, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10265, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10267, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10269, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10271, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10273, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10275, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10277, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10279, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10281, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10283, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10285, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10287, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10289, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10291, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10293, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10295, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10297, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10299, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10301, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10303, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10305, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10307, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10309, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10311, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10313, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10315, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10317, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10319, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10321, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10323, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10325, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10327, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10329, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10331, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10333, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10335, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10337, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10339, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10341, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10343, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10345, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10347, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10349, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10351, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10353, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10355, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10357, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10359, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10361, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10363, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10365, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10367, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10369, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, utf8proc_sequences + 10371, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10373, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10375, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10377, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10379, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10381, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10383, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, utf8proc_sequences + 10385, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, true, false, NULL},
-  {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_ON, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66600, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10387},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66601, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10389},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66602, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10391},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66603, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10393},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66604, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10395},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66605, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10397},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66606, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10399},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66607, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10401},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66608, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10403},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66609, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10405},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66610, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10407},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66611, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10409},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66612, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10411},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66613, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10413},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66614, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10415},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66615, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10417},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66616, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10419},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66617, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10421},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66618, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10423},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66619, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10425},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66620, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10427},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66621, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10429},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66622, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10431},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66623, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10433},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66624, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10435},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66625, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10437},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66626, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10439},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66627, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10441},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66628, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10443},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66629, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10445},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66630, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10447},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66631, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10449},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66632, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10451},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66633, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10453},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66634, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10455},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66635, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10457},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66636, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10459},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66637, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10461},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66638, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10463},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, 66639, -1, -1, -1, false, false, false, false, utf8proc_sequences + 10465},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66560, -1, 66560, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66561, -1, 66561, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66562, -1, 66562, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66563, -1, 66563, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66564, -1, 66564, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66565, -1, 66565, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66566, -1, 66566, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66567, -1, 66567, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66568, -1, 66568, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66569, -1, 66569, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66570, -1, 66570, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66571, -1, 66571, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66572, -1, 66572, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66573, -1, 66573, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66574, -1, 66574, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66575, -1, 66575, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66576, -1, 66576, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66577, -1, 66577, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66578, -1, 66578, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66579, -1, 66579, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66580, -1, 66580, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66581, -1, 66581, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66582, -1, 66582, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66583, -1, 66583, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66584, -1, 66584, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66585, -1, 66585, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66586, -1, 66586, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66587, -1, 66587, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66588, -1, 66588, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66589, -1, 66589, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66590, -1, 66590, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66591, -1, 66591, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66592, -1, 66592, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66593, -1, 66593, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66594, -1, 66594, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66595, -1, 66595, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66596, -1, 66596, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66597, -1, 66597, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66598, -1, 66598, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, 66599, -1, 66599, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_R, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 22080, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 22140, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10467, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10470, false, -1, -1, -1, 22200, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10473, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10476, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10479, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10482, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10485, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 54, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 226, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 55, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 56, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 57, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 58, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, -1, 59, false, false, false, true, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 22260, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, NULL, false, -1, -1, -1, 22320, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10488, false, -1, -1, -1, 22380, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10491, false, -1, -1, -1, 22440, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10494, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10497, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10500, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10503, false, -1, -1, -1, -1, -1, true, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2376, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2388, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2394, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2396, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2404, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 5231, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2412, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2414, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4662, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2416, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4689, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 5245, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 0, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 2, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 20, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 24, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 26, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 30, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 32, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 34, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 36, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 38, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 40, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 42, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 44, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 46, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 48, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 50, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10506, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10508, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10510, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10512, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10514, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10516, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10518, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10520, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1504, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10522, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10524, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10526, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10528, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10530, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10532, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10534, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10536, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10538, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1508, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10540, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1470, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10542, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10544, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10546, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4567, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10548, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1382, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1384, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1388, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1390, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1392, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1394, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1396, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1326, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1398, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1400, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 67, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1402, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1404, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1406, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1410, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1502, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1412, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1414, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1416, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1418, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1420, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1422, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1424, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10550, true, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10552, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10554, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10556, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10558, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10560, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10562, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 10564, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 1482, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4497, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 72, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 60, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 62, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4499, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4501, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4503, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4505, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4507, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, utf8proc_sequences + 4509, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10566, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10568, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10570, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10572, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10574, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10576, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10578, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10580, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10582, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10584, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10586, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10588, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10590, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10592, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10594, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10596, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10598, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10600, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10602, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10604, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10606, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10608, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10610, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10612, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10614, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5518, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10616, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10618, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10620, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10622, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10624, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10626, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10628, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10630, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10632, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10634, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10636, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10638, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10640, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10642, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10644, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10646, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10648, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10650, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10652, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10654, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10656, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10658, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10660, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10662, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10664, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10666, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10668, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10670, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10672, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10674, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10676, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10678, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10680, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10682, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10684, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10686, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10688, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10690, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10692, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10694, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10696, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10698, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10700, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10702, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10704, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10706, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10708, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10710, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10712, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10714, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10716, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10718, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10720, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10722, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10724, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10726, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10728, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10730, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10732, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10734, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10736, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10738, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10740, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10742, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10744, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10746, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10748, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10750, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10752, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10754, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10756, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10758, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10760, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5570, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10762, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10764, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10766, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10768, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10770, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10772, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10774, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10776, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10778, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10780, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10782, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10784, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10786, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10788, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10790, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10792, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10794, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10796, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10798, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10800, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10802, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10804, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10806, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10808, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5594, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10810, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10812, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10814, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10816, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10818, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10820, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10822, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10824, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10826, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10828, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10830, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10832, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10834, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10836, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10838, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10840, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10842, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10844, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10846, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10848, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10850, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10852, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10854, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10856, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10858, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10860, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10862, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10864, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10866, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10868, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10870, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10872, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10874, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10876, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10878, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10880, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10882, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10884, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10886, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10888, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10890, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10892, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10894, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10896, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10898, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10900, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10902, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10904, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10906, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10908, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10910, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10912, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10914, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10916, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10918, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10920, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10922, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10924, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10926, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10928, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10930, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10932, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10934, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10936, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10938, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10940, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10942, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10944, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10946, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10948, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10950, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10952, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10954, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10956, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10958, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10960, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10962, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10964, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10966, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10968, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10970, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10972, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10974, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10976, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10978, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10980, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10982, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10984, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10986, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10988, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10990, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10992, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10994, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10996, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 10998, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11000, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11002, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11004, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11006, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11008, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11010, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11012, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11014, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11016, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11018, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11020, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11022, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11024, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11026, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11028, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11030, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11032, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11034, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11036, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11038, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11040, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11042, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11044, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11046, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11048, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11050, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11052, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11054, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11056, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11058, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11060, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11062, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11064, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11066, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11068, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11070, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11072, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11074, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11076, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11078, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11080, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11082, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11084, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11086, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11088, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11090, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11092, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11094, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11096, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11098, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11100, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11102, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11104, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11106, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11108, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11110, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11112, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11114, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11116, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11118, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11120, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11122, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11124, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11126, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11128, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11130, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11132, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11134, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11136, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11138, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11140, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11142, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11144, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11146, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11148, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11150, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11152, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11154, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11156, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11158, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11160, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11162, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11164, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11166, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11168, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11170, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11172, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11174, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11176, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11178, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11180, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11182, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11184, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11186, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11188, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11190, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11192, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11194, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11196, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11198, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11200, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11202, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11204, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11206, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11208, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11210, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11212, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11214, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11216, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11218, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11220, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11222, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11224, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11226, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11228, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11230, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11232, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11234, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11236, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11238, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11240, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11242, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11244, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11246, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11248, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11250, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11252, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11254, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11256, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11258, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11260, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11262, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11264, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11266, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11268, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11270, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11272, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11274, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11276, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11278, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11280, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11282, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11284, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11286, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11288, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11290, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11292, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11294, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11296, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11298, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11300, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11302, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11304, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11306, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11308, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11310, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11312, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11314, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11316, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11318, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11320, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11322, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11324, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11326, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11328, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11330, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11332, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11334, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11336, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11338, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11340, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11342, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11344, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5774, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11346, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11348, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11350, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11352, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11354, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11356, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11358, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11360, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11362, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11364, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11366, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5788, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11368, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11370, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11372, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11374, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11376, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11378, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11380, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11382, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11384, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11386, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11388, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11390, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11392, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11394, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11396, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11398, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11400, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11402, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11404, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11406, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11408, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11410, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11412, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11414, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11416, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11418, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11420, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11422, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11424, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11426, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11428, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11430, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11432, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11434, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11436, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11438, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11440, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11442, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11444, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11446, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11448, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11450, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11452, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11454, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11456, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11458, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11460, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11462, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11464, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11466, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11468, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11470, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11472, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11474, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11476, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11478, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11480, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11482, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11484, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11486, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11488, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11490, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5884, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11492, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5892, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11494, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11496, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11498, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11500, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 5902, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-  {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, utf8proc_sequences + 11502, false, -1, -1, -1, -1, -1, false, false, false, false, NULL},
-};
-
-const int32_t utf8proc_combinations[] = {
-  192, 193, 194, 195, 196, 197, -1, 
-  256, 258, 260, 550, 461, -1, -1, 512, 
-  514, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  7680, 7840, -1, -1, -1, -1, -1, 7842, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 262, 264, 
-  -1, -1, -1, 199, -1, -1, -1, 266, 
-  268, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 200, 201, 202, 7868, 203, -1, 552, 
-  274, 276, 280, 278, 282, -1, -1, 516, 
-  518, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7864, -1, 7704, 7706, -1, -1, 7866, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 204, 205, 206, 
-  296, 207, -1, -1, 298, 300, 302, 304, 
-  463, -1, -1, 520, 522, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7882, -1, -1, 
-  7724, -1, -1, 7880, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 504, 323, -1, 209, -1, -1, 325, 
-  -1, -1, -1, 7748, 327, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7750, 7752, 7754, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 210, 211, 212, 
-  213, 214, -1, -1, 332, 334, 490, 558, 
-  465, 336, 416, 524, 526, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7884, -1, -1, 
-  -1, -1, -1, 7886, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 217, 218, 219, 360, 220, 366, -1, 
-  362, 364, 370, -1, 467, 368, 431, 532, 
-  534, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7908, -1, 7798, 7796, -1, 7794, 7910, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7922, 221, 374, 
-  7928, 376, -1, -1, 562, -1, -1, 7822, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7924, -1, -1, 
-  -1, -1, -1, 7926, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 224, 225, 226, 227, 228, 229, -1, 
-  257, 259, 261, 551, 462, -1, -1, 513, 
-  515, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  7681, 7841, -1, -1, -1, -1, -1, 7843, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 263, 265, 
-  -1, -1, -1, 231, -1, -1, -1, 267, 
-  269, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 232, 233, 234, 7869, 235, -1, 553, 
-  275, 277, 281, 279, 283, -1, -1, 517, 
-  519, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7865, -1, 7705, 7707, -1, -1, 7867, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 236, 237, 238, 
-  297, 239, -1, -1, 299, 301, 303, -1, 
-  464, -1, -1, 521, 523, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7883, -1, -1, 
-  7725, -1, -1, 7881, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 505, 324, -1, 241, -1, -1, 326, 
-  -1, -1, -1, 7749, 328, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7751, 7753, 7755, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 242, 243, 244, 
-  245, 246, -1, -1, 333, 335, 491, 559, 
-  466, 337, 417, 525, 527, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7885, -1, -1, 
-  -1, -1, -1, 7887, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 249, 250, 251, 361, 252, 367, -1, 
-  363, 365, 371, -1, 468, 369, 432, 533, 
-  535, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7909, -1, 7799, 7797, -1, 7795, 7911, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7923, 253, 375, 
-  7929, 255, 7833, -1, 563, -1, -1, 7823, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7925, -1, -1, 
-  -1, -1, -1, 7927, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7696, 
-  -1, -1, -1, 7690, 270, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7692, 7694, 7698, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7697, -1, -1, -1, 7691, 
-  271, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7693, 7695, 7699, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 500, 284, -1, -1, -1, 290, 
-  7712, 286, -1, 288, 486, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 501, 285, 
-  -1, -1, -1, 291, 7713, 287, -1, 289, 
-  487, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 292, -1, 7718, -1, 7720, 
-  -1, -1, -1, 7714, 542, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7716, -1, -1, -1, 7722, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 293, 
-  -1, 7719, -1, 7721, -1, -1, -1, 7715, 
-  543, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7717, 7830, -1, 
-  -1, 7723, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 308, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 309, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  496, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7728, -1, -1, -1, -1, 310, 
-  -1, -1, -1, -1, 488, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7730, 7732, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7729, -1, 
-  -1, -1, -1, 311, -1, -1, -1, -1, 
-  489, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7731, 7733, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 313, -1, -1, -1, -1, 315, 
-  -1, -1, -1, -1, 317, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7734, 7738, 7740, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 314, -1, 
-  -1, -1, -1, 316, -1, -1, -1, -1, 
-  318, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7735, 7739, 7741, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 340, -1, -1, -1, -1, 342, 
-  -1, -1, -1, 7768, 344, -1, -1, 528, 
-  530, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7770, 7774, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 341, -1, 
-  -1, -1, -1, 343, -1, -1, -1, 7769, 
-  345, -1, -1, 529, 531, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7771, 7775, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 346, 348, -1, -1, -1, 350, 
-  -1, -1, -1, 7776, 352, -1, -1, -1, 
-  -1, 536, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7778, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 347, 349, 
-  -1, -1, -1, 351, -1, -1, -1, 7777, 
-  353, -1, -1, -1, -1, 537, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7779, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 354, 
-  -1, -1, -1, 7786, 356, -1, -1, -1, 
-  -1, 538, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7788, 7790, 7792, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7831, -1, 355, -1, -1, -1, 7787, 
-  357, -1, -1, -1, -1, 539, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7789, 7791, 7793, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7808, 7810, 372, -1, 7812, -1, -1, 
-  -1, -1, -1, 7814, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7816, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7809, 7811, 373, 
-  -1, 7813, 7832, -1, -1, -1, -1, 7815, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7817, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 377, 7824, -1, -1, -1, -1, 
-  -1, -1, -1, 379, 381, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7826, 7828, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 378, 7825, 
-  -1, -1, -1, -1, -1, -1, -1, 380, 
-  382, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7827, 7829, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 475, 471, -1, -1, -1, -1, -1, 
-  469, -1, -1, -1, 473, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 476, 472, -1, 
-  -1, -1, -1, -1, 470, -1, -1, -1, 
-  474, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  478, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 479, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  480, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 481, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 508, -1, -1, -1, -1, -1, 
-  482, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 509, -1, 
-  -1, -1, -1, -1, 483, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  492, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 493, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 494, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  495, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 506, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 507, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 510, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 511, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  554, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 555, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7756, -1, -1, 7758, -1, -1, 
-  556, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7757, -1, 
-  -1, 7759, -1, -1, 557, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  560, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 561, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8173, 901, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 8129, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8122, 902, -1, 
-  -1, -1, -1, -1, 8121, 8120, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 7944, 7945, -1, 8124, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8136, 904, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  7960, 7961, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8138, 905, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 7976, 7977, -1, 8140, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8154, 906, -1, -1, 938, -1, -1, 
-  8153, 8152, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  7992, 7993, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8184, 908, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8008, 8009, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8170, 910, -1, -1, 939, -1, -1, 
-  8169, 8168, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8025, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8186, 911, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8040, 8041, -1, 8188, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8146, 912, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 8151, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8048, 940, -1, 
-  -1, -1, -1, -1, 8113, 8112, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 7936, 7937, 8118, 8115, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8050, 941, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  7952, 7953, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8052, 942, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 7968, 7969, 8134, 8131, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8054, 943, -1, -1, 970, -1, -1, 
-  8145, 8144, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  7984, 7985, 8150, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8162, 944, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 8167, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8058, 973, -1, -1, 971, -1, -1, 
-  8161, 8160, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8016, 8017, 8166, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8056, 972, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8000, 8001, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8060, 974, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8032, 8033, 8182, 8179, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 979, -1, 
-  -1, 980, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1024, -1, -1, -1, 1025, -1, -1, 
-  -1, 1238, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 1027, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 1031, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 1036, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1037, -1, -1, -1, 1252, -1, -1, 
-  1250, 1049, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1264, -1, -1, 1262, 1038, -1, -1, 
-  -1, 1266, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1117, -1, -1, -1, 1253, -1, -1, 
-  1251, 1081, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 1104, -1, -1, 
-  -1, 1105, -1, -1, -1, 1239, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 1107, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1111, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 1116, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1265, -1, -1, 1263, 1118, -1, -1, 
-  -1, 1267, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 1142, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 1143, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 1244, -1, -1, 
-  -1, 1217, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1245, -1, -1, -1, 1218, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 1234, -1, -1, 
-  -1, 1232, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1235, -1, -1, -1, 1233, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 1242, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1243, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 1246, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1247, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 1254, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1255, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 1258, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1259, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 1260, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1261, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 1268, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1269, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 1272, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 1273, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 1570, 1571, 1573, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 1572, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 1574, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 1728, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 1730, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 1747, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 2345, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 2353, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 2356, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 2507, 2508, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  2888, 2891, 2892, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 2964, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 3020, 3018, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  3019, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 3144, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 3264, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 3271, 3272, 
-  3274, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 3275, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 3402, 3404, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 3403, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 3546, 3548, 3550, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 3549, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 4134, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 6918, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 6920, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 6922, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 6924, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 6926, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 6930, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 6971, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 6973, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 6976, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 6977, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 6979, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7682, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7684, 7686, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7683, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7685, 7687, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7688, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7689, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7700, 7702, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7701, 7703, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7708, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7709, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7710, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7711, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7726, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7727, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  7736, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 7737, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7742, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7744, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7746, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7743, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7745, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7747, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7760, 7762, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7761, 7763, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7764, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7766, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7765, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7767, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  7772, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 7773, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7780, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7781, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7782, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7783, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7784, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7785, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7800, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7801, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7802, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7803, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 7804, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7806, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  7805, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7807, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7820, -1, -1, 
-  -1, -1, -1, 7818, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7821, -1, -1, -1, -1, -1, 7819, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7835, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7846, 7844, -1, 
-  7850, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7848, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7847, 7845, -1, 7851, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7849, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7852, 
-  -1, -1, -1, -1, -1, 7862, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7853, -1, -1, -1, -1, 
-  -1, 7863, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7856, 7854, -1, 
-  7860, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7858, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7857, 7855, -1, 7861, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7859, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7872, 7870, -1, 
-  7876, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7874, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7873, 7871, -1, 7877, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7875, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7878, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7879, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7890, 7888, -1, 
-  7894, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7892, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7891, 7889, -1, 7895, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7893, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 7896, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 7897, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7900, 7898, -1, 
-  7904, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7906, -1, -1, 
-  -1, -1, -1, 7902, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7901, 7899, -1, 7905, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7907, -1, -1, -1, -1, -1, 7903, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7914, 7912, -1, 
-  7918, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7920, -1, -1, 
-  -1, -1, -1, 7916, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7915, 7913, -1, 7919, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7921, -1, -1, -1, -1, -1, 7917, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7938, 7940, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7942, 8064, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7939, 7941, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7943, 8065, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7946, 7948, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7950, 8072, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7947, 7949, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7951, 8073, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7954, 7956, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7955, 7957, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7962, 7964, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7963, 7965, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7970, 7972, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7974, 8080, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7971, 7973, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7975, 8081, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7978, 7980, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7982, 8088, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7979, 7981, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7983, 8089, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7986, 7988, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7990, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7987, 7989, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7991, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 7994, 7996, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 7998, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 7995, 7997, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 7999, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8002, 8004, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8003, 8005, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8010, 8012, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8011, 8013, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8018, 8020, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 8022, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8019, 8021, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 8023, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8027, 8029, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 8031, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8034, 8036, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 8038, 8096, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8035, 8037, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 8039, 8097, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8042, 8044, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 8046, 8104, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8043, 8045, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 8047, 8105, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8066, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8067, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8068, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8069, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8070, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8071, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8074, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8075, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8076, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8077, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8078, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8079, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8082, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8083, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8084, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8085, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8086, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8087, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8090, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8091, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8092, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8093, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8094, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8095, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8098, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8099, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8100, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8101, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8102, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8103, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8106, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8107, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8108, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8109, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8110, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8111, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8114, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8116, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8119, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8130, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8132, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8135, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 8141, 8142, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 8143, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8157, 8158, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 8159, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8164, 8165, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 8172, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8178, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 8180, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 8183, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8602, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8603, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8622, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8653, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8654, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8655, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8708, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8713, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8716, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8740, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8742, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8769, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8772, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8775, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8777, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8800, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8802, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8813, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8814, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8815, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8816, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8817, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8820, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8821, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8824, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8825, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8832, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8833, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8836, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8837, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8840, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8841, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8876, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8877, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8878, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8879, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8928, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8929, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8930, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8931, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8938, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8939, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  8940, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 8941, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  10972, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12364, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12366, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12368, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12370, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12372, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12374, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12376, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12378, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12380, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12382, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12384, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12386, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12389, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12391, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12393, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12400, 12401, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12403, 12404, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12406, 12407, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12409, 12410, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12412, 12413, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12436, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12446, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12460, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12462, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12464, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12466, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12468, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12470, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12472, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12474, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12476, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12478, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12480, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12482, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12485, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12487, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12489, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12496, 12497, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12499, 12500, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12502, 12503, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12505, 12506, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12508, 12509, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12532, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12535, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12536, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12537, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 12538, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, 12542, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 119134, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 119135, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  119136, 119137, 119138, 119139, 119140, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 119227, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 119228, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, 119229, 119231, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, 
-  119230, 119232, -1, -1, -1, };
-
diff --git a/zephyr/server/version.c b/zephyr/server/version.c
deleted file mode 100644 (file)
index 7983f8d..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains the version identification of the Zephyr server
- *
- *     Created by:     John T. Kohl
- *
- *     $Id: version.c 2131 2008-01-21 03:11:00Z kcr $
- *
- *     Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-
-#include <sys/utsname.h>
-
-#include "zserver.h"
-#include "version.h"
-
-const char zephyr_version[] = "Zephyr system version 2.0";
-
-#ifdef DEBUG
-const char version[] = "Zephyr server (DEBUG) $Revision: 2131 $";
-#else
-const char version[] = "Zephyr server $Revision: 2131 $";
-#endif
-
-#if !defined (lint) && !defined (SABER)
-static const char rcsid_version_c[] =
-    "$Id: version.c 2131 2008-01-21 03:11:00Z kcr $";
-static const char copyright[] =
-    "Copyright (c) 1987,1988,1989,1990 Massachusetts Institute of Technology.\n";
-#endif
-
-char *
-get_version(void)
-{
-  static char vers_buf[256];
-  struct utsname un;
-
-  if (vers_buf[0] == '\0') {
-#ifdef DEBUG
-    sprintf(vers_buf,"Zephyr Server (DEBUG) $Revision: 2131 $: %s",
-           ZSERVER_VERSION_STRING);
-#else
-    sprintf(vers_buf,"Zephyr Server $Revision: 2131 $: %s",
-           ZSERVER_VERSION_STRING);
-#endif /* DEBUG */
-
-    (void) strcat(vers_buf, "/");
-#ifdef vax
-    (void) strcat(vers_buf, "VAX");
-#endif /* vax */
-#ifdef ibm032
-    (void) strcat(vers_buf, "IBM RT");
-#endif /* ibm032 */
-#ifdef _IBMR2
-    (void) strcat(vers_buf, "IBM RS/6000");
-#endif /* _IBMR2 */
-#ifdef sun
-    (void) strcat(vers_buf, "SUN");
-#ifdef sparc
-    (void) strcat (vers_buf, "-4");
-#endif /* sparc */
-#ifdef sun386
-    (void) strcat (vers_buf, "-386I");
-#endif /* sun386 */
-#endif /* sun */
-
-#ifdef mips
-#ifdef ultrix                  /* DECstation */
-    (void) strcat (vers_buf, "DEC-");
-#endif /* ultrix */
-    (void) strcat(vers_buf, "MIPS");
-#endif /* mips */
-#ifdef NeXT
-    (void) strcat(vers_buf, "NeXT");
-#endif /* NeXT */
-
-    if (vers_buf[strlen(vers_buf) - 1] == '/') {
-       uname(&un);
-       (void) strcat(vers_buf, un.machine);
-       (void) strcat(vers_buf, "-");
-       (void) strcat(vers_buf, un.sysname);
-    }
-  }
-  return(vers_buf);
-}
diff --git a/zephyr/server/zephyrd.8 b/zephyr/server/zephyrd.8
deleted file mode 100644 (file)
index 3c13f1d..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-.\"    $Id: zephyrd.8 2091 2007-12-20 01:17:23Z kcr $
-.\"
-.\" Copyright 1987 by the Massachusetts Institute of Technology
-.\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
-.\" specifies the terms and conditions for redistribution.
-.\"
-.TH ZEPHYRD 8 "July 1, 1988" "MIT Project Athena"
-.ds ]W MIT Project Athena
-.SH NAME
-zephyrd \- Zephyr server daemon
-.SH SYNOPSIS
-.I /usr/etc/zephyrd
-[
-.BI \-d
-]
-.SH DESCRIPTION
-.I zephyrd
-is the central server for the Zephyr Notification System.
-It maintains a location database of all currently logged-in users, and a
-subscription database for each user's Zephyr clients.
-.PP
-.I zephyrd 
-communicates with daemons running on other Zephyr server hosts, to
-provide a reliable service.
-.PP
-While running, any unusual conditions are recorded via 
-.I syslog(3)
-to facility local6 at various levels.
-The
-.BI \-d
-option enables logging of additional debugging information.
-.PP
-When a
-.B zephyrd
-is executed, it requests a list of server machines from Hesiod and
-initializes its state from any
-\fIzephyrd\fRs executing on the other known servers.  This initialization
-is only performed after the \fIzephyrd\fRs have authenticated themselves
-to each other via Kerberos.
-The server then enters a dispatch loop, servicing requests from clients and
-other servers.
-.SH SIGNALS
-.B SIGUSR1
-enables logging of additional debugging information.
-.br
-.B SIGUSR2
-disables the logging of additional debugging information.
-.br
-.B SIGHUP
-causes
-.I zephyrd
-to re-read the default subscription file and to re-query Hesiod about
-valid peers.  Any peers which are not responding and no longer
-mentioned in Hesiod are flushed; any peers not previously named by
-Hesiod are added.
-.br
-.B SIGINT \fRand\fB SIGTERM
-cause
-.I zephyrd
-to gracefully shut down.
-.br
-.B SIGFPE
-causes
-.I zephyrd
-to dump the location and subscription databases to
-.I /var/tmp/zephyr.db
-in an ASCII format.
-.SH ACCESS CONTROL
-Certain notice classes are restricted by the Zephyr server.  Each such
-class has access control lists enumerating who may transmit (xmt-*.acl) or
-subscribe to that particular class.  Subscriptions may be
-restricted either absolutely (sub-*.acl files), or by instance restrictions.
-iws-*.acl files control subscriptions to wildcarded instances.
-iui-*.acl files control subscriptions to instances which are not the
-Kerberos principal identity of the subscriber.
-If an access control list of a given type is absent, there is no
-restriction of that type on the class, except that any notices of the
-class must be authenticated.
-The class registry lists all classes which are restricted.
-.SH FILES
-.TP 10
-.I /usr/athena/lib/zephyr/class-registry.acl:
-List of classes which are restricted
-.TP
-.I /usr/athena/lib/zephyr/iws-*.acl:
-Access Control Lists for instance-wildcard restrictions
-.TP
-.I /usr/athena/lib/zephyr/iui-*.acl:
-Access Control Lists for instance-identity restrictions
-.TP
-.I /usr/athena/lib/zephyr/sub-*.acl:
-Access Control Lists for subscribing
-.TP
-.I /usr/athena/lib/zephyr/xmt-*.acl:
-Access Control Lists for transmitting
-.TP
-.I /usr/athena/lib/zephyr/srvtab:
-Kerberos Service keys
-.TP
-.I /usr/athena/lib/zephyr/ztkts:
-Current Kerberos tickets for exchange with other servers 
-.TP
-.I /usr/tmp/zephyr.db:
-File containing an ASCII dump of the database.
-.SH BUGS
-The current implementation of the Zephyr server (\fIzephyrd(8)\fR) makes
-no distinction between realm-announced, net-visible and net-announced
-exposure levels.
-.SH SEE ALSO
-zephyr(1), zhm(8), kerberosintro(1), hesiod(3), access_control_lists(?),
-syslog(3)
-.br
-Athena Technical Plan, Sections E.4.1 (Zephyr Notification Service) and
-E.2.1 (Kerberos Authentication and Authorization System)
-.SH AUTHOR
-.PP
-John T. Kohl, MIT Project Athena and Digital Equipment Corporation
-.SH RESTRICTIONS
-Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
-All Rights Reserved.
-.br
-.I zephyr(1)
-specifies the terms and conditions for redistribution.
diff --git a/zephyr/server/zserver.h b/zephyr/server/zserver.h
deleted file mode 100644 (file)
index 3e587a8..0000000
+++ /dev/null
@@ -1,493 +0,0 @@
-#ifndef __ZSERVER_H__
-#define __ZSERVER_H__
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains declarations for use in the server.
- *
- *     Created by:     John T. Kohl
- *
- *     $Source: /afs/dev.mit.edu/source/repository/athena/lib/zephyr/server/zserver.h,v $
- *     $Author: kcr $
- *     $Zephyr: /mit/zephyr/src/server/RCS/zserver.h,v 1.34 91/03/08 12:53:24 raeburn Exp $
- *
- *     Copyright (c) 1987,1988,1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-
-#include <internal.h>
-
-#include <com_err.h>
-
-#include <arpa/inet.h>
-
-#include "zsrv_err.h"
-
-#include "timer.h"
-#include "zsrv_conf.h"                 /* configuration params */
-
-#include "zstring.h"
-#include "access.h"
-#include "acl.h"
-#include "utf8proc.h"
-
-
-/* Kerberos-specific library interfaces used only by the server. */
-#ifdef HAVE_KRB5
-extern krb5_keyblock *__Zephyr_keyblock;
-#define ZGetSession() (__Zephyr_keyblock)
-void ZSetSession(krb5_keyblock *keyblock);
-Code_t ZFormatAuthenticNoticeV5(ZNotice_t*, char*, int, int*, krb5_keyblock *);
-krb5_error_code Z_krb5_init_keyblock(krb5_context, krb5_enctype, size_t,
-        krb5_keyblock **);
-#endif
-
-#ifdef HAVE_KRB4
-void ZSetSessionDES(C_Block *key);
-
-Code_t ZFormatAuthenticNotice(ZNotice_t*, char*, int, int*, C_Block);
-
-#ifndef HAVE_KRB5
-extern C_Block __Zephyr_session;
-#define ZGetSession() (__Zephyr_session)
-#endif
-#endif
-
-/* For krb_rd_req prototype and definition. */
-#ifndef KRB_INT32
-#define KRB_INT32 ZEPHYR_INT32
-#endif
-
-/* Current time as cached by main(); use instead of time(). */
-#define NOW t_local.tv_sec
-
-#ifdef HAVE_KRB4
-/* Kerberos shouldn't stick us with array types... */
-typedef struct {
-    des_key_schedule s;
-} Sched;
-#endif
-
-typedef struct _Destination Destination;
-typedef struct _Destlist Destlist;
-typedef struct _ZRealm ZRealm;
-typedef struct _ZRealmname ZRealmname;
-typedef enum _ZRealm_state ZRealm_state;
-typedef struct _Client Client;
-typedef struct _Triplet Triplet;
-typedef enum _Server_state Server_state;
-typedef struct _Unacked Unacked;
-typedef struct _Pending Pending;
-typedef struct _Server Server;
-typedef enum _Sent_type Sent_type;
-typedef struct _Statistic Statistic;
-
-struct _Destination {
-    String             *classname;
-    String             *inst;
-    String             *recip;
-};
-
-struct _Destlist {
-    Destination        dest;
-    struct _Destlist   *next, **prev_p;
-};
-
-enum _ZRealm_state {
-    REALM_UP,                          /* ZRealm is up */
-    REALM_TARDY,                       /* ZRealm due for a hello XXX */
-    REALM_DEAD,                                /* ZRealm is considered dead */
-    REALM_STARTING                     /* ZRealm is between dead and up */
-};
-
-struct _ZRealm {
-    char name[REALM_SZ];
-    int count;
-    struct sockaddr_in *addrs;
-    int idx;                           /* which server we are connected to */
-    Destlist *subs;                     /* what their clients sub to */
-    Destlist *remsubs;                  /* our subs on their end */
-    Client *client;                     
-    int child_pid;
-    int have_tkt;
-    ZRealm_state state;
-};
-
-struct _ZRealmname {
-    char name[REALM_SZ];
-    char **servers;
-    int nused;
-    int nservers;
-};
-
-struct _Client {
-    struct sockaddr_in addr;           /* ipaddr/port of client */
-    Destlist           *subs   ;       /* subscriptions */
-#ifdef HAVE_KRB5
-    krb5_keyblock       *session_keyblock;
-#else
-#ifdef HAVE_KRB4
-    C_Block            session_key;    /* session key for this client */
-#endif /* HAVE_KRB4 */
-#endif
-    String             *principal;     /* krb principal of user */
-    int                        last_send;      /* Counter for last sent packet. */
-    time_t             last_ack;       /* Time of last received ack */
-    ZRealm             *realm;
-    struct _Client     *next, **prev_p;
-};
-
-struct _Triplet {
-    Destination                dest;
-    Acl                        *acl;
-    Client             **clients;
-    int                        clients_size;
-    struct _Triplet    *next, **prev_p;
-};
-
-enum _Server_state {
-    SERV_UP,                           /* Server is up */
-    SERV_TARDY,                                /* Server due for a hello */
-    SERV_DEAD,                         /* Server is considered dead */
-    SERV_STARTING                      /* Server is between dead and up */
-};
-
-struct _Unacked {
-    Timer              *timer;         /* timer for retransmit */
-    Client             *client;        /* responsible client, or NULL */
-    short              rexmits;        /* number of retransmits */
-    short              packsz;         /* size of packet */
-    char               *packet;        /* ptr to packet */
-    ZUnique_Id_t       uid;            /* uid of packet */
-    struct sockaddr_in ack_addr;
-    union {                            /* address to send to */
-       struct sockaddr_in addr;        /* client address */
-       int     srv_idx;                /* index of server */
-       struct {
-           int rlm_idx;                /* index of realm */
-           int rlm_srv_idx;            /* index of server in realm */
-       } rlm;
-    } dest;
-    struct _Unacked *next, **prev_p;
-};
-
-struct _Pending {
-    char               *packet;        /* the notice (in pkt form) */
-    short              len;            /* len of pkt */
-    unsigned int       auth;           /* whether it is authentic */
-    struct sockaddr_in who;            /* the addr of the sender */
-    struct _Pending *next;
-};
-
-struct _Server {
-    Server_state       state;          /* server's state */
-    struct sockaddr_in addr;           /* server's address */
-    long               timeout;        /* Length of timeout in sec */
-    Timer              *timer;         /* timer for this server */
-    Pending            *queue;         /* queue of packets to send
-                                          to this server when done dumping */
-    Pending            *queue_last;    /* last packet on queue */
-    short              num_hello_sent; /* number of hello's sent */
-    unsigned int       dumping;        /* 1 if dumping, so we should queue */
-    char               addr_str[16];   /* text version of address */
-};
-
-enum _Sent_type {
-    NOT_SENT,                          /* message was not xmitted */
-    SENT,                              /* message was xmitted */
-    AUTH_FAILED,                       /* authentication failed */
-    NOT_FOUND                          /* user not found for uloc */
-};
-
-/* statistics gathering */
-struct _Statistic {
-    int                        val;
-    char               *str;
-};
-
-/* Function declarations */
-
-/* These macros instantiate inline functions that do the work of the formder
-   LIST_INSERT and LIST_DELETE functions, which unfortunately triggered gcc's
-   pedanticism.  The comment before the *former* macros was: */
-/* These macros are for insertion into and deletion from a singly-linked list
- * with back pointers to the previous element's next pointer.  In order to
- * make these macros act like expressions, they use the comma operator for
- * sequenced evaluations of assignment, and "a && b" for "evaluate assignment
- * b if expression a is true". */
-
-#define MAKE_LIST_INSERT(type) inline static void type##_insert(type **head, type *elem) \
-    {\
-       (elem)->next = *(head);                                 \
-       if(*head) (*(head))->prev_p = &(elem)->next;            \
-       (*head) = (elem);                                       \
-       (elem)->prev_p = (head);                                \
-    }
-       
-#define MAKE_LIST_DELETE(type) inline static void type##_delete(type *elem) \
-    {\
-       *(elem)->prev_p = (elem)->next;                         \
-       if((elem)->next) (elem)->next->prev_p = (elem)->prev_p; \
-    }
-
-MAKE_LIST_INSERT(Destlist);
-MAKE_LIST_DELETE(Destlist);
-MAKE_LIST_INSERT(Client);      
-MAKE_LIST_DELETE(Client);      
-MAKE_LIST_INSERT(Triplet);     
-MAKE_LIST_DELETE(Triplet);     
-MAKE_LIST_INSERT(Unacked);
-MAKE_LIST_DELETE(Unacked);
-
-/* found in bdump.c */
-void bdump_get(ZNotice_t *notice, int auth, struct sockaddr_in *who,
-                   Server *server);
-void bdump_send(void);
-void bdump_offer(struct sockaddr_in *who);
-Code_t bdump_send_list_tcp(ZNotice_Kind_t kind, struct sockaddr_in *addr,
-                               char *class_name, char *inst, char *opcode,
-                               char *sender, char *recip, char **lyst,
-                               int num);
-int get_tgt(void);
-
-/* found in class.c */
-extern String *class_control, *class_admin, *class_hm;
-extern String *class_ulogin, *class_ulocate;
-int ZDest_eq(Destination *d1, Destination *d2);
-Code_t triplet_register(Client *client, Destination *dest, ZRealm *realm);
-Code_t triplet_deregister(Client *client, Destination *dest,
-                              ZRealm *realm);
-Code_t class_restrict(char *class, Acl *acl);
-Code_t class_setup_restricted(char *class, Acl *acl);
-Client **triplet_lookup(Destination *dest);
-Acl *class_get_acl(String *class);
-int dest_eq(Destination *d1, Destination *d2);
-int order_dest_strings(Destination *d1, Destination *d2);
-void triplet_dump_subs(FILE *fp);
-
-/* found in client.c */
-Code_t client_register(ZNotice_t *notice, struct in_addr *host,
-                           Client **client_p, int wantdefaults);
-void client_deregister(Client *client, int flush);
-void client_flush_host(struct in_addr *host);
-void client_dump_clients(FILE *fp);
-Client *client_find(struct in_addr *host, unsigned int port);
-Code_t client_send_clients(void);
-
-/* found in common.c */
-char *strsave(const char *str);
-unsigned long hash (const char *);
-void dump_quote(char *p, FILE *fp);
-
-/* found in dispatch.c */
-void handle_packet(void);
-void clt_ack(ZNotice_t *notice, struct sockaddr_in *who, Sent_type sent);
-void nack_release(Client *client);
-void sendit(ZNotice_t *notice, int auth, struct sockaddr_in *who,
-                int external);
-void rexmit(void *);
-void xmit(ZNotice_t *notice, struct sockaddr_in *dest, int auth,
-              Client *client);
-Code_t hostm_dispatch(ZNotice_t *notice, int auth,
-                          struct sockaddr_in *who, Server *server);
-Code_t control_dispatch(ZNotice_t *notice, int auth,
-                            struct sockaddr_in *who, Server *server);
-Code_t xmit_frag(ZNotice_t *notice, char *buf, int len, int waitforack);
-void hostm_shutdown(void);
-
-/* found in kstuff.c */
-Code_t ZCheckRealmAuthentication(ZNotice_t *, struct sockaddr_in *, char *);
-#if defined(HAVE_KRB4) || defined(HAVE_KRB5)
-Code_t ReadKerberosData(int, int *, char **, int *);
-void sweep_ticket_hash_table(void *);
-#endif
-#ifdef HAVE_KRB4
-int GetKerberosData (int, struct in_addr, AUTH_DAT *, char *, char *);
-Code_t SendKerberosData (int, KTEXT, char *, char *);
-#endif
-#ifdef HAVE_KRB5
-Code_t SendKrb5Data(int, krb5_data *);
-Code_t GetKrb5Data(int, krb5_data *);
-#endif
-    
-/* found in server.c */
-void server_timo(void *which);
-void server_dump_servers(FILE *fp);
-void server_init(void);
-void server_shutdown(void);
-void server_forward(ZNotice_t *notice, int auth,
-                        struct sockaddr_in *who);
-void server_kill_clt(Client *client);
-void server_pending_free(Pending *pending);
-void server_self_queue(ZNotice_t *, int, struct sockaddr_in *);
-void server_send_queue(Server *);
-void server_reset(void);
-Server *server_which_server(struct sockaddr_in *who);
-Pending *server_dequeue(Server *server);
-Code_t server_dispatch(ZNotice_t *notice, int auth,
-                           struct sockaddr_in *who);
-Code_t server_adispatch(ZNotice_t *notice, int auth,
-                            struct sockaddr_in *who, Server *server);
-
-/* found in subscr.c */
-Code_t subscr_foreign_user(ZNotice_t *, struct sockaddr_in *, Server *, ZRealm *);
-Code_t subscr_cancel(struct sockaddr_in *sin, ZNotice_t *notice);
-Code_t subscr_subscribe(Client *who, ZNotice_t *notice, Server *server);
-Code_t subscr_send_subs(Client *client);
-void subscr_cancel_client(Client *client);
-void subscr_sendlist(ZNotice_t *notice, int auth,
-                         struct sockaddr_in *who);
-void subscr_dump_subs(FILE *fp, Destlist *subs);
-void subscr_reset(void);
-Code_t subscr_def_subs(Client *who);
-Code_t subscr_realm(ZRealm *, ZNotice_t *);
-Code_t subscr_send_realm_subs(ZRealm *);
-Code_t subscr_realm_cancel(struct sockaddr_in *, ZNotice_t *, ZRealm *);
-
-/* found in uloc.c */
-void uloc_hflush(struct in_addr *addr);
-void uloc_flush_client(struct sockaddr_in *sin);
-void uloc_dump_locs(FILE *fp);
-Code_t ulogin_dispatch(ZNotice_t *notice, int auth,
-                           struct sockaddr_in *who, Server *server);
-Code_t ulocate_dispatch(ZNotice_t *notice, int auth,
-                            struct sockaddr_in *who, Server *server);
-Code_t uloc_send_locations(void);
-void ulogin_relay_locate(ZNotice_t *, struct sockaddr_in *);
-void ulogin_realm_locate(ZNotice_t *, struct sockaddr_in *, ZRealm *);
-
-/* found in realm.c */
-int realm_sender_in_realm(const char *realm, char *sender);
-int realm_bound_for_realm(const char *realm, char *recip);
-ZRealm *realm_which_realm(struct sockaddr_in *who);
-ZRealm *realm_get_realm_by_name(char *name);
-ZRealm *realm_get_realm_by_pid(int);
-void realm_handoff(ZNotice_t *, int, struct sockaddr_in *, ZRealm *, int);
-const char *realm_expand_realm(char *);
-void realm_init(void);
-Code_t ZCheckZRealmAuthentication(ZNotice_t *, struct sockaddr_in *,
-                                     char *);
-Code_t realm_control_dispatch(ZNotice_t *, int, struct sockaddr_in *,
-                                  Server *, ZRealm *);
-void realm_shutdown(void);
-void realm_deathgram(Server *);
-Code_t realm_send_realms(void);
-Code_t realm_dispatch(ZNotice_t *, int, struct sockaddr_in *, Server *);
-void realm_wakeup(void);
-void kill_realm_pids(void);
-void realm_dump_realms(FILE *);
-
-/* found in version.c */
-char *get_version(void);
-
-/* found in access.c */
-int access_check(char *, Acl *, Access);
-
-/* global identifiers */
-
-/* found in main.c */
-int packets_waiting(void);
-extern struct sockaddr_in srv_addr;    /* server socket address */
-extern unsigned short hm_port;         /* host manager receiver port */
-extern unsigned short hm_srv_port;     /* host manager server sending port */
-extern int srv_socket;                 /* dgram sockets for clients
-                                          and other servers */
-extern int bdump_socket;               /* brain dump socket
-                                          (closed most of the time) */
-
-extern fd_set interesting;             /* the file descrips we are listening
-                                        to right now */
-extern int nfds;                       /* number to look at in select() */
-extern int zdebug;
-extern char myname[];                  /* domain name of this host */
-extern char list_file[];
-#ifdef HAVE_KRB5
-extern char keytab_file[];
-extern krb5_ccache Z_krb5_ccache;
-#endif
-#ifdef HAVE_KRB4
-extern char srvtab_file[];
-extern char my_realm[];
-#endif
-extern char acl_dir[];
-extern char subs_file[];
-extern const char version[];
-extern u_long npackets;                        /* num of packets processed */
-extern time_t uptime;                  /* time we started */
-extern struct in_addr my_addr;
-extern struct timeval t_local;         /* current time */
-
-/* found in bdump.c */
-extern int bdumping;                   /* are we processing a bdump packet? */
-extern int bdump_concurrent;           /* set while processing a packet
-                                        * concurrently during a braindump. */
-
-/* found in dispatch.c */
-extern Statistic i_s_ctls, i_s_logins, i_s_admins, i_s_locates;
-extern int rexmit_times[];
-
-/* found in server.c */
-extern Server *otherservers;           /* array of servers */
-extern int me_server_idx;              /* me (in the array of servers) */
-extern int nservers;                   /* number of other servers*/
-
-/* found in subscr.c */
-extern String *empty;
-extern String *wildcard_instance;
-
-extern ZRealm *otherrealms;
-extern int nrealms;
-
-extern struct in_addr my_addr; /* my inet address */
-
-#define class_is_control(classname) (classname == class_control)
-#define class_is_admin(classname) (classname == class_admin)
-#define class_is_hm(classname) (classname == class_hm)
-#define class_is_ulogin(classname) (classname == class_ulogin)
-#define class_is_ulocate(classname) (classname == class_ulocate)
-
-#define        ADMIN_HELLO     "HELLO"         /* Opcode: hello, are you there */
-#define        ADMIN_IMHERE    "IHEARDYOU"     /* Opcode: yes, I am here */
-#define        ADMIN_SHUTDOWN  "GOODBYE"       /* Opcode: I am shutting down */
-#define ADMIN_BDUMP    "DUMP_AVAIL"    /* Opcode: I will give you a dump */
-#define        ADMIN_DONE      "DUMP_DONE"     /* Opcode: brain dump for this server
-                                          is complete */
-#define        ADMIN_NEWCLT    "NEXT_CLIENT"   /* Opcode: this is a new client */
-#define        ADMIN_KILL_CLT  "KILL_CLIENT"   /* Opcode: client is dead, remove */
-#define        ADMIN_STATUS    "STATUS"        /* Opcode: please send status */
-
-#define ADMIN_NEWREALM "NEXT_REALM"    /* Opcode: this is a new realm */
-#define REALM_REQ_LOCATE "REQ_LOCATE"  /* Opcode: request a location */
-#define REALM_ANS_LOCATE "ANS_LOCATE"  /* Opcode: answer to location */
-#define REALM_BOOT      "SENDSUBS"     /* Opcode: first server in realm */
-
-/* me_server_idx is the index into otherservers of this server descriptor. */
-/* the 'limbo' server is always the first server */
-
-#define        me_server       (&otherservers[me_server_idx])
-#define limbo_server_idx()     (0)
-#define        limbo_server    (&otherservers[limbo_server_idx()])
-
-#define msgs_queued()  (ZQLength() || otherservers[me_server_idx].queue)
-
-#define        ack(a,b)        clt_ack(a,b,SENT)
-#define        nack(a,b)       clt_ack(a,b,NOT_SENT)
-
-#define        min(a,b)        ((a) < (b) ? (a) : (b))
-#define        max(a,b)        ((a) > (b) ? (a) : (b))
-
-#define START_CRITICAL_CODE
-#define END_CRITICAL_CODE
-
-/* the instance that matches all instances */
-#define        WILDCARD_INSTANCE       "*"
-
-/* debugging macros */
-#ifdef DEBUG
-#define zdbug(s1)      if (zdebug) syslog s1;
-#else /* !DEBUG */
-#define zdbug(s1)
-#endif /* DEBUG */
-
-#endif /* !__ZSERVER_H__ */
diff --git a/zephyr/server/zsrv_conf.h b/zephyr/server/zsrv_conf.h
deleted file mode 100644 (file)
index 9ff1301..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains site-specific definitions for use in the server.
- *
- *     Created by:     John T. Kohl
- *
- *     $Id: zsrv_conf.h 2094 2007-12-25 00:56:08Z kcr $
- *
- *     Copyright (c) 1988 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#ifndef __ZSRV_CONF_H__
-#define        __ZSRV_CONF_H__
-#include <zephyr/mit-copyright.h>
-
-/* Path names are relative to CONFDIR, except for the class registry. */
-
-#define SERVER_LIST_FILE       "server.list"
-#define REALM_LIST_FILE                "realm.list"
-#ifdef HAVE_KRB5
-#define ZEPHYR_KEYTAB          "krb5.keytab"
-#define ZEPHYR_TK5FILE         "z5tkts"
-#endif
-#ifdef HAVE_KRB4
-#define ZEPHYR_SRVTAB          "srvtab"
-#define ZEPHYR_TKFILE          "ztkts"
-#endif
-#define        ZEPHYR_ACL_DIR          "acl/"
-#define        ZEPHYR_CLASS_REGISTRY   "class-registry.acl"
-#define        DEFAULT_SUBS_FILE       "default.subscriptions"
-
-#define REXMIT_TIMES { 2, 2, 4, 4, 8, 8, 16, 32, 64, 128, 256, 512, -1 }
-#define NUM_REXMIT_TIMES 12
-#define CLIENT_GIVEUP_MIN 512
-
-/* hostmanager defines */
-#define        LOSE_TIMO       (60)            /* time during which a losing host
-                                          must respond to a ping */
-
-/* server-server defines */
-#define        TIMO_UP         ((long) 60)     /* timeout between up and tardy */
-#define        TIMO_TARDY      ((long) 120)    /* timeout btw tardy hellos */
-#define        TIMO_DEAD       ((long)(15*60)) /* timeout between hello's for dead */
-
-#define        H_NUM_TARDY     5               /* num hello's before going dead
-                                          when tardy */
-#define        H_NUM_STARTING  2               /* num hello's before going dead
-                                          when starting */
-
-#define SWEEP_INTERVAL  3600           /* Time between sweeps of the ticket
-                                          hash table */
-
-#endif /* __ZSRV_CONF_H__ */
diff --git a/zephyr/server/zsrv_err.et b/zephyr/server/zsrv_err.et
deleted file mode 100644 (file)
index a4aa632..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#      Copyright (c) 1987,1988 Massachusetts Institute of Technology
-#
-#      For copying and distribution information, see the file
-#      "mit-copyright.h".
-#
-#      $Id: zsrv_err.et 2094 2007-12-25 00:56:08Z kcr $
-       et      zsrv
-
-ec ZSRV_BADASSOC,
-       "Client not associated with class"
-ec ZSRV_NOCLT,
-       "No such client"
-ec ZSRV_NOSUB,
-       "No such subscription"
-ec ZSRV_NOCLASS,
-       "Class unknown"
-ec ZSRV_CLASSXISTS,
-       "Class already registered"
-ec ZSRV_CLASSRESTRICTED,
-       "Class already restricted"
-ec ZSRV_HNOTFOUND,
-       "Host manager unknown"
-ec ZSRV_WRONGSRV,
-       "Host not on this server"
-ec ZSRV_PKSHORT,
-       "Pkt length too short"
-ec ZSRV_BUFSHORT,
-       "Buffer too short"      
-ec ZSRV_LEN,
-       "Read/Write length wrong"
-ec ZSRV_UNKNOWNOPCODE,
-       "Unknown opcode"
-ec ZSRV_REQUEUE,
-       "Requeue for later processing"
-ec ZSRV_RCSID,
-       "$Id: zsrv_err.et 2094 2007-12-25 00:56:08Z kcr $"
-ec ZSRV_BADSUBPORT,
-       "Illegal port specified in subscription"
-ec ZSRV_NORLM,
-       "No such realm"
-ec ZSRV_EMPTYCLASS,
-       "Class is now empty"
-       end
diff --git a/zephyr/server/zstring.c b/zephyr/server/zstring.c
deleted file mode 100644 (file)
index af037f9..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains the main loop of the Zephyr server
- *
- *     Created by:     Lucien W. Van Elsen
- *
- *     $Id: zstring.c 2286 2009-03-02 03:14:23Z kcr $
- *
- *     Copyright (c) 1991 by the Massachusetts Institute of Technology.
- *     For copying and distribution information, see the file
- *     "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include "zserver.h"
-
-#ifndef lint
-#ifndef SABER
-static const char rcsid_zstring_c[] =
-"$Id: zstring.c 2286 2009-03-02 03:14:23Z kcr $";
-#endif
-#endif
-
-static String *zhash[STRING_HASH_TABLE_SIZE];
-
-int valid_utf8_p(const char* s)
-{
-    int len;
-    ssize_t uc;
-
-    while ((len = utf8proc_iterate((const unsigned char *)s, -1, &uc))) {
-        if (len <=0) return 0; /* Not valid UTF-8 encoding. */
-        if (!(utf8proc_codepoint_valid(uc))) return 0; /* Not valid unicode codepoint. */
-        if (uc == 0) return 1; /* NULL, we're done. */
-        s += len;
-    }
-    return 0; /* We shouldn't get here. */
-}
-
-static char *zdowncase(const char* s)
-{
-    char *new_s, *p;
-
-    if (valid_utf8_p(s)) {
-        /* Use utf8proc if we're dealing with UTF-8.
-         * Rather than downcase, casefold and normalize to NFKC.
-         */
-        utf8proc_map((const unsigned char *)s, 0, (unsigned char **)&new_s,
-                     UTF8PROC_NULLTERM   | UTF8PROC_STABLE
-                     | UTF8PROC_CASEFOLD | UTF8PROC_COMPAT
-                     | UTF8PROC_COMPOSE);
-    } else {
-        /* If not, fall back to old methods. */
-        new_s = strsave(s);
-        p = new_s;
-        while(*p) {
-            if (isascii(*p) && isupper(*p))
-                *p = tolower(*p);
-            p++;
-        }
-    }
-    return new_s;
-}
-
-String *
-make_string(char *s,
-           int downcase)
-{
-    char *new_s;
-    String *new_z,*hp;
-    int i;
-
-    if (downcase) {
-       new_s = zdowncase(s);
-    } else {
-       new_s = s;
-    }
-
-    new_z = find_string(new_s,0);
-    if (new_z != NULL) {
-       if (downcase)
-           free(new_s);
-       new_z->ref_count++;
-       return(new_z);
-    }
-
-    /* Initialize new String */
-
-    if (!downcase)
-       new_s = strsave(s);
-    new_z = (String *) malloc(sizeof(String));
-    new_z->string = new_s;
-    new_z->ref_count = 1;
-  
-    /* Add to beginning of hash table */
-    new_z->hash_val = hash(new_s);
-    i = new_z->hash_val % STRING_HASH_TABLE_SIZE;
-    hp = zhash[i];
-    new_z->next = hp;
-    if (hp != NULL)
-       hp->prev = new_z;
-    new_z->prev = NULL;
-    zhash[i] = new_z;
-
-    return new_z;
-}
-
-void
-free_string(String *z)
-{
-    if (z == (String *) NULL)
-       return;
-
-    z->ref_count--;
-    if (z->ref_count > 0)
-       return;
-
-    /* delete string completely */
-    if(z->prev == NULL)
-       zhash[hash(z->string) % STRING_HASH_TABLE_SIZE] = z->next;
-    else
-       z->prev->next = z->next;
-  
-    if (z->next != NULL)
-       z->next->prev = z->prev;
-
-    free(z->string);
-    free(z);
-}
-
-String *
-find_string(char *s,
-           int downcase)
-{
-    char *new_s;
-    String *z;
-
-    if (downcase) {
-       new_s = zdowncase(s);
-    } else {
-       new_s = s;
-    }
-
-    z = zhash[hash(new_s) % STRING_HASH_TABLE_SIZE];
-    while (z != NULL) {
-       if (strcmp(new_s, z->string) == 0)
-           break;
-       z = z->next;
-    }
-
-    if (downcase)
-       free(new_s);
-
-    return z;
-}
-
-int
-comp_string(String *a,
-           String *b)
-{
-    if (a->hash_val > b->hash_val)
-       return 1;
-    if (a->hash_val < b->hash_val)
-       return -1;
-    return strcmp(a->string,b->string);
-}
-
-void
-print_string_table(FILE *f)
-{
-    String *p;
-    int i;
-
-    for(i = 0; i < STRING_HASH_TABLE_SIZE; i++) {
-       p = zhash[i];
-       while (p != (String *) NULL) {
-           fprintf(f,"[%d] %s\n",p->ref_count,p->string);
-           p = p->next;
-       }
-    }
-}
-
-String *
-dup_string(String *z)
-{
-    z->ref_count++;
-    return z;
-}
-
diff --git a/zephyr/server/zstring.h b/zephyr/server/zstring.h
deleted file mode 100644 (file)
index b7420df..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 1991 by the Massachusetts Institute of Technology.
- * For copying and distribution information, see the file "mit-copyright.h".
- *
- *     $Id: zstring.h 2091 2007-12-20 01:17:23Z kcr $
- */
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef __zstring_h
-#define __zstring_h __FILE__
-
-#define STRING_HASH_TABLE_SIZE 1024
-
-#include <stdio.h>
-
-typedef struct _String
-{
-  char *string;                                /* the string itself */
-  int ref_count;                       /* for gc */
-  unsigned long hash_val;              /* hash value for this string */
-  struct _String *next, *prev;         /* for linking in hash table */
-} String;
-
-String *make_string __P((char *s, int downcase));
-void free_string __P((String *z));
-String *find_string __P((char *s, int downcase));
-String *dup_string __P((String *z));
-int comp_string __P((String *a, String *b));
-void print_string_table __P((FILE *f));
-
-#endif /* __zstring_h */
-
diff --git a/zephyr/zhm/Makefile.in b/zephyr/zhm/Makefile.in
deleted file mode 100644 (file)
index 10bfe54..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-top_builddir=..
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-INSTALL=@INSTALL@
-
-LIBZEPHYR=${BUILDTOP}/lib/libzephyr.la
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -I${top_srcdir}/h -I${BUILDTOP}/h ${CPPFLAGS}
-LDFLAGS=@LDFLAGS@
-LIBS=${LIBZEPHYR} @LIBS@ -lcom_err
-
-OBJS=  timer.o queue.o zhm.o zhm_client.o zhm_server.o
-
-all: zhm
-
-zhm: ${OBJS} ${LIBZEPHYR}
-       ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install: zhm
-       ${LIBTOOL} --mode=install ${INSTALL} -m 755 zhm ${DESTDIR}${lsbindir}
-       ${INSTALL} -m 644 ${srcdir}/zhm.8 ${DESTDIR}${mandir}/man8
-
-clean:
-       ${LIBTOOL} --mode=clean rm -f zhm
-       rm -f ${OBJS}
-
-${OBJS}: zhm.h timer.h ${top_srcdir}/h/internal.h ${top_srcdir}/h/sysdep.h
-${OBJS}: ${BUILDTOP}/h/config.h ${BUILDTOP}/h/zephyr/zephyr.h
-${OBJS}: ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/zhm/queue.c b/zephyr/zhm/queue.c
deleted file mode 100644 (file)
index 0179302..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains the hostmanager queueing routines.
- *
- *      Created by:     David C. Jedlinsky
- *
- *      $Id: queue.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h". 
- */
-
-#include "zhm.h"
-
-#ifndef lint
-#ifndef SABER
-static const char rcsid_queue_c[] = "$Id: queue.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif /* SABER */
-#endif /* lint */
-
-typedef struct _Queue {
-    Timer *timer;
-    int retries;
-    ZNotice_t notice;
-    caddr_t packet;
-    struct sockaddr_in reply;
-    struct _Queue *next, **prev_p;
-} Queue;
-
-static Queue *hm_queue;
-static int retransmits_enabled = 0;
-
-static Queue *find_notice_in_queue(ZNotice_t *notice);
-static void queue_timeout(void *arg);
-
-extern void new_server(char *);
-
-int rexmit_times[] = { 2, 2, 4, 4, 8, -1 };
-
-#ifdef DEBUG
-Code_t dump_queue(void);
-#endif
-
-void
-init_queue(void)
-{
-    Queue *q;
-
-    while (hm_queue) {
-       q = hm_queue;
-       if (q->timer)
-           timer_reset(q->timer);
-       free(q->packet);
-       hm_queue = q->next;
-       free(q);
-    }
-
-    DPR("Queue initialized and flushed.\n");
-}
-
-Code_t
-add_notice_to_queue(ZNotice_t *notice,
-                   char *packet,
-                   struct sockaddr_in *repl,
-                   int len)
-{
-    Queue *entry;
-
-    DPR("Adding notice to queue...\n");
-    if (!find_notice_in_queue(notice)) {
-       entry = (Queue *) malloc(sizeof(Queue));
-       if (entry == NULL)
-           return(ZERR_NONOTICE);
-       entry->retries = 0;
-       entry->packet = (char *) malloc(Z_MAXPKTLEN);
-       if (entry->packet == NULL) {
-           free(entry);
-           return(ZERR_NONOTICE);
-       }
-       memcpy(entry->packet, packet, Z_MAXPKTLEN);
-       if (ZParseNotice(entry->packet, len, &entry->notice) != ZERR_NONE) {
-           syslog(LOG_ERR, "ZParseNotice failed, but succeeded before");
-           free(entry->packet);
-       } else {
-           entry->reply = *repl;
-           /*LIST_INSERT(&hm_queue, entry);*/
-
-           (entry)->next = *(&hm_queue);
-           if (*&hm_queue) ((*(&hm_queue))->prev_p = &(entry)->next);
-           (*&hm_queue) = (entry);
-           (entry)->prev_p = (&hm_queue);
-               
-       }
-       entry->timer = (retransmits_enabled) ?
-           timer_set_rel(rexmit_times[0], queue_timeout, entry) : NULL;
-    }
-    return(ZERR_NONE);
-}
-
-Code_t
-remove_notice_from_queue(ZNotice_t *notice,
-                        ZNotice_Kind_t *kind,
-                        struct sockaddr_in *repl)
-{
-    Queue *entry;
-
-    DPR("Removing notice from queue...\n");
-    entry = find_notice_in_queue(notice);
-    if (entry == NULL)
-       return(ZERR_NONOTICE);
-
-    *kind = entry->notice.z_kind;
-    *repl = entry->reply;
-    if (entry->timer)
-       timer_reset(entry->timer);
-    free(entry->packet);
-    /*LIST_DELETE(entry);*/
-    *(entry)->prev_p = (entry)->next;
-    if((entry)->next) ((entry)->next->prev_p = (entry)->prev_p);
-#ifdef DEBUG
-    dump_queue();
-#endif /* DEBUG */
-    free(entry);
-    return(ZERR_NONE);
-}
-
-/* We have a server; transmit all of our packets. */
-void
-retransmit_queue(struct sockaddr_in *sin)
-{
-    Queue *entry;
-    Code_t ret;
-
-    DPR("Retransmitting queue to new server...\n");
-    ret = ZSetDestAddr(sin);
-    if (ret != ZERR_NONE) {
-       Zperr (ret);
-       com_err("queue", ret, "setting destination");
-    }
-    for (entry = hm_queue; entry; entry = entry->next) {
-       DPR("notice:\n");
-       DPR2("\tz_kind: %d\n", entry->notice.z_kind);
-       DPR2("\tz_port: %u\n", ntohs(entry->notice.z_port));
-       DPR2("\tz_class: %s\n", entry->notice.z_class);
-       DPR2("\tz_clss_inst: %s\n", entry->notice.z_class_inst);
-       DPR2("\tz_opcode: %s\n", entry->notice.z_opcode);
-       DPR2("\tz_sender: %s\n", entry->notice.z_sender);
-       DPR2("\tz_recip: %s\n", entry->notice.z_recipient);
-       ret = send_outgoing(&entry->notice);
-       if (ret != ZERR_NONE) {
-           Zperr(ret);
-           com_err("queue", ret, "sending raw notice");
-       }
-       entry->timer = timer_set_rel(rexmit_times[0], queue_timeout, entry);
-       entry->retries = 0;
-    }
-    retransmits_enabled = 1;
-}
-
-/* We lost our server; nuke all of our timers. */
-void
-disable_queue_retransmits(void)
-{
-    Queue *entry;
-
-    for (entry = hm_queue; entry; entry = entry->next) {
-       if (entry->timer)
-           timer_reset(entry->timer);
-       entry->timer = NULL;
-    }
-    retransmits_enabled = 0;
-}
-
-#ifdef DEBUG
-static Code_t
-dump_queue(void)
-{
-    Queue *entry;
-    caddr_t mp;
-    int ml;
-
-    DPR("Dumping queue...\n");
-    if (!hm_queue) {
-       printf("Queue is empty.\n");
-       return;
-    }
-
-    for (entry = hm_queue; entry; entry = entry->next) {
-       printf("notice:\n");
-       printf("\tz_kind: %d\n", entry->notice.z_kind);
-       printf("\tz_port: %u\n", ntohs(entry->notice.z_port));
-       printf("\tz_class: %s\n", entry->notice.z_class);
-       printf("\tz_clss_inst: %s\n", entry->notice.z_class_inst);
-       printf("\tz_opcode: %s\n", entry->notice.z_opcode);
-       printf("\tz_sender: %s\n", entry->notice.z_sender);
-       printf("\tz_recip: %s\n", entry->notice.z_recipient);
-       printf("\tMessage:\n");
-       mp = entry->notice.z_message;
-       for (ml = strlen(mp) + 1; ml <= entry->notice.z_message_len; ml++) {
-           printf("\t%s\n", mp);
-           mp += strlen(mp)+1;
-           ml += strlen(mp);
-       }
-    }
-}
-#endif /* DEBUG */
-
-int
-queue_len(void)
-{
-    int length = 0;
-    Queue *entry;
-
-    for (entry = hm_queue; entry; entry = entry->next)
-       length++;
-    return length;
-}
-
-static Queue *
-find_notice_in_queue(ZNotice_t *notice)
-{
-    Queue *entry;
-
-    for (entry = hm_queue; entry; entry = entry->next) {
-       if (ZCompareUID(&entry->notice.z_uid, &notice->z_uid))
-           return entry;
-    }
-    return NULL;
-}
-
-static void
-queue_timeout(void *arg)
-{
-    Queue *entry = (Queue *) arg;
-    Code_t ret;
-
-    entry->timer = NULL;
-    ret = ZSetDestAddr(&serv_sin);
-    if (ret != ZERR_NONE) {
-       Zperr(ret);
-       com_err("queue", ret, "setting destination");
-    }
-    entry->retries++;
-    if (rexmit_times[entry->retries] == -1) {
-       new_server(NULL);
-       return;
-    }
-    DPR("Resending notice:\n");
-    DPR2("\tz_kind: %d\n", entry->notice.z_kind);
-    DPR2("\tz_port: %u\n", ntohs(entry->notice.z_port));
-    DPR2("\tz_class: %s\n", entry->notice.z_class);
-    DPR2("\tz_clss_inst: %s\n", entry->notice.z_class_inst);
-    DPR2("\tz_opcode: %s\n", entry->notice.z_opcode);
-    DPR2("\tz_sender: %s\n", entry->notice.z_sender);
-    DPR2("\tz_recip: %s\n", entry->notice.z_recipient);
-    ret = send_outgoing(&entry->notice);
-    if (ret != ZERR_NONE) {
-       Zperr(ret);
-       com_err("queue", ret, "sending raw notice");
-    }
-    entry->timer = timer_set_rel(rexmit_times[entry->retries], queue_timeout,
-                                entry);
-}
-
diff --git a/zephyr/zhm/timer.c b/zephyr/zhm/timer.c
deleted file mode 100644 (file)
index fc0596e..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains functions for managing multiple timeouts.
- *
- *      Created by:     John T. Kohl
- *      Derived from timer_manager_ by Ken Raeburn
- *
- *      $Id: timer.c 2144 2008-01-21 07:57:32Z kcr $
- *
- */
-
-#include "internal.h"
-#include "timer.h"
-
-#ifndef SABER
-#ifndef lint
-static const char rcsid[] =
-"$Id: timer.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif /* lint */
-#endif /* SABER */
-
-/*
- * timer_manager_ -- routines for handling timers in login_shell
- * (and elsewhere)
- *
- * Copyright 1986 Student Information Processing Board,
- * Massachusetts Institute of Technology
- *
- * written by Ken Raeburn
- Permission to use, copy, modify, and distribute this
- software and its documentation for any purpose and without
- fee is hereby granted, provided that the above copyright
- notice appear in all copies and that both that copyright
- notice and this permission notice appear in supporting
- documentation, and that the name of M.I.T. and the Student
- Information Processing Board not be used in
- advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
- M.I.T. and the Student Information Processing Board
- make no representations about the suitability of
- this software for any purpose.  It is provided "as is"
- without express or implied warranty.
- */
-
-
-/*
- * External functions:
- *
- * Timer *timer_set_rel (time_rel, proc, arg)
- *      long time_rel;
- *      void (*proc)();
- *      caddr_t arg;
- * Timer *timer_set_abs (time_abs, proc, arg)
- *      long time_abs;
- *      void (*proc)();
- *      caddr_t arg;
- *
- * void timer_reset(tmr)
- *      Timer *tmr;
- *
- * void timer_process()
- *
- */
-
-/* DELTA is just an offset to keep the size a bit less than a power 
- * of two.  It's measured in pointers, so it's 32 bytes on most
- * systems. */
-#define DELTA 8
-#define INITIAL_HEAP_SIZE (1024 - DELTA)
-
-/* We have three operations which we need to be able to perform
- * quickly: adding a timer, deleting a timer given a pointer to
- * it, and determining which timer will be the next to go off.  A
- * heap is an ideal data structure for these purposes, so we use
- * one.  The heap is an array of pointers to timers, and each timer
- * knows the position of its pointer in the heap.
- *
- * Okay, what is the heap, exactly?  It's a data structure,
- * represented as an array, with the invariant condition that
- * the timeout of heap[i] is less than or equal to the timeout of
- * heap[i * 2 + 1] and heap[i * 2 + 2] (assuming i * 2 + 1 and
- * i * 2 + 2 are valid * indices).  An obvious consequence of this
- * is that heap[0] has the lowest timer value, so finding the first
- * timer to go off is easy.  We say that an index i has "children"
- * i * 2 + 1 and i * 2 + 1, and the "parent" (i - 1) / 2.
- *
- * To add a timer to the heap, we start by adding it to the end, and
- * then keep swapping it with its parent until it has a parent with
- * a timer value less than its value.  With a little bit of thought,
- * you can see that this preserves the heap property on all indices
- * of the array.
- *
- * To delete a timer at position i from the heap, we discard it and
- * fill in its position with the last timer in the heap.  In order
- * to restore the heap, we have to consider two cases: the timer
- * value at i is less than that of its parent, or the timer value at
- * i is greater than that of one of its children.  In the first case,
- * we propagate the timer at i up the tree, swapping it with its
- * parent, until the heap is restored; in the second case, we
- * propagate the timer down the tree, swapping it with its least
- * child, until the heap is restored. */
-
-/* In order to ensure that the back pointers from timers are consistent
- * with the heap pointers, all heap assignments should be done with the
- * HEAP_ASSIGN() macro, which sets the back pointer and updates the
- * heap at the same time. */
-#define PARENT(i) (((i) - 1) / 2)
-#define CHILD1(i) ((i) * 2 + 1)
-#define CHILD2(i) ((i) * 2 + 2)
-#define TIME(i) (heap[i]->abstime)
-#define HEAP_ASSIGN(pos, tmr) ((heap[pos] = (tmr))->heap_pos = (pos))
-
-static Timer **heap;
-static int num_timers = 0;
-static int heap_size = 0;
-
-static void timer_botch (void*);
-static Timer *add_timer (Timer *);
-
-Timer *
-timer_set_rel(long time_rel,
-             void (*proc)(void *),
-             void *arg)
-{
-    Timer *new_t;
-
-    new_t = (Timer *) malloc(sizeof(*new_t));
-    if (new_t == NULL)
-       return(NULL);
-    new_t->abstime = time_rel + time(NULL);
-    new_t->func = proc;
-    new_t->arg = arg;
-    return add_timer(new_t);
-}
-
-void
-timer_reset(Timer *tmr)
-{
-    int pos, min;
-
-    /* Free the timer, saving its heap position. */
-    pos = tmr->heap_pos;
-    free(tmr);
-
-    if (pos != num_timers - 1) {
-       /* Replace the timer with the last timer in the heap and
-        * restore the heap, propagating the timer either up or
-        * down, depending on which way it violates the heap
-        * property to insert the last timer in place of the
-        * deleted timer. */
-       if (pos > 0 && TIME(num_timers - 1) < TIME(PARENT(pos))) {
-           do {
-               HEAP_ASSIGN(pos, heap[PARENT(pos)]);
-               pos = PARENT(pos);
-           } while (pos > 0 && TIME(num_timers - 1) < TIME(PARENT(pos)));
-           HEAP_ASSIGN(pos, heap[num_timers - 1]);
-       } else {
-           while (CHILD2(pos) < num_timers) {
-               min = num_timers - 1;
-               if (TIME(CHILD1(pos)) < TIME(min))
-                   min = CHILD1(pos);
-               if (TIME(CHILD2(pos)) < TIME(min))
-                   min = CHILD2(pos);
-               HEAP_ASSIGN(pos, heap[min]);
-               pos = min;
-           }
-           if (pos != num_timers - 1)
-               HEAP_ASSIGN(pos, heap[num_timers - 1]);
-       }
-    }
-    num_timers--;
-}
-
-
-#define set_timeval(t,s) ((t).tv_sec=(s),(t).tv_usec=0,(t))
-
-static Timer *
-add_timer(Timer *new)
-{
-    int pos;
-
-    /* Create or resize the heap as necessary. */
-    if (heap_size == 0) {
-       heap_size = INITIAL_HEAP_SIZE;
-       heap = (Timer **) malloc(heap_size * sizeof(Timer *));
-    } else if (num_timers >= heap_size) {
-       heap_size = heap_size * 2 + DELTA;
-       heap = (Timer **) realloc(heap, heap_size * sizeof(Timer *));
-    }
-    if (!heap) {
-       free(new);
-       return NULL;
-    }
-
-    /* Insert the Timer *into the heap. */
-    pos = num_timers;
-    while (pos > 0 && new->abstime < TIME(PARENT(pos))) {
-       HEAP_ASSIGN(pos, heap[PARENT(pos)]);
-       pos = PARENT(pos);
-    }
-    HEAP_ASSIGN(pos, new);
-    num_timers++;
-
-    return new;
-}
-
-void
-timer_process(void)
-{
-    Timer *t;
-    timer_proc func;
-    void *arg;
-
-    if (num_timers == 0 || heap[0]->abstime > time(NULL))
-       return;
-
-    /* Remove the first timer from the heap, remembering its
-     * function and argument. */
-    t = heap[0];
-    func = t->func;
-    arg = t->arg;
-    t->func = timer_botch;
-    t->arg = NULL;
-    timer_reset(t);
-
-    /* Run the function. */
-    func(arg);
-}
-
-struct timeval *
-timer_timeout(struct timeval *tvbuf)
-{
-    if (num_timers > 0) {
-       tvbuf->tv_sec = heap[0]->abstime - time(NULL);
-       if (tvbuf->tv_sec < 0)
-           tvbuf->tv_sec = 0;
-       tvbuf->tv_usec = 0;
-       return tvbuf;
-    } else {
-       return NULL;
-    }
-}
-
-static void
-timer_botch(void *arg)
-{
-    syslog(LOG_CRIT, "timer botch\n");
-    abort();
-}
-
diff --git a/zephyr/zhm/timer.h b/zephyr/zhm/timer.h
deleted file mode 100644 (file)
index 89ed759..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains definitions used by timer.c
- *
- *      Created by:     John T. Kohl
- *      Derived from timer_manager_.h by Ken Raeburn
- *
- *      $Id: timer.h 2091 2007-12-20 01:17:23Z kcr $
- *
- */
-
-#ifndef __TIMER_H
-
-/*
- * timer_manager_ -- routines for handling timers in login_shell
- * (and elsewhere)
- *
- * Copyright 1986 Student Information Processing Board,
- * Massachusetts Institute of Technology
- *
- * written by Ken Raeburn
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of M.I.T. and the Student
-Information Processing Board not be used in
-advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-M.I.T. and the Student Information Processing Board
-make no representations about the suitability of
-this software for any purpose.  It is provided "as is"
-without express or implied warranty.
-
- */
-
-typedef void (*timer_proc) __P((void *));
-
-typedef struct _Timer {
-        int            heap_pos;       /* Position in timer heap */
-        long           abstime;
-        timer_proc     func;
-        void           *arg;
-} Timer;
-
-Timer *timer_set_rel __P((long, timer_proc, void *));
-Timer *timer_set_abs __P((long, timer_proc, void *));
-void timer_reset __P((Timer *));
-void timer_process __P((void));
-struct timeval *timer_timeout __P((struct timeval *tvbuf));
-
-#endif /* __TIMER_H */
-
diff --git a/zephyr/zhm/zhm.8 b/zephyr/zhm/zhm.8
deleted file mode 100644 (file)
index 9a9ff74..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-.\"    $Id: zhm.8 2091 2007-12-20 01:17:23Z kcr $
-.\"
-.\" Copyright 1987, 1988 by the Massachusetts Institute of Technology
-.\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
-.\" specifies the terms and conditions for redistribution.
-.\"
-.\"
-.TH ZHM 8 "November 1, 1988" "MIT Project Athena"
-.ds ]W MIT Project Athena
-.SH NAME
-zhm \- Zephyr HostManager
-.SH SYNOPSIS
-.B /etc/athena/zhm
-[
-.BI -d
-] [
-.BI -h
-] [
-.BI -r
-] [
-.BI -i
-] [
-.BI -f
-] [
-.BI server
-.BI ...
-]
-.SH DESCRIPTION
-.I Zhm
-is the link between a client machine and the zephyr server.  All
-notices sent from programs on the client are funneled through
-.I zhm.
-This allows all client programs to be much simpler in function, since
-the HostManager is responsible for handling errors, retransmitting
-lost notices, and holding all notices until they are acknowledged.
-.PP
-The
-.I -d
-option turns on debugging mode, and sends its information to syslog
-LOG_DAEMON messages.
-.PP
-The
-.I -h
-option causes
-.I zhm
-to send a shutdown message and exit upon delivery of a SIGHUP signal.
-The normal action on SIGHUP is to send a flush notice to the zephyr server.
-.PP
-The
-.I -r
-option causes
-.I zhm
-to send a boot notice to the server and exit when the notice is acknowledged.
-.PP
-The
-.I -i
-option indicates that
-.I zhm
-is being started by
-.I inetd(8).
-When this option is specified,
-.I zhm
-assumes that file descriptor zero (0) is bound to the UDP datagram port
-designated for hostmanager use.  In this mode, SIGHUP is handled as if the
-.I -h
-option were specified.
-.PP
-The
-.I -f
-option disables the "flush" operation which allows any client to flush
-all subscriptions for the host.
-.PP
-The optional
-.I server
-arguments are used to replace the set of server names supplied by
-the
-.I hesiod(3)
-name server.
-.SH SEE ALSO
-zephyr(1), zephyrd(8), inetd(8)
-.br
-Project Athena Technical Plan Section E.4.1, `Zephyr Notification
-Service'
-.SH AUTHOR
-.PP
-David C. Jedlinsky, MIT Project Athena
-.SH RESTRICTIONS
-Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
-All Rights Reserved.
-.br
-.I zephyr(1)
-specifies the terms and conditions for redistribution.
diff --git a/zephyr/zhm/zhm.c b/zephyr/zhm/zhm.c
deleted file mode 100644 (file)
index 7fafd6a..0000000
+++ /dev/null
@@ -1,641 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains the hostmanager client program.
- *
- *      Created by:     David C. Jedlinsky
- *
- *      $Id: zhm.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1987,1991 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h". 
- */
-
-#include "zhm.h"
-
-static const char rcsid_hm_c[] = "$Id: zhm.c 2144 2008-01-21 07:57:32Z kcr $";
-
-#ifdef HAVE_HESIOD
-int use_hesiod = 0;
-#endif
-
-#ifdef macII
-#define srandom srand48
-#endif
-
-#define PIDDIR "/var/run/"
-
-int hmdebug, rebootflag, noflushflag, errflg, dieflag, inetd, oldpid, nofork;
-int no_server = 1, nservchang, nserv, nclt;
-int booting = 1, timeout_type, deactivated = 1;
-int bootflag = 1;
-int started = 0;
-long starttime;
-u_short cli_port;
-struct sockaddr_in cli_sin, serv_sin, from;
-int numserv;
-char **serv_list = NULL;
-char prim_serv[MAXHOSTNAMELEN], cur_serv[MAXHOSTNAMELEN];
-char *zcluster;
-int deactivating = 0;
-int terminating = 0;
-struct hostent *hp;
-char hostname[MAXHOSTNAMELEN], loopback[4];
-char PidFile[128];
-
-static RETSIGTYPE deactivate(int);
-static RETSIGTYPE terminate(int);
-static void choose_server(void);
-static void init_hm(void);
-static void detach(void);
-static void send_stats(ZNotice_t *, struct sockaddr_in *);
-static char *strsave(const char *);
-
-extern void send_flush_notice(char *);
-extern void server_manager(ZNotice_t *);
-extern void send_boot_notice(char *);
-extern void find_next_server(char *);
-extern int optind;
-
-static RETSIGTYPE
-deactivate(int ignored)
-{
-    deactivating = 1;
-}
-
-static RETSIGTYPE
-terminate(int ignored)
-{
-    terminating = 1;
-}
-
-int
-main(int argc,
-     char *argv[])
-{
-    ZNotice_t notice;
-    ZPacket_t packet;
-    Code_t ret;
-    int opt, pak_len, fd, count;
-    fd_set readers;
-    struct timeval tv;
-
-    sprintf(PidFile, "%szhm.pid", PIDDIR);
-
-    if (gethostname(hostname, MAXHOSTNAMELEN) < 0) {
-       printf("Can't find my hostname?!\n");
-       exit(-1);
-    }
-    prim_serv[0] = '\0';
-    while ((opt = getopt(argc, argv, "drhinfN")) != EOF)
-       switch(opt) {
-         case 'd':
-           hmdebug = 1;
-           break;
-         case 'h':
-           /* Die on SIGHUP */
-           dieflag = 1;
-           break;
-         case 'r':
-           /* Reboot host -- send boot notice -- and exit */
-           rebootflag= 1;
-           break;
-         case 'i':
-           /* inetd operation: don't do bind ourselves, fd 0 is
-              already connected to a socket. Implies -h */
-           inetd = 1;
-           dieflag = 1;
-           break;
-         case 'n':
-           nofork = 1;
-           break;
-         case 'f':
-           noflushflag = 1;
-           break;
-          case 'N':
-            bootflag = 0;
-            break;
-         case '?':
-         default:
-           errflg++;
-           break;
-       }
-    if (errflg) {
-       fprintf(stderr, "Usage: %s [-d] [-h] [-r] [-n] [-f] [server]\n", 
-               argv[0]);       
-       exit(2);
-    }
-
-    numserv = 0;
-
-    /* Override server argument? */
-    if (optind < argc) {
-       if ((hp = gethostbyname(argv[optind++])) == NULL) {
-           printf("Unknown server name: %s\n", argv[optind-1]);
-       } else {
-           strncpy(prim_serv, hp->h_name, sizeof(prim_serv));
-           prim_serv[sizeof(prim_serv) - 1] = '\0';
-       }
-
-       /* argc-optind is the # of other servers on the command line */
-       serv_list = (char **) malloc((argc - optind + 2) * sizeof(char *));
-       if (serv_list == NULL) {
-           printf("Out of memory.\n");
-           exit(-5);
-       }
-       serv_list[numserv++] = prim_serv;
-       for (; optind < argc; optind++) {
-           if ((hp = gethostbyname(argv[optind])) == NULL) {
-               printf("Unknown server name '%s', ignoring\n", argv[optind]);
-               continue;
-           }
-            serv_list[numserv++] = strsave(hp->h_name);
-       }
-       serv_list[numserv] = NULL;
-    }
-#ifdef HAVE_HESIOD
-    else
-       use_hesiod = 1;
-#endif
-
-    choose_server();
-    if (*prim_serv == '\0') {
-       printf("No valid primary server found, exiting.\n");
-       exit(ZERR_SERVNAK);
-    }
-    init_hm();
-    started = 1;
-
-    DPR2("zephyr server port: %u\n", ntohs(serv_sin.sin_port));
-    DPR2("zephyr client port: %u\n", ntohs(cli_port));
-  
-    /* Main loop */
-    for ever {
-       /* Wait for incoming packets or queue timeouts. */
-       DPR("Waiting for a packet...");
-       fd = ZGetFD();
-       FD_ZERO(&readers);
-       FD_SET(fd, &readers);
-       count = select(fd + 1, &readers, NULL, NULL, timer_timeout(&tv));
-       if (count == -1 && errno != EINTR) {
-           syslog(LOG_CRIT, "select() failed: %m");
-           die_gracefully();
-       }
-
-       if (terminating)
-           die_gracefully();
-
-       if (deactivating) {
-           deactivating = 0;
-           if (dieflag) {
-               die_gracefully();
-           } else {
-               choose_server();
-               send_flush_notice(HM_FLUSH);
-               deactivated = 1;
-           }
-       }
-
-       timer_process();
-
-       if (count > 0) {
-           ret = ZReceivePacket(packet, &pak_len, &from);
-           if ((ret != ZERR_NONE) && (ret != EINTR)){
-               Zperr(ret);
-               com_err("hm", ret, "receiving notice");
-           } else if (ret != EINTR) {
-               /* Where did it come from? */
-               if ((ret = ZParseNotice(packet, pak_len, &notice))
-                   != ZERR_NONE) {
-                   Zperr(ret);
-                   com_err("hm", ret, "parsing notice");
-               } else {
-                   DPR("Got a packet.\n");
-                   DPR("notice:\n");
-                   DPR2("\tz_kind: %d\n", notice.z_kind);
-                   DPR2("\tz_port: %u\n", ntohs(notice.z_port));
-                   DPR2("\tz_class: %s\n", notice.z_class);
-                   DPR2("\tz_class_inst: %s\n", notice.z_class_inst);
-                   DPR2("\tz_opcode: %s\n", notice.z_opcode);
-                   DPR2("\tz_sender: %s\n", notice.z_sender);
-                   DPR2("\tz_recip: %s\n", notice.z_recipient);
-                   DPR2("\tz_def_format: %s\n", notice.z_default_format);
-                   DPR2("\tz_message: %s\n", notice.z_message);
-                   if (memcmp(loopback, &from.sin_addr, 4) &&
-                       ((notice.z_kind == SERVACK) ||
-                        (notice.z_kind == SERVNAK) ||
-                        (notice.z_kind == HMCTL))) {
-                       server_manager(&notice);
-                   } else {
-                       if (!memcmp(loopback, &from.sin_addr, 4) &&
-                           ((notice.z_kind == UNSAFE) ||
-                            (notice.z_kind == UNACKED) ||
-                            (notice.z_kind == ACKED) ||
-                            (notice.z_kind == HMCTL))) {
-                           /* Client program... */
-                           if (deactivated) {
-                               send_boot_notice(HM_BOOT);
-                               deactivated = 0;
-                           }
-                           transmission_tower(&notice, packet, pak_len);
-                           DPR2("Pending = %d\n", ZPending());
-                       } else {
-                           if (notice.z_kind == STAT) {
-                               send_stats(&notice, &from);
-                           } else {
-                               syslog(LOG_INFO,
-                                      "Unknown notice type: %d",
-                                      notice.z_kind);
-                           }
-                       }       
-                   }
-               }
-           }
-       }
-    }
-}
-
-static void
-choose_server(void)
-{
-    int i = 0;
-    char **clust_info, **cpp;
-
-#ifdef HAVE_HESIOD
-    if (use_hesiod) {
-
-       /* Free up any previously used resources */
-       if (prim_serv[0]) 
-           i = 1;
-       while (i < numserv)
-           free(serv_list[i++]);
-       if (serv_list)
-           free(serv_list);
-       
-       numserv = 0;
-       prim_serv[0] = '\0';
-       
-       if ((clust_info = hes_resolve(hostname, "CLUSTER")) == NULL) {
-           zcluster = NULL;
-       } else {
-           for (cpp = clust_info; *cpp; cpp++) {
-               /* Remove the following check once we have changed over to
-                * new Hesiod format (i.e. ZCLUSTER.sloc lookup, no primary
-                * server
-                */
-               if (!strncasecmp("ZEPHYR", *cpp, 6)) {
-                   register char *c;
-               
-                   if ((c = strchr(*cpp, ' ')) == 0) {
-                       printf("Hesiod error getting primary server info.\n");
-                   } else {
-                       strncpy(prim_serv, c+1, sizeof(prim_serv));
-                       prim_serv[sizeof(prim_serv) - 1] = '\0';
-                   }
-                   break;
-               }
-               if (!strncasecmp("ZCLUSTER", *cpp, 9)) {
-                   register char *c;
-               
-                   if ((c = strchr(*cpp, ' ')) == 0) {
-                       printf("Hesiod error getting zcluster info.\n");
-                   } else {
-                       if ((zcluster = malloc((unsigned)(strlen(c+1)+1)))
-                           != NULL) {
-                           strcpy(zcluster, c+1);
-                       } else {
-                           printf("Out of memory.\n");
-                           exit(-5);
-                       }
-                   }
-                   break;
-               }
-           }
-           for (cpp = clust_info; *cpp; cpp++)
-               free(*cpp);
-       }
-
-       if (zcluster == NULL) {
-           if ((zcluster = malloc((unsigned)(strlen("zephyr")+1))) != NULL)
-               strcpy(zcluster, "zephyr");
-           else {
-               printf("Out of memory.\n");
-               exit(-5);
-           }
-       }
-       while ((serv_list = hes_resolve(zcluster, "sloc")) == (char **)NULL) {
-           syslog(LOG_ERR, "No servers or no hesiod");
-           if (!started)
-               return; /* do not hang forever*/
-           /* wait a bit, and try again */
-           sleep(30);
-       }
-       cpp = (char **) malloc(2 * sizeof(char *));
-       if (cpp == NULL) {
-           printf("Out of memory.\n");
-           exit(-5);
-       }
-       if (prim_serv[0])
-           cpp[numserv++] = prim_serv;
-       for (i = 0; serv_list[i]; i++) {
-           /* copy in non-duplicates */
-           /* assume the names returned in the sloc are full domain names */
-           if (!prim_serv[0] || strcasecmp(prim_serv, serv_list[i])) {
-               cpp = (char **) realloc(cpp, (numserv+2) * sizeof(char *));
-               if (cpp == NULL) {
-                   printf("Out of memory.\n");
-                   exit(-5);
-               }
-               cpp[numserv++] = strsave(serv_list[i]);
-           }
-       }
-       for (i = 0; serv_list[i]; i++)
-           free(serv_list[i]);
-       cpp[numserv] = NULL;
-       serv_list = cpp;
-    }
-#endif
-    
-    if (!prim_serv[0] && numserv) {
-       srandom(time(NULL));
-       strncpy(prim_serv, serv_list[random() % numserv], sizeof(prim_serv));
-       prim_serv[sizeof(prim_serv) - 1] = '\0';
-    }
-}
-
-static void
-init_hm(void)
-{
-     struct servent *sp;
-     Code_t ret;
-     FILE *fp;
-#ifdef _POSIX_VERSION
-     struct sigaction sa;
-#endif
-
-     starttime = time((time_t *)0);
-     OPENLOG("hm", LOG_PID, LOG_DAEMON);
-  
-     ZSetServerState(1);       /* Aargh!!! */
-     if ((ret = ZInitialize()) != ZERR_NONE) {
-        Zperr(ret);
-        com_err("hm", ret, "initializing");
-        closelog();
-        exit(-1);
-     }
-     init_queue();
-
-     if (*prim_serv == '\0') {
-        strncpy(prim_serv, *serv_list, sizeof(prim_serv));
-        prim_serv[sizeof(prim_serv) - 1] = '\0';
-     }
-  
-     loopback[0] = 127;
-     loopback[1] = 0;
-     loopback[2] = 0;
-     loopback[3] = 1;
-      
-     if (inetd) {
-        ZSetFD(0);             /* fd 0 is on the socket, thanks to inetd */
-     } else {
-        /* Open client socket, for receiving client and server notices */
-        sp = getservbyname(HM_SVCNAME, "udp");
-        cli_port = (sp) ? sp->s_port : HM_SVC_FALLBACK;
-      
-        if ((ret = ZOpenPort(&cli_port)) != ZERR_NONE) {
-            Zperr(ret);
-            com_err("hm", ret, "opening port");
-            exit(ret);
-        }
-     }
-     cli_sin = ZGetDestAddr();
-
-     sp = getservbyname(SERVER_SVCNAME, "udp");
-     memset(&serv_sin, 0, sizeof(struct sockaddr_in));
-     serv_sin.sin_port = (sp) ? sp->s_port : SERVER_SVC_FALLBACK;
-      
-#ifndef DEBUG
-     if (!inetd && !nofork)
-        detach();
-  
-     /* Write pid to file */
-     fp = fopen(PidFile, "w");
-     if (fp != NULL) {
-        fprintf(fp, "%d\n", getpid());
-        fclose(fp);
-     }
-#endif /* DEBUG */
-
-     if (hmdebug) {
-         syslog(LOG_INFO, "Debugging on.");
-     }
-
-     /* Set up communications with server */
-     /* target is SERVER_SVCNAME port on server machine */
-
-     serv_sin.sin_family = AF_INET;
-  
-     /* who to talk to */
-     if ((hp = gethostbyname(prim_serv)) == NULL) {
-         DPR("gethostbyname failed\n");
-         find_next_server(NULL);
-     } else {
-         DPR2("Server = %s\n", prim_serv);
-         strncpy(cur_serv, prim_serv, sizeof(cur_serv));
-         cur_serv[sizeof(cur_serv) - 1] = '\0';        
-         memcpy(&serv_sin.sin_addr, hp->h_addr, 4);
-     }
-
-     if (bootflag)
-          send_boot_notice(HM_BOOT);
-     else
-          send_boot_notice(HM_ATTACH);
-     deactivated = 0;
-
-#ifdef _POSIX_VERSION
-     sigemptyset(&sa.sa_mask);
-     sa.sa_flags = 0;
-     sa.sa_handler = deactivate;
-     sigaction(SIGHUP, &sa, (struct sigaction *)0);
-     sa.sa_handler = terminate; 
-     sigaction(SIGTERM, &sa, (struct sigaction *)0);
-#else
-     signal(SIGHUP, deactivate);
-     signal(SIGTERM, terminate);
-#endif
-}
-
-static void
-detach(void)
-{
-     /* detach from terminal and fork. */
-     register int i, x = ZGetFD();
-     register long size;
-
-     i = fork();
-     if (i) {
-         if (i < 0)
-              perror("fork");
-         exit(0);
-     }
-#ifdef _POSIX_VERSION
-     size = sysconf(_SC_OPEN_MAX);
-#else
-     size = getdtablesize();
-#endif
-     for (i = 0; i < size; i++)
-         if (i != x)
-              close(i);
-
-     if ((i = open("/dev/tty", O_RDWR, 0666)) < 0)
-         ;             /* Can't open tty, but don't flame about it. */
-     else {
-#ifdef TIOCNOTTY
-         /* Necessary for old non-POSIX systems which automatically assign
-          * an opened tty as the controlling terminal of a process which
-          * doesn't already have one.  POSIX systems won't include
-          * <sys/ioctl.h> (see ../h/sysdep.h); if TIOCNOTTY is defined anyway,
-          * this is unnecessary but won't hurt. */
-         ioctl(i, TIOCNOTTY, (caddr_t) 0);
-#endif
-         close(i);
-     }
-#ifdef _POSIX_VERSION
-     setsid();
-#endif
-}
-
-static char version[BUFSIZ];
-
-static void
-send_stats(ZNotice_t *notice,
-          struct sockaddr_in *sin)
-{
-     ZNotice_t newnotice;
-     Code_t ret;
-     char *bfr;
-     char *list[20];
-     int len, i, nitems = 10;
-     unsigned long size;
-
-     newnotice = *notice;
-     
-     if ((ret = ZSetDestAddr(sin)) != ZERR_NONE) {
-         Zperr(ret);
-         com_err("hm", ret, "setting destination");
-     }
-     newnotice.z_kind = HMACK;
-
-     list[0] = (char *) malloc(MAXHOSTNAMELEN);
-     if (list[0] == NULL) {
-       printf("Out of memory.\n");
-       exit(-5);
-     }
-     strcpy(list[0], cur_serv);
-     list[1] = (char *) malloc(64);
-     if (list[1] == NULL) {
-       printf("Out of memory.\n");
-       exit(-5);
-     }
-     sprintf(list[1], "%d", queue_len());
-     list[2] = (char *) malloc(64);
-     if (list[2] == NULL) {
-       printf("Out of memory.\n");
-       exit(-5);
-     }
-     sprintf(list[2], "%d", nclt);
-     list[3] = (char *) malloc(64);
-     if (list[3] == NULL) {
-       printf("Out of memory.\n");
-       exit(-5);
-     }
-     sprintf(list[3], "%d", nserv);
-     list[4] = (char *) malloc(64);
-     if (list[4] == NULL) {
-       printf("Out of memory.\n");
-       exit(-5);
-     }
-     sprintf(list[4], "%d", nservchang);
-     list[5] = (char *) malloc(64);
-     if (list[5] == NULL) {
-       printf("Out of memory.\n");
-       exit(-5);
-     }
-     strncpy(list[5], rcsid_hm_c, 64);
-     list[5][63] = '\0';
-     
-     list[6] = (char *) malloc(64);
-     if (list[6] == NULL) {
-       printf("Out of memory.\n");
-       exit(-5);
-     }
-     if (no_server)
-         sprintf(list[6], "yes");
-     else
-         sprintf(list[6], "no");
-     list[7] = (char *) malloc(64);
-     if (list[7] == NULL) {
-       printf("Out of memory.\n");
-       exit(-5);
-     }
-     sprintf(list[7], "%ld", time((time_t *)0) - starttime);
-#ifdef adjust_size
-     size = (unsigned long)sbrk(0);
-     adjust_size (size);
-#else
-     size = -1;
-#endif
-     list[8] = (char *)malloc(64);
-     if (list[8] == NULL) {
-       printf("Out of memory.\n");
-       exit(-5);
-     }
-     sprintf(list[8], "%ld", size);
-     list[9] = (char *)malloc(32);
-     if (list[9] == NULL) {
-       printf("Out of memory.\n");
-       exit(-5);
-     }
-     strncpy(list[9], MACHINE_TYPE, 32);
-     list[9][31] = '\0';
-
-     /* Since ZFormatRaw* won't change the version number on notices,
-       we need to set the version number explicitly.  This code is taken
-       from Zinternal.c, function Z_FormatHeader */
-     if (!*version)
-            sprintf(version, "%s%d.%d", ZVERSIONHDR, ZVERSIONMAJOR,
-                    ZVERSIONMINOR);
-     newnotice.z_version = version;
-
-     if ((ret = ZFormatRawNoticeList(&newnotice, list, nitems, &bfr,
-                                    &len)) != ZERR_NONE) {
-        syslog(LOG_INFO, "Couldn't format stats packet");
-     } else {
-        if ((ret = ZSendPacket(bfr, len, 0)) != ZERR_NONE) {
-            Zperr(ret);
-            com_err("hm", ret, "sending stats");
-        }
-     }
-     free(bfr);
-     for(i=0;i<nitems;i++)
-         free(list[i]);
-}
-
-void
-die_gracefully(void)
-{
-     syslog(LOG_INFO, "Terminate signal caught...");
-     unlink(PidFile);
-     closelog();
-     exit(0);
-}
-
-static char *
-strsave(const char *sp)
-{
-    register char *ret;
-
-    if((ret = strdup(sp)) == NULL) {
-           abort();
-    }
-    return(ret);
-}
diff --git a/zephyr/zhm/zhm.h b/zephyr/zhm/zhm.h
deleted file mode 100644 (file)
index 2d1c1f0..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#ifndef __HM_H__
-#define __HM_H__
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains the hostmanager header file.
- *
- *      Created by:     David C. Jedlinsky
- *
- *      $Id: zhm.h 2144 2008-01-21 07:57:32Z kcr $
- *      $Zephyr: /mit/zephyr/src.rw/zhm/RCS/zhm.h,v 1.13 90/10/19 07:11:48 raeburn Exp $
- *
- *      Copyright (c) 1987, 1991 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h". 
- */
-
-#include <zephyr/mit-copyright.h>
-#include <internal.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <sys/time.h>
-#include "timer.h"
-
-/* These macros are for insertion into and deletion from a singly-linked list
- * with back pointers to the previous element's next pointer.  In order to
- * make these macros act like expressions, they use the comma operator for
- * sequenced evaluations of assignment, and "a && b" for "evaluate assignment
- * b if expression a is true". */
-#define LIST_INSERT(head, elem) \
-       ((elem)->next = *(head), \
-        (*head) && ((*(head))->prev_p = &(elem)->next), \
-        (*head) = (elem), (elem)->prev_p = (head))
-#define LIST_DELETE(elem) \
-       (*(elem)->prev_p = (elem)->next, \
-        (elem)->next && ((elem)->next->prev_p = (elem)->prev_p))
-
-#ifdef DEBUG
-#define DPR(a) fprintf(stderr, a); fflush(stderr)
-#define DPR2(a,b) fprintf(stderr, a, b); fflush(stderr)
-#define Zperr(e) fprintf(stderr, "Error = %d\n", e)
-#else
-#define DPR(a)
-#define DPR2(a,b)
-#define Zperr(e)
-#endif
-
-#define ever (;;)
-
-#define BOOTING 1
-#define NOTICES 2
-
-/* main.c */
-void die_gracefully __P((void));
-
-/* zhm_client.c */
-void transmission_tower __P((ZNotice_t *, char *, int));
-Code_t send_outgoing __P((ZNotice_t *));
-
-/* queue.c */
-void init_queue __P((void));
-Code_t add_notice_to_queue __P((ZNotice_t *, char *, struct sockaddr_in *,
-                               int));
-Code_t remove_notice_from_queue __P((ZNotice_t *, ZNotice_Kind_t *,
-                                    struct sockaddr_in *));
-void retransmit_queue __P((struct sockaddr_in *));
-void disable_queue_retransmits __P((void));
-int queue_len __P((void));
-
-struct sockaddr_in serv_sin;
-extern int rexmit_times[];
-
-#ifdef vax
-#define use_etext
-#endif /* vax */
-
-#ifdef ibm032
-#define adjust_size(size)      size -= 0x10000000
-#endif /* ibm032 */
-
-#if defined(sun) && (defined (SUN4_ARCH) || defined (sparc))
-#define use_etext
-#endif
-
-#ifdef _AIX
-#ifdef i386
-#define adjust_size(size)      size -= 0x400000
-#endif
-#ifdef _IBMR2
-#define        adjust_size(size)       size -= 0x20000000
-#endif
-#endif
-
-#if (defined(ultrix) || defined(sgi)) && defined(mips)
-#define adjust_size(size)      size -= 0x10000000
-#endif /* (ultrix || sgi) && mips */
-
-#if defined(__alpha)
-#define adjust_size(size)      size -= 0x140000000
-#endif /* alpha */
-
-#ifdef use_etext
-extern int etext;
-#define adjust_size(size)      size -= (unsigned int) &etext;
-#undef use_etext
-#endif
-
-#endif
diff --git a/zephyr/zhm/zhm_client.c b/zephyr/zhm/zhm_client.c
deleted file mode 100644 (file)
index 0d8b76c..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains the hostmanager <--> client interaction routines.
- *
- *      Created by:     David C. Jedlinsky
- *
- *      $Id: zhm_client.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h". 
- */
-
-#include "zhm.h"
-
-#ifndef lint
-#ifndef SABER
-static const char rcsid_hm_client_c[] = "$Id: zhm_client.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif /* SABER */
-#endif /* lint */
-
-extern int no_server, nclt, deactivated, noflushflag;
-extern struct sockaddr_in cli_sin, serv_sin, from;
-
-extern void send_flush_notice(char *);
-extern void new_server(char *sugg_serv);
-
-void transmission_tower(ZNotice_t *notice,
-                       char *packet,
-                       int pak_len)
-{
-    ZNotice_t gack;
-    Code_t ret;
-    struct sockaddr_in gsin;
-
-    nclt++;
-    if (notice->z_kind == HMCTL) {
-       if (!strcmp(notice->z_opcode, CLIENT_FLUSH)) {
-           if (noflushflag)
-               syslog(LOG_INFO, "Client requested hm flush (disabled).");
-           else {
-               send_flush_notice(HM_FLUSH);
-               deactivated = 1;
-           }
-       } else if (!strcmp(notice->z_opcode, CLIENT_NEW_SERVER)) {
-           new_server((char *)NULL);
-       } else {
-           syslog (LOG_INFO, "Bad control notice from client.");
-       }
-       return;
-    } else {
-       if (notice->z_kind != UNSAFE) {
-           gack = *notice;
-           gack.z_kind = HMACK;
-           gack.z_message_len = 0;
-           gack.z_multinotice = "";
-           gsin = cli_sin;
-           gsin.sin_port = from.sin_port;
-           if (gack.z_port == 0)
-               gack.z_port = from.sin_port;
-           DPR2 ("Client Port = %u\n", ntohs(gack.z_port));
-           notice->z_port = gack.z_port;
-           if ((ret = ZSetDestAddr(&gsin)) != ZERR_NONE) {
-               Zperr(ret);
-               com_err("hm", ret, "setting destination");
-           }
-           /* Bounce ACK to library */
-           if ((ret = send_outgoing(&gack)) != ZERR_NONE) {
-               Zperr(ret);
-               com_err("hm", ret, "sending raw notice");
-           }
-       }
-    }
-    if (!no_server) {
-       DPR2 ("Server Port = %u\n", ntohs(serv_sin.sin_port));
-       if ((ret = ZSetDestAddr(&serv_sin)) != ZERR_NONE) {
-           Zperr(ret);
-           com_err("hm", ret, "setting destination");
-       }
-       if ((ret = ZSendPacket(packet, pak_len, 0)) != ZERR_NONE) {
-           Zperr(ret);
-           com_err("hm", ret, "while sending raw notice");
-       }
-    }
-    if (add_notice_to_queue(notice, packet, &gsin, pak_len) != ZERR_NONE)
-        syslog(LOG_INFO, "Hey! Insufficient memory to add notice to queue!");
-}
-
-Code_t
-send_outgoing(ZNotice_t *notice)
-{
-    Code_t retval;
-    char *packet;
-    int length;
-
-    if (!(packet = (char *) malloc((unsigned)sizeof(ZPacket_t))))
-       return(ENOMEM);
-
-    if ((retval = ZFormatSmallRawNotice(notice, packet, &length))
-       != ZERR_NONE) {
-       free(packet);
-       return(retval);
-    }
-    retval = ZSendPacket(packet, length, 0);
-    free(packet);
-    return(retval);
-}
-
diff --git a/zephyr/zhm/zhm_server.c b/zephyr/zhm/zhm_server.c
deleted file mode 100644 (file)
index 0142a10..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It contains the hostmanager <--> server interaction routines.
- *
- *      Created by:     David C. Jedlinsky
- *
- *      $Id: zhm_server.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1987 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h". 
- */
-
-#include "zhm.h"
-
-#ifndef lint
-#ifndef SABER
-static const char rcsid_hm_server_c[] = "$Id: zhm_server.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif /* SABER */
-#endif /* lint */
-
-static void boot_timeout __P((void *));
-static int get_serv_timeout __P((void));
-
-static Timer *boot_timer = NULL;
-static int serv_rexmit_times[] = { 5, 10, 20, 40 };
-static int serv_timeouts = 0;
-
-int serv_loop = 0;
-extern u_short cli_port;
-extern struct sockaddr_in serv_sin, from;
-extern int timeout_type, hmdebug, nservchang, booting, nserv, no_server;
-extern int deactivated, rebootflag;
-extern int numserv;
-extern char **serv_list;
-extern char cur_serv[], prim_serv[];
-extern void die_gracefully(void);
-
-void hm_control(ZNotice_t *);
-void send_back(ZNotice_t *);
-void new_server(char *);
-
-/* Argument is whether we are actually booting, or just attaching
- * after a server switch */
-void
-send_boot_notice(char *op)
-{
-     ZNotice_t notice;
-     Code_t ret;
-  
-     /* Set up server notice */
-     notice.z_kind = HMCTL;
-     notice.z_port = cli_port;
-     notice.z_class = ZEPHYR_CTL_CLASS;
-     notice.z_class_inst = ZEPHYR_CTL_HM;
-     notice.z_opcode = op;
-     notice.z_sender = "HM";
-     notice.z_recipient = "";
-     notice.z_default_format = "";
-     notice.z_num_other_fields = 0;
-     notice.z_message_len = 0;
-  
-     /* Notify server that this host is here */
-     if ((ret = ZSetDestAddr(&serv_sin)) != ZERR_NONE) {
-         Zperr(ret);
-         com_err("hm", ret, "setting destination");
-     }
-     if ((ret = ZSendNotice(&notice, ZNOAUTH)) != ZERR_NONE) {
-         Zperr(ret);
-         com_err("hm", ret, "sending startup notice");
-     }
-     boot_timer = timer_set_rel(get_serv_timeout(), boot_timeout, NULL);
-}
-
-/* Argument is whether we are detaching or really going down */
-void
-send_flush_notice(char *op)
-{
-     ZNotice_t notice;
-     Code_t ret;
-     
-     /* Set up server notice */
-     notice.z_kind = HMCTL;
-     notice.z_port = cli_port;
-     notice.z_class = ZEPHYR_CTL_CLASS;
-     notice.z_class_inst = ZEPHYR_CTL_HM;
-     notice.z_opcode = op;
-     notice.z_sender = "HM";
-     notice.z_recipient = "";
-     notice.z_default_format = "";
-     notice.z_num_other_fields = 0;
-     notice.z_message_len = 0;
-
-     /* Tell server to lose us */
-     if ((ret = ZSetDestAddr(&serv_sin)) != ZERR_NONE) {
-         Zperr(ret);
-         com_err("hm", ret, "setting destination");
-     }
-     if ((ret = ZSendNotice(&notice, ZNOAUTH)) != ZERR_NONE) {
-         Zperr(ret);
-         com_err("hm", ret, "sending flush notice");
-     }
-}
-
-void
-find_next_server(char *sugg_serv)
-{
-     struct hostent *hp;
-     int done = 0;
-     char **parse = serv_list;
-     char *new_serv;
-  
-     if (sugg_serv) {
-         do {
-              if (!strcmp(*parse, sugg_serv))
-                   done = 1;
-         } while ((done == 0) && (*++parse != NULL));
-     }
-     if (done) {
-         if ((hp = gethostbyname(sugg_serv)) != NULL) {
-              DPR2 ("Server = %s\n", sugg_serv);       
-              (void)strncpy(cur_serv, sugg_serv, MAXHOSTNAMELEN);
-              cur_serv[MAXHOSTNAMELEN - 1] = '\0';
-              if (hmdebug)
-                   syslog(LOG_DEBUG, "Suggested server: %s\n", sugg_serv);
-         } else {
-              done = 0; 
-         }
-     }
-     while (!done) {
-        if ((++serv_loop > 3) && (strcmp(cur_serv, prim_serv))) {
-            serv_loop = 0;
-            if ((hp = gethostbyname(prim_serv)) != NULL) {
-                DPR2 ("Server = %s\n", prim_serv);
-                (void)strncpy(cur_serv, prim_serv, MAXHOSTNAMELEN);
-                cur_serv[MAXHOSTNAMELEN - 1] = '\0';
-                done = 1;
-                break;
-            }
-        }
-
-        switch (numserv) {
-        case 1:
-            if ((hp = gethostbyname(*serv_list)) != NULL) {
-                DPR2 ("Server = %s\n", *serv_list);
-                (void)strncpy(cur_serv, *serv_list, MAXHOSTNAMELEN);
-                cur_serv[MAXHOSTNAMELEN - 1] = '\0';
-                done = 1;
-                break;
-            }
-            /* fall through */
-        case 0:
-            if (rebootflag)
-                die_gracefully();
-            else
-                sleep(1);
-            break;
-        default:
-            do {
-                new_serv = serv_list[random() % numserv];
-            } while (!strcmp(new_serv, cur_serv));
-
-            if ((hp = gethostbyname(new_serv)) != NULL) {
-                DPR2 ("Server = %s\n", new_serv);
-                (void)strncpy(cur_serv, new_serv, MAXHOSTNAMELEN);
-                cur_serv[MAXHOSTNAMELEN - 1] = '\0';
-                done = 1;
-            } else
-                sleep(1);
-
-            break;
-        }
-     }
-     (void) memcpy((char *)&serv_sin.sin_addr, hp->h_addr, 4);
-     nservchang++;
-}
-
-void
-server_manager(ZNotice_t *notice)
-{
-    if (memcmp((char *)&serv_sin.sin_addr, (char *)&from.sin_addr, 4) ||
-       (serv_sin.sin_port != from.sin_port)) {
-       syslog (LOG_INFO, "Bad notice from port %u.", notice->z_port);
-    } else {
-       /* This is our server, handle the notice */
-       booting = 0;
-       serv_timeouts = 0;
-       if (boot_timer) {
-           timer_reset(boot_timer);
-           boot_timer = NULL;
-       }
-       DPR ("A notice came in from the server.\n");
-       nserv++;
-       switch(notice->z_kind) {
-       case HMCTL:
-           hm_control(notice);
-           break;
-       case SERVNAK:
-       case SERVACK:
-           send_back(notice);
-           break;
-       default:
-           syslog (LOG_INFO, "Bad notice kind!?");
-           break;
-       }
-    }
-}
-
-void
-hm_control(ZNotice_t *notice)
-{
-    Code_t ret;
-    struct hostent *hp;
-    char suggested_server[MAXHOSTNAMELEN];
-    unsigned long addr;
-     
-    DPR("Control message!\n");
-    if (!strcmp(notice->z_opcode, SERVER_SHUTDOWN)) {
-       if (notice->z_message_len) {
-           addr = inet_addr(notice->z_message);
-           hp = gethostbyaddr((char *) &addr, sizeof(addr), AF_INET);
-           if (hp != NULL) {
-               strncpy(suggested_server, hp->h_name, sizeof(suggested_server));
-               suggested_server[sizeof(suggested_server) - 1] = '\0';
-               new_server(suggested_server);
-           } else {
-               new_server(NULL);
-           }
-       } else {
-           new_server((char *)NULL);
-       }
-    } else if (!strcmp(notice->z_opcode, SERVER_PING)) {
-       notice->z_kind = HMACK;
-       if ((ret = ZSetDestAddr(&serv_sin)) != ZERR_NONE) {
-           Zperr(ret);
-           com_err("hm", ret, "setting destination");
-       }
-       if ((ret = send_outgoing(notice)) != ZERR_NONE) {
-           Zperr(ret);
-           com_err("hm", ret, "sending ACK");
-       }
-       if (no_server) {
-           no_server = 0;
-           retransmit_queue(&serv_sin);
-       }
-    } else {
-       syslog (LOG_INFO, "Bad control message.");
-    }
-}
-
-void
-send_back(ZNotice_t *notice)
-{
-    ZNotice_Kind_t kind;
-    struct sockaddr_in repl;
-    Code_t ret;
-  
-    if (!strcmp(notice->z_opcode, HM_BOOT) ||
-       !strcmp(notice->z_opcode, HM_ATTACH)) {
-       /* ignore message, just an ack from boot, but exit if we
-        * are rebooting.
-        */
-       if (rebootflag)
-           die_gracefully();
-    } else {
-       if (remove_notice_from_queue(notice, &kind, &repl) != ZERR_NONE) {
-           syslog (LOG_INFO, "Hey! This packet isn't in my queue!");
-       } else {
-           /* check if client wants an ACK, and send it */
-           if (kind == ACKED) {
-               DPR2 ("Client ACK port: %u\n", ntohs(repl.sin_port));
-               if ((ret = ZSetDestAddr(&repl)) != ZERR_NONE) {
-                   Zperr(ret);
-                   com_err("hm", ret, "setting destination");
-               }
-               if ((ret = send_outgoing(notice)) != ZERR_NONE) {
-                   Zperr(ret);
-                   com_err("hm", ret, "sending ACK");
-               }
-           }
-       }
-    }
-    if (no_server) {
-       no_server = 0;
-       retransmit_queue(&serv_sin);
-    }
-}
-
-void
-new_server(char *sugg_serv)
-{
-    no_server = 1;
-    syslog (LOG_INFO, "Server went down, finding new server.");
-    send_flush_notice(HM_DETACH);
-    find_next_server(sugg_serv);
-    if (booting) {
-       send_boot_notice(HM_BOOT);
-       deactivated = 0;
-    } else {
-       send_boot_notice(HM_ATTACH);
-    }
-    disable_queue_retransmits();
-}
-
-static void
-boot_timeout(void *arg)
-{
-    serv_timeouts++;
-    new_server(NULL);
-}
-
-static int get_serv_timeout(void)
-{
-    int ind, ntimeouts;
-
-    ind = (numserv == 0) ? serv_timeouts : serv_timeouts / numserv;
-    ntimeouts = sizeof(serv_rexmit_times) / sizeof(*serv_rexmit_times);
-    if (ind >= ntimeouts)
-       ind = ntimeouts - 1;
-    return serv_rexmit_times[ind];
-}
diff --git a/zephyr/zwgc/Makefile.in b/zephyr/zwgc/Makefile.in
deleted file mode 100644 (file)
index f7b68a8..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-SHELL = /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sbindir=@sbindir@
-lsbindir=@lsbindir@
-
-includedir=${prefix}/include
-mandir=@mandir@
-libdir=${exec_prefix}/lib
-bindir=${exec_prefix}/bin
-top_builddir=..
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-BUILDTOP=..
-VPATH=@srcdir@
-LIBTOOL=@LIBTOOL@
-CC=@CC@
-YACC=@YACC@
-INSTALL=@INSTALL@
-INSTANTIATE=${srcdir}/instantiate
-
-LIBZEPHYR=${BUILDTOP}/lib/libzephyr.la
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-ALL_CFLAGS=${CFLAGS} -DDATADIR=\"${datadir}\" -I${top_srcdir}/h \
-       -I${BUILDTOP}/h -I${srcdir} -I. @X_CFLAGS@ ${CPPFLAGS}
-YFLAGS=-d
-LDFLAGS=@X_LIBS@ @LDFLAGS@
-LIBS=${LIBZEPHYR} @LIBS@ -lcom_err @X_PRE_LIBS@ @ZWGC_LIBX11@ @X_EXTRA_LIBS@ \
-     @TLIB@ @REGEX_LIBS@ @ARES_LIBS@
-
-OBJS=  port_dictionary.o pointer_dictionary.o unsigned_long_dictionary.o \
-       string_dictionary.o int_dictionary.o string_dictionary_aux.o \
-       parser.o lexer.o node.o exec.o buffer.o main.o zephyr.o X_driver.o \
-       substitute.o port.o xshow.o mux.o eval.o subscriptions.o notice.o \
-       xcut.o regexp.o character_class.o text_operations.o file.o error.o \
-       variables.o formatter.o X_fonts.o X_gram.o tty_filter.o \
-       standard_ports.o xselect.o xmark.o xrevstack.o xerror.o \
-       new_string.o new_memory.o plus.o
-
-all: zwgc
-
-zwgc: ${OBJS} ${LIBZEPHYR}
-       ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
-
-port_dictionary.c port_dictionary.h: dictionary.c dictionary.h
-       ${INSTANTIATE} ${srcdir} dictionary port port.h
-
-pointer_dictionary.c pointer_dictionary.h: dictionary.c dictionary.h
-       ${INSTANTIATE} ${srcdir} dictionary pointer pointer.h
-
-unsigned_long_dictionary.c unsigned_long_dictionary.h: dictionary.c \
-                                                       dictionary.h
-       ${INSTANTIATE} ${srcdir} dictionary unsigned_long unsigned_long.h
-
-string_dictionary.c string_dictionary.h: dictionary.c dictionary.h
-       ${INSTANTIATE} ${srcdir} dictionary string new_string.h
-
-int_dictionary.c int_dictionary.h: dictionary.c dictionary.h
-       ${INSTANTIATE} ${srcdir} dictionary int
-
-char_stack.h: stack.h
-       ${INSTANTIATE} ${srcdir} stack char
-
-string_stack.h: stack.h
-       ${INSTANTIATE} ${srcdir} stack string
-
-xmode_stack.h: stack.h
-       ${INSTANTIATE} ${srcdir} stack xmode
-
-lexer.o: y.tab.h
-
-parser.o: y.tab.c y.tab.h
-       ${CC} -c ${ALL_CFLAGS} -o $@ y.tab.c
-
-y.tab.c y.tab.h: ${srcdir}/parser.y
-       ${YACC} ${YFLAGS} ${srcdir}/parser.y
-
-.c.o:
-       ${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install: zwgc
-       ${LIBTOOL} --mode=install ${INSTALL} -m 755 zwgc ${DESTDIR}${bindir}
-       ${INSTALL} -m 644 ${srcdir}/zwgc.1 ${DESTDIR}${mandir}/man1
-       ${INSTALL} -m 644 ${srcdir}/zwgc.desc ${DESTDIR}${datadir}/zephyr
-       ${INSTALL} -m 644 ${srcdir}/zwgc_resources ${DESTDIR}${datadir}/zephyr
-
-clean:
-       ${LIBTOOL} --mode=clean rm -f zwgc
-       rm -f ${OBJS} port_dictionary.[ch] pointer_dictionary.[ch]
-       rm -f unsigned_long_dictionary.[ch] string_dictionary.[ch]
-       rm -f int_dictionary.[ch] char_stack.h string_stack.h xmode_stack.h
-       rm -f y.tab.[ch]
-
-${OBJS}: ${top_srcdir}/h/sysdep.h ${BUILDTOP}/h/config.h
-zephyr.o: ${BUILDTOP}/h/zephyr/zephyr.h ${BUILDTOP}/h/zephyr/zephyr_err.h
-
-port_dictionary.o: port.h string_stack.h new_string.h new_memory.h
-pointer_dictionary.o: pointer.h new_string.h new_memory.h
-unsigned_long_dictionary.o: new_string.h new_memory.h
-string_dictionary.o: new_string.h new_memory.h
-int_dictionary.o: new_string.h new_memory.h
-X_driver.o: X_driver.h new_memory.h formatter.h mux.h variables.h error.h
-X_driver.o: X_gram.h xselect.h unsigned_long_dictionary.h
-X_fonts.o: X_fonts.h new_memory.h new_string.h error.h pointer_dictionary.h
-X_fonts.o: zwgc.h
-X_gram.o: X_gram.h xmark.h zwgc.h X_driver.h X_fonts.h error.h new_string.h
-X_gram.o: xrevstack.h xerror.h xselect.h
-browser.o: zwgc.h
-buffer.o: new_memory.h buffer.h
-character_class.o: character_class.h
-display.o: new_memory.h new_string.h variables.h display.h
-eval.o: new_memory.h node.h eval.h substitute.h port.h buffer.h regexp.h
-eval.o: text_operations.h zwgc.h variables.h
-exec.o: new_memory.h exec.h eval.h node.h buffer.h port.h variables.h notice.h
-file.o: new_memory.h new_string.h error.h
-formatter.o: new_memory.h char_stack.h string_dictionary.h formatter.h
-formatter.o: text_operations.h
-lexer.o: new_memory.h new_string.h int_dictionary.h lexer.h parser.h
-main.o: new_memory.h zwgc.h parser.h node.h exec.h zephyr.h notice.h
-main.o: subscriptions.h file.h mux.h port.h variables.h main.h
-mux.o: mux.h error.h zwgc.h pointer.h
-new_memory.o: new_memory.h int_dictionary.h
-new_string.o: new_memory.h
-node.o: new_memory.h node.h
-notice.o: new_memory.h error.h variables.h notice.h
-port.o: new_string.h port_dictionary.h port.h notice.h variables.h
-regexp.o: regexp.h
-standard_ports.o: new_memory.h port.h variables.h error.h main.h
-string_dictionary_aux.o: new_memory.h string_dictionary.h
-subscriptions.o: new_memory.h new_string.h int_dictionary.h zwgc.h
-subscriptions.o: subscriptions.h error.h file.h main.h
-substitute.o: new_memory.h lexer.h substitute.h
-text_operations.o: new_memory.h text_operations.h char_stack.h
-tty_filter.o: new_memory.h new_string.h string_dictionary_aux.h formatter.h
-tty_filter.o: zwgc.h error.h
-variables.o: new_memory.h notice.h string_dictionary_aux.h variables.h
-xcut.o: new_memory.h new_string.h X_gram.h zwgc.h xselect.h xmark.h error.h
-xcut.o: xrevstack.h
-xerror.o: mux.h
-xmark.o: X_gram.h X_fonts.h xmark.h new_string.h
-xrevstack.o: X_gram.h zwgc.h
-xselect.o: new_string.h xselect.h
-xshow.o: pointer_dictionary.h new_memory.h formatter.h variables.h zwgc.h
-xshow.o: X_fonts.h X_gram.h xmode_stack.h
-zephyr.o: new_string.h zephyr.h error.h mux.h subscriptions.h variables.h
-zephyr.o: pointer.h X_driver.h
-
-.PHONY: all check install clean
-
diff --git a/zephyr/zwgc/X_driver.c b/zephyr/zwgc/X_driver.c
deleted file mode 100644 (file)
index 8b32681..0000000
+++ /dev/null
@@ -1,414 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: X_driver.c 2336 2009-03-22 18:59:56Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_X_driver_c[] = "$Id: X_driver.c 2336 2009-03-22 18:59:56Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*                             The X driver:                                */
-/*                                                                          */
-/****************************************************************************/
-
-#ifndef X_DISPLAY_MISSING
-
-#include <zephyr/zephyr.h>
-#include "new_string.h"
-#include "X_driver.h"
-#include <X11/Xresource.h>
-#include "new_memory.h"
-#include "formatter.h"
-#include "mux.h"
-#include "variables.h"
-#include "error.h"
-#include "X_gram.h"
-#include "xselect.h"
-#include "unsigned_long_dictionary.h"
-#include "zephyr.h"
-
-char *app_instance;
-
-/*
- * dpy - the display we are outputting to
- */
-
-Display *dpy = NULL;
-
-/****************************************************************************/
-/*                                                                          */
-/*                  Code to deal with getting X resources:                  */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- *
- */
-
-#ifndef  APPNAME
-#define  APPNAME        "zwgc"
-#endif
-
-/*
- *
- */
-
-#ifndef  APPCLASS
-#define  APPCLASS        "Zwgc"
-#endif
-
-/*
- * x_resources - our X resources from application resources, command line,
- *               and user's X resources.
- */
-
-static XrmDatabase x_resources = NULL;
-
-/*
- *  Internal Routine:
- *
- *    int convert_string_to_bool(string text)
- *         Effects: If text represents yes/true/on, return 1.  If text
- *                  representes no/false/off, return 0.  Otherwise,
- *                  returns -1.
- */
-
-static int
-convert_string_to_bool(string text)
-{
-    if (!strcasecmp("yes", text) || !strcasecmp("y", text) ||
-       !strcasecmp("true", text) || !strcasecmp("t", text) ||
-       !strcasecmp("on", text))
-      return(1);
-    else if (!strcasecmp("no", text) || !strcasecmp("n", text) ||
-       !strcasecmp("false", text) || !strcasecmp("f", text) ||
-       !strcasecmp("off", text))
-      return(0);
-    else
-      return(-1);
-}
-
-/*
- *
- */
-
-char *
-get_string_resource(string name,
-                   string class)
-{
-    string full_name, full_class;
-    int status;
-    char *type;
-    XrmValue value;
-
-    full_name = string_Concat(APPNAME, ".");
-    full_name = string_Concat2(full_name, name);
-    full_class = string_Concat(APPCLASS, ".");
-    full_class = string_Concat2(full_class, class);
-
-    status = XrmGetResource(x_resources, full_name, full_class, &type, &value);
-    free(full_name);
-    free(full_class);
-
-    if (status != True)
-      return(NULL);
-
-    if (string_Neq(type, "String"))
-      return(NULL);
-
-    return(value.addr);
-}
-
-/*
- *
- */
-
-int
-get_bool_resource(string name,
-                 string class,
-                 int default_value)
-{
-    int result;
-    char *temp;
-
-    if (!(temp = get_string_resource(name, class)))
-      return(default_value);
-
-    result = convert_string_to_bool(temp);
-    if (result == -1)
-      result = default_value;
-
-    return(result);
-}
-
-static unsigned_long_dictionary color_dict = NULL;
-
-/* Requires: name points to color name or hex string.  name must be free'd
- *     eventually by the caller.
- * Effects: returns unsigned long pixel value, or default if the
- *     color is not known by the server.  If name is NULL, returns
- *     default;
- *
- * comment: caches return values from X server round trips.  If name does
- *     not resolve, this fact is NOT cached, and will result in a round
- *     trip each time.
- */
-
-unsigned long
-x_string_to_color(char *name,
-                 unsigned long def)
-{
-   unsigned_long_dictionary_binding *binding;
-   int exists;
-   XColor xc;
-
-   if (name == NULL)
-     return(def);
-
-   binding = unsigned_long_dictionary_Define(color_dict,name,&exists);
-
-   if (exists) {
-      return((unsigned long) binding->value);
-   } else {
-      if (XParseColor(dpy,DefaultColormapOfScreen(DefaultScreenOfDisplay(dpy)),
-                     name,&xc)) {
-        if (XAllocColor(dpy,
-                        DefaultColormapOfScreen(DefaultScreenOfDisplay(dpy)),
-                        &xc)) {
-           binding->value = (unsigned long) xc.pixel;
-           return(xc.pixel);
-        } else {
-           ERROR2("Error in XAllocColor on \"%s\": using default color\n",
-                  name);
-        }
-      } else {
-        ERROR2("Error in XParseColor on \"%s\": using default color\n",
-              name);
-      }      
-      unsigned_long_dictionary_Delete(color_dict,binding);
-      return(def);
-   }
-   /*NOTREACHED*/
-}
-
-/*
- * Standard X Toolkit command line options:
- */
-
-static XrmOptionDescRec cmd_options[] = {
-    {"+rv",          "*reverseVideo", XrmoptionNoArg,  (caddr_t) "off"},
-    {"+synchronous", "*synchronous",  XrmoptionNoArg,  (caddr_t) "off"},
-    {"-background",  "*background",   XrmoptionSepArg, (caddr_t) NULL},
-    {"-bd",          "*borderColor",  XrmoptionSepArg, (caddr_t) NULL},
-    {"-bg",          "*background",   XrmoptionSepArg, (caddr_t) NULL},
-    {"-bordercolor", "*borderColor",  XrmoptionSepArg, (caddr_t) NULL},
-    {"-borderwidth", ".borderWidth",  XrmoptionSepArg, (caddr_t) NULL},
-    {"-bw",          ".borderWidth",  XrmoptionSepArg, (caddr_t) NULL},
-    {"-display",     ".display",      XrmoptionSepArg, (caddr_t) NULL},
-    {"-fg",          "*foreground",   XrmoptionSepArg, (caddr_t) NULL},
-    {"-fn",          "*font",         XrmoptionSepArg, (caddr_t) NULL},
-    {"-font",        "*font",         XrmoptionSepArg, (caddr_t) NULL},
-    {"-foreground",  "*foreground",   XrmoptionSepArg, (caddr_t) NULL},
-    {"-geometry",    ".geometry",     XrmoptionSepArg, (caddr_t) NULL},
-    {"-iconname",    ".iconName",     XrmoptionSepArg, (caddr_t) NULL},
-#ifdef CMU_ZWGCPLUS
-    {"-lifespan",    "*lifespan",     XrmoptionSepArg, (caddr_t) NULL},
-#endif
-    {"-name",        ".name",         XrmoptionSepArg, (caddr_t) NULL},
-    {"-reverse",     "*reverseVideo", XrmoptionNoArg,  (caddr_t) "on"},
-    {"-rv",          "*reverseVideo", XrmoptionNoArg,  (caddr_t) "on"},
-    {"-transient",   "*transient",    XrmoptionNoArg,  (caddr_t) "on"},
-    {"-synchronous", "*synchronous",  XrmoptionNoArg,  (caddr_t) "on"},
-    {"-title",       ".title",        XrmoptionSepArg, (caddr_t) NULL},
-    {"-xrm",         NULL,            XrmoptionResArg, (caddr_t) NULL} };
-
-#define NUMBER_OF_OPTIONS ((sizeof (cmd_options))/ sizeof(cmd_options[0]))
-
-/*
- *
- */
-
-int
-open_display_and_load_resources(int *pargc,
-                               char **argv)
-{
-    XrmDatabase temp_db1, temp_db2, temp_db3;
-    char *filename, *res, *xdef;
-    char dbasename[128];
-
-    /* Initialize X resource manager: */
-    XrmInitialize();
-
-    /*
-     * Parse X toolkit command line arguments (including -display)
-     * into resources:
-     */
-    XrmParseCommand(&x_resources, cmd_options, NUMBER_OF_OPTIONS, APPNAME,
-                   pargc, argv);
-
-    /*
-     * Try and open the display using the display specified if given.
-     * If can't open the display, return an error code.
-     */
-    dpy = XOpenDisplay(get_string_resource("display", "display"));
-    if (!dpy)
-      return(1);
-
-    /* Read in our application-specific resources: */
-    sprintf(dbasename, "%s/zephyr/zwgc_resources", DATADIR);
-    temp_db1 = XrmGetFileDatabase(dbasename);
-
-    /*
-     * Get resources from the just opened display:
-     */
-    xdef = XResourceManagerString(dpy);
-    if (xdef)
-       temp_db2 = XrmGetStringDatabase(xdef);
-    else
-       temp_db2 = NULL;
-
-    /*
-     * Merge the 4 sets of resources together such that when searching
-     * for resources, they are checking in the following order:
-     * command arguments, XENVIRONMENT resources, server resources,
-     * application resources
-     */
-    XrmMergeDatabases(temp_db2, &temp_db1);
-
-#if XlibSpecificationRelease > 4
-    /* X11 R5 per-screen resources */
-    res = XScreenResourceString (DefaultScreenOfDisplay (dpy));
-    if (res != NULL)
-       XrmMergeDatabases(XrmGetStringDatabase(res), &temp_db1);
-#endif
-
-    /*
-     * Get XENVIRONMENT resources, if they exist, and merge
-     */
-    filename = getenv("XENVIRONMENT");
-    if (filename)
-    {
-       temp_db3 = XrmGetFileDatabase(filename);
-       XrmMergeDatabases(temp_db3, &temp_db1);
-    }
-    XrmMergeDatabases(x_resources, &temp_db1);
-    x_resources = temp_db1;
-
-    return(0);
-}
-
-/*
- * X_driver_ioerror: called by Xlib in case of an X IO error.
- * Shouldn't return (according to man page).
- *
- * on IO error, we clean up and exit.
- *
- * XXX it would be better to set mux_end_loop_p, but we can't return to
- * get there (Xlib will exit if this routine returns).
- *
- */
-
-int
-X_driver_ioerror(Display *display)
-{
-    ERROR2("X IO error on display '%s'--exiting\n", DisplayString(display));
-    finalize_zephyr();
-    exit(1);
-}
-/****************************************************************************/
-/*                                                                          */
-/*                Code to deal with initializing the driver:                */
-/*                                                                          */
-/****************************************************************************/
-
-/*ARGSUSED*/
-int
-X_driver_init(char *drivername,
-             char notfirst,
-             int *pargc,
-             char **argv)
-{
-    string temp;
-    int sync;
-
-    /*
-     * Attempt to open display and read resources, including from the
-     * command line.  If fail, exit with error code, disabling this
-     * driver:
-     */
-    if (open_display_and_load_resources(pargc, argv)) {
-       ERROR("Unable to open X display -- disabling X driver.\n");
-       return(1);
-    }
-
-    XSetIOErrorHandler(X_driver_ioerror);
-
-    /*
-     * For now, set some useful variables using resources:
-     */
-    sync = get_bool_resource("synchronous", "Synchronous", 0);
-    if (sync)
-      XSynchronize(dpy, sync);
-    temp = get_string_resource("geometry", "Geometry");
-    if (temp)
-      var_set_variable("default_X_geometry", temp);
-
-    temp=strrchr(argv[0],'/');
-
-    app_instance=string_Copy(temp?temp+1:argv[0]);
-
-    color_dict = unsigned_long_dictionary_Create(37);
-
-    xshowinit();
-    x_gram_init(dpy);
-    xicccmInitAtoms(dpy);
-    
-    mux_add_input_source(ConnectionNumber(dpy), (void(*)(void *))x_get_input, dpy);
-
-    return(0);
-}
-
-void
-X_driver_reset(void)
-{
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*                         The display routine itself:                      */
-/*                                                                          */
-/****************************************************************************/
-
-char *
-X_driver(string text)
-{
-    string text_copy;
-    desctype *desc;
-    int numstr, numnl;
-    
-    text_copy = string_Copy(text);
-    desc = disp_get_cmds(text_copy, &numstr, &numnl);
-    
-    xshow(dpy, desc, numstr, numnl);
-    
-    free(text_copy);
-    free_desc(desc);
-    return(NULL);
-}
-
-#endif /* X_DISPLAY_MISSING */
-
diff --git a/zephyr/zwgc/X_driver.h b/zephyr/zwgc/X_driver.h
deleted file mode 100644 (file)
index f3af147..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef x_driver_MODULE
-#define x_driver_MODULE
-
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: X_driver.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#include <X11/Xlib.h>
-
-#include "new_string.h"
-
-extern Display *dpy;
-
-extern char *get_string_resource(string, string);
-extern int get_bool_resource(string, string, int);
-extern unsigned long x_string_to_color(char *, unsigned long);
-
-#endif
diff --git a/zephyr/zwgc/X_fonts.c b/zephyr/zwgc/X_fonts.c
deleted file mode 100644 (file)
index ca7617d..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: X_fonts.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_X_fonts_c[] = "$Id: X_fonts.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*                          Code dealing with X fonts:                      */
-/*                                                                          */
-/****************************************************************************/
-
-#ifndef X_DISPLAY_MISSING
-
-#include "X_fonts.h"
-#include "new_memory.h"
-#include "new_string.h"
-#include "error.h"
-#include "pointer_dictionary.h"
-#include "zwgc.h"
-
-/*
- * font_dict - Lookup cache for fonts (the value pointers are XFontStruct *'s)
- */
-
-static pointer_dictionary family_dict = NULL;
-static pointer_dictionary fontname_dict = NULL;
-static pointer_dictionary fontst_dict = NULL;
-static pointer_dictionary fidst_dict = NULL;
-
-/*
- * {face,size}_to_string - lookup tables for converting {face,size} int
- *                         constants to ascii strings:
- */
-
-static string face_to_string[] = { "roman", "bold", "italic", "bolditalic" };
-static string size_to_string[] = { "small", "medium", "large" };
-
-static char *
-get_family(char *style,
-          char *substyle)
-{
-   char *desc;
-   pointer_dictionary_binding *binding;
-   int exists;
-   char *family;
-
-   desc=string_Concat("style.",style);
-   desc=string_Concat2(desc,".substyle.");
-   desc=string_Concat2(desc,substyle);
-   desc=string_Concat2(desc,".fontfamily");
-
-   if (!family_dict)
-      family_dict = pointer_dictionary_Create(37);
-   binding = pointer_dictionary_Define(family_dict,desc,&exists);
-
-   if (exists) {
-      free(desc);
-      return((string) binding->value);
-   } else {
-#define STYLE_CLASS "StyleKey.Style1.Style2.Style3.SubstyleKey.Substyle.FontfamilyKey"
-      family=get_string_resource(desc,STYLE_CLASS);
-#undef STYLE_CLASS
-      free(desc);
-      if (family==NULL)
-        pointer_dictionary_Delete(family_dict,binding);
-      else
-        binding->value=(pointer) family;
-      return(family);  /* If resource returns NULL, return NULL also */
-   }
-}
-
-static char *
-get_specific_fontname(char *family,
-                     int size,
-                     int face)
-{
-   char *desc;
-   pointer_dictionary_binding *binding;
-   int exists;
-   char *fontname;
-
-   desc = string_Concat("fontfamily.",family);
-   desc = string_Concat2(desc, ".");
-   desc = string_Concat2(desc, size_to_string[size]);
-   desc = string_Concat2(desc, ".");
-   desc = string_Concat2(desc, face_to_string[face]);
-
-   if (!fontname_dict)
-      fontname_dict = pointer_dictionary_Create(37);
-   binding = pointer_dictionary_Define(fontname_dict,desc,&exists);
-
-   if (exists) {
-      free(desc);
-      return((string) binding->value);
-   } else {
-#define FAMILY_CLASS "FontfamilyKey.Fontfamily.Size.Face"
-      fontname=get_string_resource(desc,FAMILY_CLASS);
-      free(desc);
-      if (fontname==NULL)
-        pointer_dictionary_Delete(fontname_dict,binding);
-      else
-        binding->value=(pointer) fontname;
-      return(fontname);  /* If resource returns NULL, return NULL also */
-   }
-}
-
-/* fast function to convert Font to hex.  Return value
- * is on the heap and must be freed.  I'm cheating in
- * that I know that Font us really an unsigned long. */
-
-static char hexdigits[] = {"0123456789ABCDEF"};
-static char *
-Font_to_hex(Font num)
-{
-   char *temp;
-   int i;
-
-   temp=(char *) malloc((sizeof(Font)<<1)+2);
-
-   for (i=0;i<((sizeof(Font)<<1)+1);i++)
-      temp[i] = hexdigits[(num>>(i*4))&0x0f];
-   temp[i] = '\0';
-
-   return(temp);
-}
-
-void
-add_fid(XFontStruct *font)
-{
-   
-   char *fidstr;
-   pointer_dictionary_binding *binding;
-   int exists;
-
-   if (!fidst_dict)
-      fidst_dict = pointer_dictionary_Create(37);
-   fidstr=Font_to_hex(font->fid);
-   binding = pointer_dictionary_Define(fidst_dict,fidstr,&exists);
-   free(fidstr);
-
-   if (!exists)
-      binding->value=(pointer) font;
-}
-
-/* requires that the font already be cached. */
-XFontStruct *
-get_fontst_from_fid(Font fid)
-{
-   char *fidstr;
-   pointer_dictionary_binding *binding;
-   int exists;
-
-   fidstr=Font_to_hex(fid);
-
-   binding = pointer_dictionary_Define(fidst_dict,fidstr,&exists);
-   free(fidstr);
-#ifdef DEBUG
-   if (exists) {
-      return((XFontStruct *) binding->value);
-   } else {
-      printf("Font fid=0x%s not cached.  Oops.\n",fidstr);
-      abort();
-   }
-#else
-   return((XFontStruct *) binding->value);
-#endif
-}
-
-static XFontStruct *
-get_fontst(Display *dpy,
-          char *fontname)
-{
-   pointer_dictionary_binding *binding;
-   int exists;
-   XFontStruct *fontst;
-
-   if (!fontst_dict)
-      fontst_dict = pointer_dictionary_Create(37);
-   binding = pointer_dictionary_Define(fontst_dict,fontname,&exists);
-
-   if (exists) {
-      return((XFontStruct *) binding->value);
-   } else {
-      fontst=XLoadQueryFont(dpy,fontname);
-      if (fontst==NULL) {
-        pointer_dictionary_Delete(fontst_dict,binding);
-      } else {
-        binding->value=(pointer) fontst;
-        add_fid(fontst);
-      } return(fontst);  /* If resource returns NULL, return NULL also */
-   }
-}
-
-static char *
-get_fontname(char *family,
-            int size,
-            int face)
-{
-   char *fontname;
-
-   if (!(fontname=get_specific_fontname(family,size,face)))
-    if (!(fontname=get_specific_fontname(family,size,ROMAN_FACE)))
-     if (!(fontname=get_specific_fontname(family,MEDIUM_SIZE,face)))
-      fontname=get_specific_fontname(family,MEDIUM_SIZE,ROMAN_FACE);
-   return(fontname);
-}
-
-static XFontStruct *
-complete_get_fontst(Display *dpy,
-                   string style,
-                   string substyle,
-                   int size,
-                   int face)
-{
-   char *family,*fontname;
-   XFontStruct *fontst;
-
-   if ((family=get_family(style,substyle)))
-     if ((fontname=get_fontname(family,size,face)))
-       if ((fontst=get_fontst(dpy,fontname)))
-        return(fontst);
-   /* If any part fails, */
-   return(NULL);
-}
-
-/*
- *    XFontStruct *get_font(string style, substyle; int size, face)
- *         Requires: size is one of SMALL_SIZE, MEDIUM_SIZE, LARGE_SIZE and
- *                   face is one of ROMAN_FACE, BOLD_FACE, ITALIC_FACE,
- *                   BOLDITALIC_FACE.
- *          Effects: unknown
- */
-
-XFontStruct *
-get_font(Display *dpy,
-        string style,
-        string substyle,
-        int size,
-        int face)
-{
-   char *family,*fontname;
-   XFontStruct *fontst;
-
-   if (size == SPECIAL_SIZE) {
-      /* attempt to process @font explicitly */
-      if ((fontst = get_fontst(dpy, substyle)))
-       return(fontst);
-   } else {
-      if ((family = get_family(style, substyle))) {
-        if ((fontname = get_fontname(family, size,face)))
-          if ((fontst = get_fontst(dpy, fontname)))
-            return(fontst);
-      } else {
-        if ((fontname = get_fontname(substyle, size, face)))
-          if ((fontst = get_fontst(dpy, fontname)))
-            return(fontst);
-      }
-
-      /* At this point, the no-failure case didn't happen, and the case
-      of substyle being the fontfamily didn't happen, either. */
-
-      fontst=NULL;
-      if (!(fontst = complete_get_fontst(dpy,style,"text",size,face)))
-       if (!(fontst = complete_get_fontst(dpy,"default",substyle,size,face)))
-         if (!(fontst = complete_get_fontst(dpy,"default","text",size,face)))
-           if ((fontname = get_fontname("default",size,face)))
-             fontst = get_fontst(dpy,fontname);
-      if (fontst) return(fontst);
-   }
-
-   /* If all else fails, try fixed */
-
-   if ((fontst=get_fontst(dpy,"fixed"))) return(fontst);
-
-   /* No fonts available.  Die. */
-
-   ERROR("Unable to open font \"fixed\".  Aborting...");
-#ifdef DEBUG
-   abort();
-#else
-   exit(1);
-#endif
-}
-
-#endif /* X_DISPLAY_MISSING */
-
diff --git a/zephyr/zwgc/X_fonts.h b/zephyr/zwgc/X_fonts.h
deleted file mode 100644 (file)
index a459f01..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef x_fonts_MODULE
-#define x_fonts_MODULE
-
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: X_fonts.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#include "X_driver.h"
-
-#define  SPECIAL_FACE     -1
-#define  ROMAN_FACE        0
-#define  BOLD_FACE         1
-#define  ITALIC_FACE       2
-#define  BOLD_ITALIC_FACE  3
-
-#define  SPECIAL_SIZE     -1
-#define  SMALL_SIZE        0
-#define  MEDIUM_SIZE       1
-#define  LARGE_SIZE        2
-
-/*
- *    XFontStruct *get_font(string family; int size, face)
- *         Requires: size is one of SMALL_SIZE, MEDIUM_SIZE, LARGE_SIZE and
- *                   face is one of ROMAN_FACE, BOLD_FACE, ITALIC_FACE,
- *                   BOLDITALIC_FACE.
- *         Effects: Looks up the font specified by the above in the
- *                  X resources.  If that font is not specified by in
- *                  the X resources or it can't be loaded, the font
- *                  specified by default.medium.roman is used. <<<>>>
- */
-
-extern XFontStruct *get_font(Display *, string, string, int, int);
-extern XFontStruct *get_fontst_from_fid(Font);
-
-#endif
diff --git a/zephyr/zwgc/X_gram.c b/zephyr/zwgc/X_gram.c
deleted file mode 100644 (file)
index 3820c0c..0000000
+++ /dev/null
@@ -1,551 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: X_gram.c 2336 2009-03-22 18:59:56Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_X_gram_c[] = "$Id: X_gram.c 2336 2009-03-22 18:59:56Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef X_DISPLAY_MISSING
-
-#include <zephyr/zephyr.h>
-#include "X_gram.h"
-#include "xmark.h"
-#include <X11/Xutil.h>
-#include <X11/cursorfont.h>
-#include <X11/Xatom.h>
-#include "zwgc.h"
-#include "X_driver.h"
-#include "X_fonts.h"
-#include "error.h"
-#include "new_string.h"
-#include "xrevstack.h"
-#include "xerror.h"
-#include "xselect.h"
-#ifdef CMU_ZWGCPLUS
-#include "plus.h"
-#endif
-
-extern XContext desc_context;
-extern char *app_instance;
-
-/*
- *
- */
-
-int internal_border_width = 2;
-
-unsigned long default_fgcolor;
-unsigned long default_bgcolor;
-unsigned long default_bordercolor;
-long ttl = 0;
-static int reset_saver;
-static int border_width = 1;
-static int cursor_code = XC_sailboat;
-static int set_transient;
-static int enable_delete;
-static char *title_name,*icon_name;
-static Cursor cursor;
-static Window group_leader; /* In order to have transient windows,
-                            * I need a top-level window to always exist
-                            */
-static XClassHint classhint;
-static XSetWindowAttributes xattributes;
-static unsigned long xattributes_mask;
-static int set_all_desktops = True;
-static Atom net_wm_desktop = None;
-static Atom net_wm_window_type = None;
-static Atom net_wm_window_type_utility = None;
-
-/* ICCCM note:
- *
- * the following properties must be set on all top-level windows:
- *
- * WM_NAME                  XStoreName(dpy,w,name);
- * WM_ICON_NAME             XSetIconName(dpy,w,name);
- * WM_NORMAL_HINTS          XSetNormalHints(dpy,w,sizehints);
- * WM_HINTS                 XSetWMHints(dpy,w,wmhints);
- * WM_CLASS                 XSetClassHint(dpy,w,classhint);
- *
- * and for individual zgrams:
- *
- * WM_TRANSIENT_FOR         XSetTransientForHint(dpy,w,main_window);
- * WM_PROTOCOLS                    XSetWMProtocols(dpy,w,protocols,cnt);
- */
-
-/* set all properties defined in ICCCM.  If main_window == 0,
- * per-zgram initialization is not done.
- */
-
-/*ARGSUSED*/
-void
-x_set_icccm_hints(Display *dpy,
-                 Window w,
-                 char *name,
-                 char *icon_name,
-                 XSizeHints *psizehints,
-                 XWMHints *pwmhints,
-                 Window main_window)
-{
-   XStoreName(dpy,w,name);
-   XSetIconName(dpy,w,icon_name);
-   XSetWMNormalHints(dpy,w,psizehints);
-   XSetWMHints(dpy,w,pwmhints);
-   XSetClassHint(dpy,w,&classhint);
-   /* in order for some wm's to iconify, the window shouldn't be transient.
-      e.g. Motif wm */
-   if (main_window != None) {
-      if (set_transient)
-         XSetTransientForHint(dpy,w,main_window);
-   }
-   if (enable_delete)
-      XSetWMProtocols(dpy,w,&XA_WM_DELETE_WINDOW,1);
-}
-
-void
-x_gram_init(Display *dpy)
-{
-    char *temp;
-    XSizeHints sizehints;
-    XWMHints wmhints;
-    unsigned long rv,tc;
-
-    default_fgcolor = BlackPixelOfScreen(DefaultScreenOfDisplay(dpy));
-    default_bgcolor = WhitePixelOfScreen(DefaultScreenOfDisplay(dpy));
-    rv = get_bool_resource("reverseVideo", "ReverseVideo", 0);
-    if (rv) {
-       tc = default_fgcolor;
-       default_fgcolor = default_bgcolor;
-       default_bgcolor = tc;
-    }
-    temp = get_string_resource("foreground", "Foreground");
-    if (temp)
-      default_fgcolor = x_string_to_color(temp, default_fgcolor);
-    temp = get_string_resource("background", "Background");
-    if (temp)
-      default_bgcolor = x_string_to_color(temp, default_bgcolor);
-    default_bordercolor = default_fgcolor;
-    temp = get_string_resource("borderColor", "BorderColor");
-    if (temp)
-      default_bordercolor = x_string_to_color(temp, default_bordercolor);
-
-    temp = get_string_resource("minTimeToLive", "MinTimeToLive");
-    if (temp && atoi(temp)>=0)
-       ttl = atoi(temp);
-
-#ifdef CMU_ZWGCPLUS
-    if (ttl == 0) {
-      temp = get_string_resource("lifespan", "LifeSpan");
-      if (temp && atoi(temp)>=0)
-        ttl = atoi(temp);
-    }
-
-    get_full_names = get_bool_resource("getFullNames", "GetFullNames", 0);
-#endif
-
-    reverse_stack = get_bool_resource("reverseStack", "ReverseStack", 0);
-    reset_saver =  get_bool_resource("resetSaver", "ResetSaver", 1);
-    /* The default here should be 1, but mwm sucks */
-    set_transient = get_bool_resource("transient", "Transient", 0);
-    enable_delete = get_bool_resource("enableDelete", "EnableDelete", 1);
-
-    temp = get_string_resource("borderWidth", "BorderWidth");
-    /* <<<>>> */
-    if (temp && atoi(temp)>=0)
-      border_width = atoi(temp);
-
-    temp = get_string_resource("internalBorder", "InternalBorder");
-    /* <<<>>> */
-    if (temp && atoi(temp)>=0)
-      internal_border_width = atoi(temp);
-
-    temp = get_string_resource("cursorCode", "CursorCode");
-    /* <<<>>> */
-    if (temp && atoi(temp))
-      cursor_code = atoi(temp);
-
-    cursor = XCreateFontCursor(dpy, cursor_code);
-    if (!cursor)
-      cursor = XCreateFontCursor(dpy, XC_sailboat);
-
-    temp = get_string_resource("pointerColor", "Foreground");
-    if (temp) {
-       char *temp2;
-       XColor cursor_fore, cursor_back;
-       /* XXX need to do our own parsing here, since the RecolorCursor
-          routine requires an XColor, not an unsigned long (pixel) */
-       if (!(temp2 = get_string_resource("background","Background"))) {
-           if (default_bgcolor == WhitePixelOfScreen(DefaultScreenOfDisplay(dpy)))
-               temp2 = "white";
-           else
-               temp2 = "black";
-       }
-       if (XParseColor(dpy,
-                       DefaultColormapOfScreen(DefaultScreenOfDisplay(dpy)),
-                       temp, &cursor_fore) &&
-           XParseColor(dpy,
-                       DefaultColormapOfScreen(DefaultScreenOfDisplay(dpy)),
-                       temp2, &cursor_back)) {
-             XRecolorCursor(dpy, cursor, &cursor_fore, &cursor_back);
-         }
-    }
-    if (!(title_name=get_string_resource("title","Title")))
-      if (!(title_name=get_string_resource("name","Name")))
-       title_name=app_instance;
-
-    if (!(icon_name=get_string_resource("iconName","IconName")))
-      if (!(icon_name=get_string_resource("name","Name")))
-       icon_name=app_instance;
-
-    if (!(temp=get_string_resource("name","Name")))
-      if (!(temp=(char *) getenv("RESOURCE_NAME")))
-       temp=app_instance;
-    classhint.res_name=string_Copy(temp);
-    classhint.res_class="Zwgc";
-
-    if (set_transient) {
-       group_leader=XCreateSimpleWindow(dpy,DefaultRootWindow(dpy),0,0,100,100,
-                                       0,default_bordercolor,default_bgcolor);
-       sizehints.x = 0;
-       sizehints.y = 0;
-       sizehints.width = 100;
-       sizehints.height = 100;
-       sizehints.flags = PPosition | PSize;
-
-       wmhints.input = False;
-       wmhints.initial_state = DontCareState;
-       wmhints.flags = InputHint | StateHint;
-
-       x_set_icccm_hints(dpy,group_leader,"ZwgcGroup","ZwgcGroup",&sizehints,
-                        &wmhints,0);
-    }
-    xattributes.border_pixel = default_bordercolor;
-    xattributes.cursor = cursor;
-    xattributes.event_mask = (ExposureMask|ButtonReleaseMask|ButtonPressMask
-                             |LeaveWindowMask|Button1MotionMask
-#ifdef CMU_ZWGCPLUS
-                             |KeyPressMask
-#endif
-                             |Button3MotionMask|StructureNotifyMask);
-    xattributes_mask = (CWBackPixel|CWBorderPixel|CWEventMask|CWCursor);
-
-    set_all_desktops = get_bool_resource("allDesktops", "AllDesktops", True);
-    net_wm_desktop = XInternAtom(dpy, "_NET_WM_DESKTOP", False);
-    net_wm_window_type = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False);
-    net_wm_window_type_utility = XInternAtom(dpy,
-                                            "_NET_WM_WINDOW_TYPE_UTILITY",
-                                            False);
-
-    temp = get_string_resource ("backingStore", "BackingStore");
-    if (!temp)
-       return;
-    xattributes_mask |= CWBackingStore;
-    if (!strcasecmp (temp, "notuseful"))
-       xattributes.backing_store = NotUseful;
-    else if (!strcasecmp (temp, "whenmapped"))
-       xattributes.backing_store = WhenMapped;
-    else if (!strcasecmp (temp, "always"))
-       xattributes.backing_store = Always;
-    else if (!strcasecmp (temp, "default"))
-       xattributes_mask &= ~CWBackingStore;
-    else {
-       switch (get_bool_resource ("backingStore", "BackingStore", -1)) {
-       case 0:
-           xattributes.backing_store = NotUseful;
-           break;
-       case 1:
-           xattributes.backing_store = WhenMapped;
-           break;
-       case -1:
-           fprintf (stderr,
-                "zwgc: Cannot interpret backing-store resource value `%s'.\n",
-                    temp);
-           xattributes_mask &= ~CWBackingStore;
-           break;
-       }
-    }
-}
-
-int
-x_calc_gravity(int xalign,
-              int yalign)
-{
-    if (yalign > 0) {                                  /* North */
-       return (xalign > 0)  ? NorthWestGravity
-            : (xalign == 0) ? NorthGravity
-            :                 NorthEastGravity;
-    } else if (yalign == 0) {                          /* Center */
-       return (xalign > 0)  ? WestGravity
-            : (xalign == 0) ? CenterGravity
-            :                 EastGravity;
-    } else {                                           /* South */
-       return (xalign > 0)  ? SouthWestGravity
-            : (xalign == 0) ? SouthGravity
-            :                 SouthEastGravity;
-    }
-}
-
-void
-x_gram_create(Display *dpy,
-             x_gram *gram,
-             int xalign,
-             int yalign,
-             int xpos,
-             int ypos,
-             int xsize,
-             int ysize,
-             int beepcount)
-{
-    Window w;
-    XSizeHints sizehints;
-    XWMHints wmhints;
-    XSetWindowAttributes attributes;
-    unsigned long all_desktops = 0xFFFFFFFF;
-
-    /*
-     * Adjust xpos, ypos based on the alignments xalign, yalign and the sizes:
-     */
-    if (xalign<0)
-      xpos = WidthOfScreen(DefaultScreenOfDisplay(dpy)) - xpos - xsize
-       - 2*border_width;
-    else if (xalign == 0)
-      xpos = ((WidthOfScreen(DefaultScreenOfDisplay(dpy)) - xsize
-              - 2*border_width)>>1) + xpos;
-
-    if (yalign<0)
-      ypos = HeightOfScreen(DefaultScreenOfDisplay(dpy)) - ypos - ysize
-       - 2*border_width;
-    else if (yalign == 0)
-      ypos = ((HeightOfScreen(DefaultScreenOfDisplay(dpy)) - ysize
-              - 2*border_width)>>1) + ypos;
-
-    /*
-     * Create the window:
-     */
-    attributes = xattributes;
-    attributes.background_pixel = gram->bgcolor;
-    
-    gram->w = w = XCreateWindow (dpy, DefaultRootWindow (dpy), xpos, ypos,
-                                xsize, ysize, border_width, 0,
-                                CopyFromParent, CopyFromParent,
-                                xattributes_mask, &attributes);
-    
-    sizehints.x = xpos;
-    sizehints.y = ypos;
-    sizehints.width = xsize;
-    sizehints.height = ysize;
-    sizehints.win_gravity = x_calc_gravity(xalign, yalign);
-    sizehints.flags = USPosition|USSize|PWinGravity;
-
-    wmhints.input = False;
-    wmhints.initial_state = NormalState;
-    if (set_transient) {
-       wmhints.window_group = group_leader;
-       wmhints.flags = InputHint | StateHint | WindowGroupHint;
-
-       x_set_icccm_hints(dpy,w,title_name,icon_name,&sizehints,&wmhints,
-                        group_leader);
-    } else {
-       wmhints.flags = InputHint | StateHint;
-
-       x_set_icccm_hints(dpy,w,title_name,icon_name,&sizehints,&wmhints,0);
-    }
-       
-    if (net_wm_window_type != None && net_wm_window_type_utility != None)
-       XChangeProperty(dpy, w, net_wm_window_type, XA_ATOM, 32,
-                       PropModeReplace,
-                       (unsigned char *) &net_wm_window_type_utility, 1);
-    if (set_all_desktops && net_wm_desktop != None)
-       XChangeProperty(dpy, w, net_wm_desktop, XA_CARDINAL, 32,
-                       PropModeReplace, (unsigned char *) &all_desktops, 1);
-
-    XSaveContext(dpy, w, desc_context, (caddr_t)gram);
-
-    gram->can_die.tv_sec = 0;
-
-    XMapWindow(dpy, w);
-
-    if (beepcount)
-       XBell(dpy, 0);
-
-    xerror_happened = 0;
-    if (reverse_stack && bottom_gram) {
-       XWindowChanges winchanges;
-       
-       winchanges.sibling=bottom_gram->w;
-       winchanges.stack_mode=Below;
-       /* Metacity may use border_width even if it's not specified in
-       * the value mask, so we must initialize it.  See:
-       * http://bugzilla.gnome.org/show_bug.cgi?id=305257 */
-       winchanges.border_width=border_width;
-
-       begin_xerror_trap (dpy);
-       XReconfigureWMWindow (dpy, w, DefaultScreen (dpy),
-                            CWSibling|CWStackMode, &winchanges);
-       end_xerror_trap (dpy);
-       if (xerror_happened) {
-          /* The event didn't go.  Print an error message, and continue.  */
-          ERROR ("Error configuring window to the bottom of the stack.\n");
-       }
-    }
-    /* we always need to keep a linked list of windows */
-    add_to_bottom(gram);
-    if (xerror_happened)
-       pull_to_top(gram);
-
-    if (reset_saver)
-       XResetScreenSaver(dpy);
-
-    XFlush(dpy);
-    /* Because the flushing/syncing/etc with the error trapping can cause
-       events to be read into the Xlib queue, we need to go through the queue
-       here before exiting so that any pending events get processed.
-       */
-    x_get_input(dpy);
-}
-
-void
-x_gram_draw(Display *dpy,
-           Window w,
-           x_gram *gram,
-           Region region)
-{
-   int i;
-   GC gc;
-   XGCValues gcvals;
-   xblock *xb;
-   XTextItem text;
-   int startblock, endblock, startpixel = 0, endpixel = 0;
-   
-#define SetFG(fg) \
-   gcvals.foreground=fg; \
-   XChangeGC(dpy,gc,GCForeground,&gcvals)
-
-   gc = XCreateGC(dpy, w, 0, &gcvals);
-   XSetRegion(dpy,gc,region);
-   if ((markgram == gram) && (STARTBLOCK != -1) && (ENDBLOCK != -1)) {
-      if (xmarkSecond() == XMARK_END_BOUND) {
-        startblock=STARTBLOCK;
-        endblock=ENDBLOCK;
-        startpixel=STARTPIXEL;
-        endpixel=ENDPIXEL;
-      } else {
-        startblock=ENDBLOCK;
-        endblock=STARTBLOCK;
-        startpixel=ENDPIXEL;
-        endpixel=STARTPIXEL;
-      }
-   } else {
-      startblock = -1;
-      endblock = -1;
-   }
-
-   for (i=0,xb=gram->blocks ; i<gram->numblocks ; i++,xb++) {
-      if (XRectInRegion(region,xb->x1,xb->y1,xb->x2-xb->x1,
-                       xb->y2-xb->y1) != RectangleOut) {
-        if (i==startblock) {
-           if (i==endblock) {
-              SetFG(gram->bgcolor);
-              XFillRectangle(dpy,w,gc,xb->x1,xb->y1,startpixel,
-                             (xb->y2-xb->y1));
-              SetFG(xb->fgcolor);
-              XFillRectangle(dpy,w,gc,xb->x1+startpixel,xb->y1,
-                             (endpixel-startpixel),(xb->y2-xb->y1));
-              SetFG(gram->bgcolor);
-              XFillRectangle(dpy,w,gc,xb->x1+endpixel,xb->y1,
-                             (xb->x2-xb->x1-endpixel),(xb->y2-xb->y1));
-           } else {
-              SetFG(gram->bgcolor);
-              XFillRectangle(dpy,w,gc,xb->x1,xb->y1,startpixel,
-                             (xb->y2-xb->y1));
-              SetFG(xb->fgcolor);
-              XFillRectangle(dpy,w,gc,xb->x1+startpixel,xb->y1,
-                             (xb->x2-xb->x1-startpixel),(xb->y2-xb->y1));
-           }
-        } else if (i==endblock) {
-           SetFG(xb->fgcolor);
-           XFillRectangle(dpy,w,gc,xb->x1,xb->y1,endpixel,
-                          (xb->y2-xb->y1));
-           SetFG(gram->bgcolor);
-           XFillRectangle(dpy,w,gc,xb->x1+endpixel,xb->y1,
-                          (xb->x2-xb->x1-endpixel),(xb->y2-xb->y1));
-        } else {
-           if ((startblock < i) && (i < endblock)) {
-              SetFG(xb->fgcolor);
-           } else {
-              SetFG(gram->bgcolor);
-           }
-           XFillRectangle(dpy,w,gc,xb->x1,xb->y1,(xb->x2-xb->x1),
-                          (xb->y2-xb->y1));
-        }
-      }
-   }
-
-   gcvals.function=GXxor;
-   XChangeGC(dpy,gc,GCFunction,&gcvals);
-
-   for (i=0,xb=gram->blocks ; i<gram->numblocks ; i++,xb++) {
-      if (XRectInRegion(region,xb->x1,xb->y1,xb->x2-xb->x1,
-                       xb->y2-xb->y1) != RectangleOut) {
-        SetFG(gram->bgcolor^xb->fgcolor);
-        text.chars=gram->text+xb->strindex;
-        text.nchars=xb->strlen;
-        text.delta=0;
-        text.font=xb->fid;
-        XDrawText(dpy,w,gc,xb->x,xb->y,&text,1);
-     }
-   }
-
-   XFreeGC(dpy,gc);
-}
-
-void
-x_gram_expose(Display *dpy,
-             Window w,
-             x_gram *gram,
-             XExposeEvent *event)
-{
-   static Region region;
-   static int partregion;
-   XRectangle rect;
-
-   rect.x = (short) event->x;
-   rect.y = (short) event->y;
-   rect.width = (unsigned short) event->width;
-   rect.height = (unsigned short) event->height;
-
-#ifdef MARK_DEBUG
-   printf("----- xeventExpose:\nx=%d y=%d w=%d h=%d\n-----",
-         event->x,event->y,event->width,event->height);
-#endif
-
-   if (! partregion) {
-      region=XCreateRegion();
-      partregion = 1;
-   }
-
-   if (rect.width && rect.height) XUnionRectWithRegion(&rect,region,region);
-
-   if (event->count == 0) {
-      x_gram_draw(dpy,w,gram,region);
-      partregion = 0;
-      XDestroyRegion(region);
-   }
-}
-
-#endif /* X_DISPLAY_MISSING */
-
diff --git a/zephyr/zwgc/X_gram.h b/zephyr/zwgc/X_gram.h
deleted file mode 100644 (file)
index b94d587..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: X_gram.h 2336 2009-03-22 18:59:56Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef x_gram_TYPE
-#define x_gram_TYPE
-
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <sys/time.h>
-
-#include "formatter.h"
-
-typedef struct _xblock {
-   unsigned long fgcolor;
-   Font fid;
-   int x,y;
-   int x1,y1,x2,y2; /* bounds of block.  used for cut and paste. */
-   int strindex;
-   int strlen;
-} xblock;
-
-typedef struct _x_gram {
-   unsigned long bgcolor;
-   int numblocks;
-   xblock *blocks;
-   char *text;
-   struct _x_gram *below,*above;
-   Window w;
-#ifdef CMU_ZWGCPLUS
-   ZNotice_t *notice;
-#endif
-   struct timeval can_die;
-} x_gram;
-
-typedef struct _xauxblock {
-   int align;
-   XFontStruct *font;
-   char *str;
-   int len;
-   int width;
-} xauxblock;
-
-typedef struct _xmode {
-   int bold;
-   int italic;
-   int size;
-   int align;
-   int expcolor;
-   unsigned long color;
-   char *substyle;
-   char *font;
-} xmode;
-
-typedef struct _xlinedesc {
-   int startblock;
-   int numblock;
-   int lsize;
-   int csize;
-   int rsize;
-   int ascent;
-   int descent;
-} xlinedesc;
-
-/* alignment values: */
-#define LEFTALIGN   0
-#define CENTERALIGN 1
-#define RIGHTALIGN  2
-
-extern void x_gram_init(Display *);
-extern void x_gram_create(Display *, x_gram *, int, int, int, int, int, int, int);
-extern void x_gram_expose(Display *, Window, x_gram *, XExposeEvent *);
-extern void xshow(Display *, desctype *, int, int);
-extern void xcut(Display *, XEvent *, XContext);
-extern void x_get_input(Display *);
-extern void xshowinit(void);
-
-#endif
diff --git a/zephyr/zwgc/browser.c b/zephyr/zwgc/browser.c
deleted file mode 100644 (file)
index 0cb0432..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: browser.c 2091 2007-12-20 01:17:23Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#if (!defined(lint) && !defined(SABER))
-static char rcsid_browser_c[] = "$Id: browser.c 2091 2007-12-20 01:17:23Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-#include <sysdep.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include "zwgc.h"
-
-static int browser_fd;
-struct sockaddr_un sun;
-
-int BOpenSocket()
-{
-   int fd,len;
-   char *temp;
-
-   if ((fd=socket(PF_UNIX,SOCK_STREAM,0)) == -1)
-      return(-1);
-
-   sun.sun_family=AF_UNIX;
-   if (temp=getenv("WGSOCK"))
-      strncpy(sun.sunpath,temp,sizeof(sun.sunpath));
-   else
-      sprintf(sun.sun_path,"/tmp/.zwgc.%d",getuid());
-   if (bind(fd,(struct sockaddr *) &sun,
-           (len=strlen(sun.sunpath)) > sizeof(sun.sunpath)?
-           sizeof(sun.sunpath):len) == -1) {
-      close(fd);
-      return(-1);
-   }
-
-   if (listen(fd,5) == -1) {
-      unlink(sun.sunpath);
-      close(fd);
-      return(-1);
-   }
-
-   return(fd);
-}
diff --git a/zephyr/zwgc/browser.h b/zephyr/zwgc/browser.h
deleted file mode 100644 (file)
index 176ad48..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: browser.h 2091 2007-12-20 01:17:23Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#define BROWSER_NEW_REQ            1
-#define BROWSER_NEW_REQ_RESP       2
-#define BROWSER_ZPACKET            3
-#define BROWSER_ZPACKET_RESP       4
-#define BROWSER_TEXT               5
-#define BROWSER_WINDOW_ID          6
-#define BROWSER_VAR_REQ            7
-#define BROWSER_VAR_REQ_RESP       8
-
-
-#define BROWSER_TYPE_OVERRIDE      11
-#define BROWSER_TYPE_DRIVER        12
-#define BROWSER_TYPE_WM            13
-#define BROWSER_TYPE_SIMPLE        14
-
-#define BROWSER_ACK                21
-#define BROWSER_NAK                22
-
-#define BROWSER_KEEP               31
-#define BROWSER_LOSE               32
-
-extern int ZBOpenConnection();
-extern void ZBCloseConnection( /* int fd */ );
-extern char *var_get_variable( /* char *varname */ );
diff --git a/zephyr/zwgc/buffer.c b/zephyr/zwgc/buffer.c
deleted file mode 100644 (file)
index d8dbf15..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: buffer.c 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_buffer_c[] = "$Id: buffer.c 2133 2008-01-21 03:11:44Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-#include "new_memory.h"
-#include "buffer.h"
-
-static char *buffer = 0;
-
-string
-buffer_to_string(void)
-{
-    return(buffer);
-}
-
-void
-clear_buffer(void)
-{
-    if (buffer)
-      free(buffer);
-
-    buffer = string_Copy("");
-}
-
-void
-append_buffer(char *str)
-{
-    buffer = string_Concat2(buffer, str);
-}
diff --git a/zephyr/zwgc/buffer.h b/zephyr/zwgc/buffer.h
deleted file mode 100644 (file)
index e15c4e6..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: buffer.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef buffer_MODULE
-#define buffer_MODULE
-
-#include "new_string.h"
-
-extern string buffer_to_string(void);
-extern void clear_buffer(void);
-extern void append_buffer(char *);
-
-#endif
diff --git a/zephyr/zwgc/character_class.c b/zephyr/zwgc/character_class.c
deleted file mode 100644 (file)
index 7c8eb34..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: character_class.c 2313 2009-03-20 05:39:22Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_character_class_c[] = "$Id: character_class.c 2313 2009-03-20 05:39:22Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-#include <zephyr/zephyr.h>
-#include "character_class.h"
-
-/* 
- * It may look like we are passing the cache by value, but since it's
- * really an array we are passing by reference.  C strikes again....
- */
-
-static character_class cache;
-
-/* character_class */
-char *
-string_to_character_class(string str)
-{
-    int i, l;
-
-    (void) memset(cache, 0, sizeof(cache));
-
-    l = strlen(str);
-
-    for (i = 0; i < l; i++)
-       cache[(unsigned char)str[i]] = 1;
-
-    return(cache);
-}
diff --git a/zephyr/zwgc/character_class.h b/zephyr/zwgc/character_class.h
deleted file mode 100644 (file)
index 487e329..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: character_class.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef character_class_TYPE
-#define character_class_TYPE
-
-#include "new_string.h"
-
-#define  NUMBER_OF_CHARACTERS   256
-
-typedef char character_class[NUMBER_OF_CHARACTERS];
-
-extern /* character_class */ char * string_to_character_class(string);
-
-#endif
diff --git a/zephyr/zwgc/dictionary.c b/zephyr/zwgc/dictionary.c
deleted file mode 100644 (file)
index 4768b96..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: dictionary.c 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_dictionary_c[] = "$Id: dictionary.c 2133 2008-01-21 03:11:44Z kcr $";
-#endif
-
-/*
- * dictionary - a module implementing a generic dictionary.  That is,
- *              any type can be used for the values that keys are bound to.
- *              Keys are always strings.
- *
- * Overview:
- *
- *        A dictionary is a set of bindings which bind values of some
- *    type (this type is the generic parameter of the dictionary) to
- *    strings.  At most one value can be bound to any one string.
- *    The value that a string is bound to can be changed later.
- *    Bindings can also be deleted later.  It is also possible to
- *    enumerate all of the bindings in a dictionary.  Dictionarys
- *    are heap based and must be created & destroyed accordingly.
- *
- *    Note: This module assumes that malloc NEVER returns 0 for reasonable
- *          requests.  It is the users responsibility to either ensure that
- *          this happens or supply a version of malloc with error
- *          handling.
- *
- *    Dictionarys are mutable.
- *
- * Implementation:
- *
- *        A standard chaining hash table is used to implement dictionarys.
- *    Each dictionary has an associated size (# of slots), allowing
- *    different size dictionaries as needed.
- */
-
-#include "TYPE_T_dictionary.h"
-#include "new_string.h"
-#include "new_memory.h"
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-/*
- *    TYPE_T_dictionary TYPE_T_dictionary_Create(int size):
- *        Requires: size > 0
- *        Effects: Returns a new empty dictionary containing no bindings.
- *                 The returned dictionary must be destroyed using
- *                 TYPE_T_dictionary_Destroy.  Size is a time vs space
- *                 parameter.  For this implementation, space used is
- *                 proportional to size and time used is proportional
- *                 to number of bindings divided by size.  It is preferable
- *                 that size is a prime number.
- */
-
-TYPE_T_dictionary
-TYPE_T_dictionary_Create(int size)
-{
-    int i;
-    TYPE_T_dictionary result;
-
-    result = (TYPE_T_dictionary)malloc(sizeof(struct _TYPE_T_dictionary));
-    result->size = size;
-    result->slots = (TYPE_T_dictionary_binding **)malloc(
-                    size*sizeof(TYPE_T_dictionary_binding *));
-
-    for (i=0; i<size; i++)
-      result->slots[i] = NULL;
-
-    return(result);
-}
-
-/*
- *    void TYPE_T_dictionary_Destroy(TYPE_T_dictionary d):
- *        Requires: d is a non-destroyed TYPE_T_dictionary
- *        Modifies: d
- *        Effects: Destroys dictionary d freeing up the space it consumes.
- *                 Dictionary d should never be referenced again.  Note that
- *                 free is NOT called on the values of the bindings.  If
- *                 this is needed, the client must do this first using
- *                 TYPE_T_dictionary_Enumerate.
- */
-
-void
-TYPE_T_dictionary_Destroy(TYPE_T_dictionary d)
-{
-    int i;
-    TYPE_T_dictionary_binding *binding_ptr, *new_binding_ptr;
-
-    for (i=0; i<d->size; i++) {
-       binding_ptr = d->slots[i];
-       while (binding_ptr) {
-           new_binding_ptr = binding_ptr->next;
-           free(binding_ptr->key);
-           free(binding_ptr);
-           binding_ptr = new_binding_ptr;
-       }
-    }
-    free(d->slots);
-    free(d);
-}
-
-/*
- *    void TYPE_T_dictionary_Enumerate(TYPE_T_dictionary d; void (*proc)()):
- *        Requires: proc is a void procedure taking 1 argument, a
- *                  TYPE_T_dictionary_binding pointer, which does not
- *                  make any calls using dictionary d.
- *        Effects: Calls proc once with each binding in dictionary d.
- *                 Order of bindings passed is undefined.  Note that
- *                 only the value field of the binding should be considered
- *                 writable by proc.
- */
-
-void TYPE_T_dictionary_Enumerate(TYPE_T_dictionary d,
-                                void (*proc)(TYPE_T_dictionary_binding *))
-{
-    int i;
-    TYPE_T_dictionary_binding *binding_ptr;
-
-    for (i=0; i<d->size; i++) {
-       binding_ptr = d->slots[i];
-       while (binding_ptr) {
-           proc(binding_ptr);
-           binding_ptr = binding_ptr->next;
-       }
-    }
-}
-
-/*
- *  Private routine:
- *
- *    unsigned int dictionary__hash(char *s):
- *        Effects: Hashs s to an unsigned integer.  This number mod the
- *                 hash table size is supposed to roughly evenly distribute
- *                 keys over the table's slots.
- */
-
-static unsigned int
-dictionary__hash(char *s)
-{
-    unsigned int result = 0;
-
-    if (!s)
-      return(result);
-
-    while (s[0]) {
-        result <<= 1;
-        result += s[0];
-        s++;
-    }
-
-    return(result);
-}
-
-/*
- *    TYPE_T_dictionary_binding *TYPE_T_dictionary_Lookup(TYPE_T_dictionary d,
- *                                                        char *key):
- *        Effects: If key is not bound in d, returns 0.  Othersize,
- *                 returns a pointer to the binding that binds key.
- *                 Note the access restrictions on bindings...
- */
-
-TYPE_T_dictionary_binding *
-TYPE_T_dictionary_Lookup(TYPE_T_dictionary d,
-                        char *key)
-{
-    TYPE_T_dictionary_binding *binding_ptr;
-
-    binding_ptr = d->slots[dictionary__hash(key)%(d->size)];
-    while (binding_ptr) {
-       if (string_Eq(key, binding_ptr->key))
-         return(binding_ptr);
-       binding_ptr = binding_ptr->next;
-    }
-
-    return(NULL);
-}
-
-/*
- *    TYPE_T_dictionary_binding *TYPE_T_dictionary_Define(TYPE_T_dictionary d,
- *                                            char *key,
- *                                            int *already_existed):
- *        Modifies: d
- *        Effects: If key is bound in d, returns a pointer to the binding
- *                 that binds key.  Otherwise, adds a binding of key to
- *                 d and returns its address.  If already_existed is non-zero
- *                 then *already_existed is set to 0 if key was not
- *                 previously bound in d and 1 otherwise.
- *                 Note the access restrictions on bindings...  Note also
- *                 that the value that key is bounded to if a binding is
- *                 created is undefined.  The caller should set the value
- *                 in this case.
- */
-
-TYPE_T_dictionary_binding *
-TYPE_T_dictionary_Define(TYPE_T_dictionary d,
-                        char *key,
-                        int *already_existed)
-{
-    TYPE_T_dictionary_binding **ptr_to_the_slot, *binding_ptr;
-
-    ptr_to_the_slot = &(d->slots[dictionary__hash(key)%(d->size)]);
-
-    binding_ptr = *ptr_to_the_slot;
-    while (binding_ptr) {
-       if (string_Eq(binding_ptr->key, key)) {
-           if (already_existed)
-             *already_existed = 1;
-           return(binding_ptr);
-       }
-       binding_ptr = binding_ptr->next;
-    }
-
-    if (already_existed)
-      *already_existed = 0;
-    binding_ptr = (TYPE_T_dictionary_binding *)malloc(
-                                       sizeof(TYPE_T_dictionary_binding));
-    binding_ptr->next = *ptr_to_the_slot;
-    binding_ptr->key = string_Copy(key);
-    *ptr_to_the_slot = binding_ptr;
-    return(binding_ptr);
-}
-
-/*
- *    void TYPE_T_dictionary_Delete(TYPE_T_dictionary d,
- *                                  TYPE_T_dictionary_binding *b):
- *        Requires: *b is a binding in d.
- *        Modifies: d
- *        Effects: Removes the binding *b from d.  Note that if 
- *                 b->value needs to be freed, it should be freed
- *                 before making this call.
- */
-
-void TYPE_T_dictionary_Delete(TYPE_T_dictionary d,
-                             TYPE_T_dictionary_binding *b)
-{
-    TYPE_T_dictionary_binding **ptr_to_binding_ptr;
-
-    ptr_to_binding_ptr = &(d->slots[dictionary__hash(b->key)%(d->size)]);
-
-    while (*ptr_to_binding_ptr != b)
-      ptr_to_binding_ptr = &((*ptr_to_binding_ptr)->next);
-
-    *ptr_to_binding_ptr = b->next;
-    free(b->key);
-    free(b);
-}
diff --git a/zephyr/zwgc/dictionary.h b/zephyr/zwgc/dictionary.h
deleted file mode 100644 (file)
index 0cde8bf..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: dictionary.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#ifndef TYPE_T_dictionary_TYPE
-#define TYPE_T_dictionary_TYPE
-
-typedef struct _TYPE_T_dictionary_binding {
-    struct _TYPE_T_dictionary_binding *next;       /* PRIVATE */
-    char *key;                                     /* READ-ONLY */
-    TYPE_T value;
-} TYPE_T_dictionary_binding;
-
-typedef struct _TYPE_T_dictionary {                /* PRIVATE */
-    int size;
-    TYPE_T_dictionary_binding **slots;
-} *TYPE_T_dictionary;
-
-/*
- *    TYPE_T_dictionary TYPE_T_dictionary_Create(int size):
- *        Requires: size > 0
- *        Effects: Returns a new empty dictionary containing no bindings.
- *                 The returned dictionary must be destroyed using
- *                 TYPE_T_dictionary_Destroy.  Size is a time vs space
- *                 parameter.  For this implementation, space used is
- *                 proportional to size and time used is proportional
- *                 to number of bindings divided by size.  It is preferable
- *                 that size is a prime number.
- */
-
-extern TYPE_T_dictionary TYPE_T_dictionary_Create(int);
-
-/*
- *    void TYPE_T_dictionary_Destroy(TYPE_T_dictionary d):
- *        Requires: d is a non-destroyed TYPE_T_dictionary
- *        Modifies: d
- *        Effects: Destroys dictionary d freeing up the space it consumes.
- *                 Dictionary d should never be referenced again.  Note that
- *                 free is NOT called on the values of the bindings.  If
- *                 this is needed, the client must do this first using
- *                 TYPE_T_dictionary_Enumerate.
- */
-
-extern void TYPE_T_dictionary_Destroy(TYPE_T_dictionary);
-
-/*
- *    void TYPE_T_dictionary_Enumerate(TYPE_T_dictionary d;
- *                                     void (*proc)(TYPE_T_dictionary_binding *b)):
- *        Requires: proc is a void procedure taking 1 argument, a
- *                  TYPE_T_dictionary_binding pointer, which does not
- *                  make any calls using dictionary d.
- *        Effects: Calls proc once with each binding in dictionary d.
- *                 Order of bindings passed is undefined.  Note that
- *                 only the value field of the binding should be considered
- *                 writable by proc.
- */
-
-extern void TYPE_T_dictionary_Enumerate(TYPE_T_dictionary, void (*)(TYPE_T_dictionary_binding *));
-
-/*
- *    TYPE_T_dictionary_binding *TYPE_T_dictionary_Lookup(TYPE_T_dictionary d,
- *                                                        char *key):
- *        Effects: If key is not bound in d, returns 0.  Othersize,
- *                 returns a pointer to the binding that binds key.
- *                 Note the access restrictions on bindings...
- */
-
-extern TYPE_T_dictionary_binding *TYPE_T_dictionary_Lookup(TYPE_T_dictionary,
-                                                          char *);
-
-/*
- *    TYPE_T_dictionary_binding *TYPE_T_dictionary_Define(TYPE_T_dictionary d,
- *                                            char *key,
- *                                            int *already_existed):
- *        Modifies: d
- *        Effects: If key is bound in d, returns a pointer to the binding
- *                 that binds key.  Otherwise, adds a binding of key to
- *                 d and returns its address.  If already_existed is non-zero
- *                 then *already_existed is set to 0 if key was not
- *                 previously bound in d and 1 otherwise.
- *                 Note the access restrictions on bindings...  Note also
- *                 that the value that key is bounded to if a binding is
- *                 created is undefined.  The caller should set the value
- *                 in this case.
- */
-
-extern TYPE_T_dictionary_binding *TYPE_T_dictionary_Define(TYPE_T_dictionary,
-                                                          char *, int *);
-
-/*
- *    void TYPE_T_dictionary_Delete(TYPE_T_dictionary d,
- *                                  TYPE_T_dictionary_binding *b):
- *        Requires: *b is a binding in d.
- *        Modifies: d
- *        Effects: Removes the binding *b from d.  Note that if 
- *                 b->value needs to be freed, it should be freed
- *                 before making this call.
- */
-
-extern void TYPE_T_dictionary_Delete(TYPE_T_dictionary,
-                                    TYPE_T_dictionary_binding *);
-
-#endif
diff --git a/zephyr/zwgc/display.c b/zephyr/zwgc/display.c
deleted file mode 100644 (file)
index ad3be7f..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: display.c 2091 2007-12-20 01:17:23Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#if (!defined(lint) && !defined(SABER))
-static char rcsid_display_c[] = "$Id: display.c 2091 2007-12-20 01:17:23Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*             "Bus" module for plug in output driver modules:              */
-/*                                                                          */
-/****************************************************************************/
-
-#include <sysdep.h>
-#include "new_memory.h"
-#include "new_string.h"
-#include "variables.h"
-#include "display.h"
-
-/*
- * driver_table - <<<>>>
- */
-
-extern void tty_driver();
-extern void plain_driver();
-extern void raw_driver();
-
-extern int tty_driver_init();
-
-#ifndef X_DISPLAY_MISSING
-extern int X_driver_init();
-extern void X_driver();
-#endif
-
-static struct driver_info {
-    string driver_name;
-    void   (*driver)();
-    int    (*driver_init)();
-    void   (*driver_reset)();
-} driver_table[] = {
-#ifndef X_DISPLAY_MISSING
-    {"X",     X_driver,     X_driver_init,   X_driver_reset},
-#endif
-    {"tty",   tty_driver,   tty_driver_init, NULL},
-    {"plain", plain_driver, NULL,            NULL},
-    {"raw",   raw_driver,   NULL,            NULL},
-    {NULL,    NULL,         NULL,            NULL}
-};
-
-/*
- * <<<>>>
- */
-
-struct driver_info *get_driver_info(driver_name)
-     string driver_name;
-{
-    struct driver_info *d;
-
-    for (d=driver_table; d->driver_name; d++)
-      if (string_Eq(d->driver_name, driver_name) && d->driver)
-       return(d);
-
-    return(NULL);
-}
-
-/*
- *    void init_display(int *pargc; char **argv)
- *        Effects: <<<>>>
- */
-
-void display_init(pargc, argv)
-     int *pargc;
-     char **argv;
-{
-    char **new, **current;
-    struct driver_info *d;
-    string first_working_driver = "";
-    string default_driver = "";
-
-    /*
-     * Process argument list handling "-disable <driver>" and
-     * "-default <driver>" arguments:
-     */
-    for (new=current=argv+1; *current; current++) {
-       if (string_Eq(*current, "-disable")) {
-           current++; *pargc -= 2;
-           if (!*current)
-             usage();
-           if (d = get_driver_info(*current))
-             d->driver = NULL;
-       } else if (string_Eq(*current, "-default")) {
-           current++; *pargc -= 2;
-           if (!*current)
-             usage();
-           default_driver = *current;
-       } else
-         *(new++) = *current;
-    }
-    *new = *current;
-
-    /*
-     * Initialize all non-disabled drivers.  If a driver reports an error,
-     * disable that driver.  Set default_driver if not already set
-     * by the -default argument to the first non-disabled driver.
-     */    
-    for (d = driver_table; d->driver_name; d++) {
-       if (!d->driver)
-         continue;
-       
-       if (d->driver_init && d->driver_init(pargc, argv)) {
-           d->driver = NULL;
-           continue;
-       }
-
-       if (!*first_working_driver)
-         first_working_driver = d->driver_name;
-    }
-
-    if (!get_driver_info(default_driver))
-      default_driver = first_working_driver;
-
-    var_set_variable("output_driver", default_driver);
-}
-
-void display_reset()
-{
-   for (d = driver_table; d->driver_name; d++)
-      if (d->driver) d->driver_reset();
-}
diff --git a/zephyr/zwgc/error.c b/zephyr/zwgc/error.c
deleted file mode 100644 (file)
index a2e5995..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: error.c 2091 2007-12-20 01:17:23Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_error_c[] = "$Id: error.c 2091 2007-12-20 01:17:23Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-int error_code;
diff --git a/zephyr/zwgc/error.h b/zephyr/zwgc/error.h
deleted file mode 100644 (file)
index a1b1e2d..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: error.h 2091 2007-12-20 01:17:23Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef error_MODULE
-#define error_MODULE
-
-#include <stdio.h>
-#include <errno.h>
-#include <com_err.h>
-
-extern int error_code;
-
-#define  FATAL_TRAP(function_call, message) \
-                                           { error_code = (function_call);\
-                                           if (error_code) {\
-                                               com_err("zwgc", error_code,\
-                                                       message);\
-                                               exit(3);\
-                                           }\
-                                          }
-
-#define  TRAP(function_call, message) \
-                                          { error_code = (function_call);\
-                                           if (error_code) {\
-                                               com_err("zwgc", error_code,\
-                                                       message);\
-                                           }\
-                                          }
-
-#define  ERROR(a)                { fprintf(stderr, "zwgc: "); \
-                                  fprintf(stderr, a);\
-                                  fflush(stderr); }
-
-#define  ERROR2(a,b)             { fprintf(stderr, "zwgc: "); \
-                                  fprintf(stderr, a, b);\
-                                  fflush(stderr); }
-
-#define  ERROR3(a,b,c)           { fprintf(stderr, "zwgc: "); \
-                                  fprintf(stderr, a, b, c);\
-                                  fflush(stderr); }
-
-#define  ERROR4(a,b,c,d)         { fprintf(stderr, "zwgc: "); \
-                                  fprintf(stderr, a, b, c, d);\
-                                  fflush(stderr); }
-
-#endif
diff --git a/zephyr/zwgc/eval.c b/zephyr/zwgc/eval.c
deleted file mode 100644 (file)
index 2fae780..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: eval.c 2336 2009-03-22 18:59:56Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_eval_c[] = "$Id: eval.c 2336 2009-03-22 18:59:56Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*                      Code to evaluate an expression:                     */
-/*                                                                          */
-/****************************************************************************/
-
-#include <zephyr/zephyr.h>
-#include "new_memory.h"
-#include "node.h"
-#include "eval.h"
-#include "substitute.h"
-#include "port.h"
-#include "buffer.h"
-#include "regexp.h"
-#include "formatter.h"
-#include "text_operations.h"
-#include "zwgc.h"
-#include "variables.h"
-
-/****************************************************************************/
-/*                                                                          */
-/*                Code to deal with string/boolean conversion:              */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- *  Internal Routine:
- *
- *    int string_to_bool(string str)
- *       Effects: Returns true iff the string str represents true.
- *                True is represented by any string which is equal to
- *                "true" when case is disregraded.
- */
-
-#define  string_to_bool(str)      (!strcasecmp(str,"true"))
-
-/*
- *  Internal Routine:
- *
- *    string bool_to_string(int bool)
- *       Effects: Returns a string representive for the C boolean bool.
- *                (In C, true == non-zero)  I.e.,
- *                string_to_bool(bool_to_string(x)) == !!x.
- *                The string returned is on the heap & must be freed
- *                eventually.
- */
-
-static string
-bool_to_string(int bool)
-{
-    return(bool ? string_Copy("TRUE") : string_Copy("FALSE"));
-}
-
-/*
- *    int eval_bool_expr(Node *expr)
- *        Modifies: dict
- *        Requires: expr is a proper expression or NULL.  (see node.c)
- *        Effects: Evaluates expr to its boolean value which is returned.
- *                 NULL is defined to have the boolean value true.
- */
-
-int
-eval_bool_expr(Node *expr)
-{
-    string temp;
-    int result;
-
-    if (!expr)
-      return(1);
-
-    temp = eval_expr(expr);
-    result = string_to_bool(temp);
-    free(temp);
-
-    return(result);
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*                      Code to evaluate an expression:                     */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- *    string eval_expr(Node *expr)
- *        Modifies: dict
- *        Requires: expr is a proper expression (NOT NULL).  (see node.c)
- *        Effects: Evaluates expr to its string value which is returned.
- *                 The returned string is on the heap and must be freed
- *                 eventually.
- */
-
-string
-eval_expr(Node *expr)
-{
-    int opcode = expr->opcode;
-    int bool_result = 0;
-    string first, second;
-    char *result = NULL;
-    string *text_ptr;
-
-    /*
-     * Dispatch based on the opcode of the top node in the expression:
-     */
-    switch (opcode) {
-      case STRING_CONSTANT_OPCODE:
-       return(string_Copy(expr->d.string_constant));
-
-      case VARREF_OPCODE:
-       return(string_Copy(var_get_variable(expr->d.string_constant)));
-
-      case BUFFER_OPCODE:
-       return(string_Copy(buffer_to_string()));
-
-       /*
-        * Handle unary expressions:
-        */
-      case NOT_OPCODE:
-      case SUBSTITUTE_OPCODE:
-      case PROTECT_OPCODE:
-      case VERBATIM_OPCODE:
-      case STYLESTRIP_OPCODE:
-      case GETENV_OPCODE:
-      case UPCASE_OPCODE:
-      case DOWNCASE_OPCODE:
-      case ZVAR_OPCODE:
-      case GET_OPCODE:
-       first = eval_expr(expr->d.nodes.first);
-
-       switch (opcode) {
-         case NOT_OPCODE:
-           result = bool_to_string(! string_to_bool(first));
-           break;
-
-         case SUBSTITUTE_OPCODE:
-           result = substitute(var_get_variable, first);
-           break;
-
-         case PROTECT_OPCODE:
-           result=protect(first);
-           break;
-
-         case VERBATIM_OPCODE:
-           return(verbatim(first,0));
-
-         case STYLESTRIP_OPCODE:
-           return(stylestrip(first));
-
-         case GETENV_OPCODE:
-           result = getenv(first);
-           if (!result)
-             result = string_Copy("");
-           else
-             result = string_Copy(result);
-           break;
-
-         case UPCASE_OPCODE:
-           return(string_Upcase(first));
-
-         case DOWNCASE_OPCODE:
-           return(string_Downcase(first));
-
-         case ZVAR_OPCODE:
-           result = ZGetVariable(first);
-           if (!result)
-             result = string_Copy("");
-           else
-             result = string_Copy(result);
-           break;
-
-         case GET_OPCODE:
-           result = read_from_port(first);
-           break;
-       }
-       free(first);
-       break;
-
-       /*
-        * Handle binary operators:
-        */
-      case PLUS_OPCODE:
-      case AND_OPCODE:
-      case OR_OPCODE:
-      case EQ_OPCODE:
-      case NEQ_OPCODE:
-      case REGEQ_OPCODE:
-      case REGNEQ_OPCODE:
-       first = eval_expr(expr->d.nodes.first);
-       second = eval_expr(expr->d.nodes.second);
-
-       switch (opcode) {
-         case PLUS_OPCODE:
-           result = string_Concat(first, second);
-           free(first);
-           free(second);
-           return(result);
-
-         case AND_OPCODE:
-           bool_result = string_to_bool(first) && string_to_bool(second);
-           break;
-
-         case OR_OPCODE:
-           bool_result = string_to_bool(first) || string_to_bool(second);
-           break;
-
-         case EQ_OPCODE:
-           bool_result = string_Eq(first, second);
-           break;
-
-         case NEQ_OPCODE:
-           bool_result = string_Neq(first, second);
-           break;
-
-         case REGEQ_OPCODE:
-           bool_result = ed_regexp_match_p(first, second);
-           break;
-
-         case REGNEQ_OPCODE:
-           bool_result = !ed_regexp_match_p(first, second);
-           break;
-       }
-       free(first);
-       free(second);
-       result = bool_to_string(bool_result);
-       break;
-
-       /*
-        * Handle text-manipulation operators:
-        */
-      case LANY_OPCODE:    case RANY_OPCODE:  
-      case LBREAK_OPCODE:  case RBREAK_OPCODE:
-      case LSPAN_OPCODE:   case RSPAN_OPCODE:
-       first = eval_expr(expr->d.nodes.first);
-       second = eval_expr(expr->d.nodes.second);
-       text_ptr = &first;
-
-       switch (opcode) {
-         case LANY_OPCODE:
-           result = lany(text_ptr, second);
-           break;
-
-         case RANY_OPCODE:  
-           result = rany(text_ptr, second);
-           break;
-
-         case LBREAK_OPCODE:
-           result = lbreak(text_ptr, string_to_character_class(second));
-           break;
-
-         case RBREAK_OPCODE:
-           result = rbreak(text_ptr, string_to_character_class(second));
-           break;
-
-         case LSPAN_OPCODE:
-           result = lspan(text_ptr, string_to_character_class(second));
-           break;
-
-         case RSPAN_OPCODE:
-           result = rspan(text_ptr, string_to_character_class(second));
-           break;
-       }
-
-       if (expr->d.nodes.first->opcode == VARREF_OPCODE)
-         var_set_variable(expr->d.nodes.first->d.string_constant, first);
-       free(first);
-       free(second);
-       break;
-
-#ifdef DEBUG
-      default:
-       printf("zwgc: internal error: attempt to evaluate the following non-expression:\n");  fflush(stdout);
-       node_display(expr);
-       printf("\n\n");
-       exit(2);
-#endif
-    }
-
-    return(result);
-}
diff --git a/zephyr/zwgc/eval.h b/zephyr/zwgc/eval.h
deleted file mode 100644 (file)
index ef9fd0f..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: eval.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef eval_MODULE
-#define eval_MODULE
-
-#include "new_string.h"
-
-/*
- *    string eval_expr(Node *expr)
- *        Modifies: dict
- *        Requires: expr is a proper expression (NOT NULL).  (see node.c)
- *        Effects: Evaluates expr to its string value which is returned.
- *                 The returned string is on the heap and must be freed
- *                 eventually.
- */
-
-extern string eval_expr(Node *);
-
-/*
- *    int eval_bool_expr(Node *expr)
- *        Modifies: dict
- *        Requires: expr is a proper expression or NULL.  (see node.c)
- *        Effects: Evaluates expr to its boolean value which is returned.
- *                 NULL is defined to have the boolean value true.
- */
-
-extern int eval_bool_expr(Node *);
-
-#endif
diff --git a/zephyr/zwgc/exec.c b/zephyr/zwgc/exec.c
deleted file mode 100644 (file)
index 0ee15d5..0000000
+++ /dev/null
@@ -1,482 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: exec.c 2327 2009-03-22 16:34:35Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_exec_c[] = "$Id: exec.c 2327 2009-03-22 16:34:35Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*               Module containing code to execute a program:               */
-/*                                                                          */
-/****************************************************************************/
-
-#include <zephyr/zephyr.h>
-#include "new_memory.h"
-#include "node.h"
-#include "exec.h"
-#include "eval.h"
-#include "buffer.h"
-#include "port.h"
-#include "variables.h"
-#include "notice.h"
-#ifdef CMU_ZWGCPLUS
-#include "plus.h"
-#endif
-
-static int exec_subtree(Node *);
-static int exec_fields(Node *);
-
-/****************************************************************************/
-/*                                                                          */
-/*                           Utility subroutines:                          */
-/*                                                                          */
-/****************************************************************************/
-
-static string
-eval_exprlist_to_string(Node *exprlist)
-{
-    string result = string_Copy("");
-    string temp;
-    int first_time = 1;
-    
-    for (; exprlist; exprlist=exprlist->next) {
-       if (!first_time)
-         result = string_Concat2(result, " ");
-       else
-         first_time = 0;
-       
-       temp = eval_expr(exprlist);
-       result = string_Concat2(result, temp);
-       free(temp);
-    }
-    
-    return(result);
-}
-
-static char **
-eval_exprlist_to_args(Node *exprlist)
-{
-    char **result = (char **)malloc(sizeof(char *));
-    int argc = 0;
-
-    for (; exprlist; exprlist=exprlist->next) {
-       result[argc] = eval_expr(exprlist);
-       argc++;
-       result = (char **)realloc(result, (argc+1)*sizeof(char *));
-    }
-    
-    result[argc] = NULL;
-    return(result);
-}
-
-static void
-free_args(char **args)
-{
-    char **p;
-
-    for (p=args; *p; p++) {
-      free(*p);
-  }
-       
-    free(args);
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*          Subroutines to handle each particular statement type:           */
-/*                                                                          */
-/****************************************************************************/
-
-#define  NOBREAK   0
-#define  BREAK     1
-#define  EXIT      2
-
-/*ARGSUSED*/
-static int
-exec_noop(Node *node)
-{
-    return(NOBREAK);
-}
-
-/*ARGSUSED*/
-static int
-exec_break(Node *node)
-{
-    return(BREAK);
-}
-
-/*ARGSUSED*/
-static int
-exec_exit(Node *node)
-{
-    return(EXIT);
-}
-
-static int
-exec_set(Node *node)
-{
-    var_set_variable_then_free_value(node->d.nodes.first->d.string_constant,
-                                    eval_expr(node->d.nodes.second));
-
-    return(NOBREAK);
-}
-
-static int
-exec_execport(Node *node)
-{
-    string name = eval_expr(node->d.nodes.first);
-    char **argv = eval_exprlist_to_args(node->d.nodes.second);
-
-    create_subprocess_port(name, argv);
-
-    free(name);
-    free_args(argv);
-    return(NOBREAK);
-}
-
-static int
-exec_appendport(Node *node)
-{
-    string name, filename;
-
-    name = eval_expr(node->d.nodes.first);
-    filename = eval_expr(node->d.nodes.second);
-
-    create_file_append_port(name, filename);
-
-    free(name);
-    free(filename);
-    return(NOBREAK);
-}
-
-static int
-exec_inputport(Node *node)
-{
-    string name, filename;
-
-    name = eval_expr(node->d.nodes.first);
-    filename = eval_expr(node->d.nodes.second);
-
-    create_file_input_port(name, filename);
-
-    free(name);
-    free(filename);
-    return(NOBREAK);
-}
-
-static int
-exec_outputport(Node *node)
-{
-    string name, filename;
-
-    name = eval_expr(node->d.nodes.first);
-    filename = eval_expr(node->d.nodes.second);
-
-    create_file_output_port(name, filename);
-
-    free(name);
-    free(filename);
-    return(NOBREAK);
-}
-
-static int
-exec_closeinput(Node *node)
-{
-    string name;
-
-    name = eval_expr(node->d.nodes.first);
-    close_port_input(name);
-
-    free(name);
-    return(NOBREAK);
-}
-
-static int
-exec_closeoutput(Node *node)
-{
-    string name;
-
-    name = eval_expr(node->d.nodes.first);
-    close_port_output(name);
-
-    free(name);
-    return(NOBREAK);
-}
-
-static int
-exec_closeport(Node *node)
-{
-    string name;
-
-    name = eval_expr(node->d.nodes.first);
-    close_port_input(name);
-    close_port_output(name);
-
-    free(name);
-    return(NOBREAK);
-}
-
-static int
-exec_put(Node *node)
-{
-    string name, temp;
-
-    if (node->d.nodes.second)
-      temp = eval_exprlist_to_string(node->d.nodes.second);
-    else
-      temp = string_Copy(buffer_to_string());
-
-    if (node->d.nodes.first) {
-       name = eval_expr(node->d.nodes.first);
-
-       write_on_port(name, temp, strlen(temp));
-       free(name);
-    } else
-      write_on_port(var_get_variable("output_driver"), temp, strlen(temp));
-
-    free(temp);
-    return(NOBREAK);
-}
-
-static int
-exec_print(Node *node)
-{
-    string temp;
-
-    temp = eval_exprlist_to_string(node->d.nodes.first);
-    append_buffer(temp);
-    free(temp);
-    
-    return(NOBREAK);
-}
-
-/*ARGSUSED*/
-static int
-exec_clearbuf(Node *node)
-{
-    clear_buffer();
-
-    return(NOBREAK);
-}
-
-static int
-exec_case(Node *node)
-{
-    string constant,temp;
-    Node *match, *cond;
-    int equal_p;
-
-    constant = string_Downcase(eval_expr(node->d.nodes.first));
-   
-    for (match=node->d.nodes.second; match; match=match->next) {
-       cond = match->d.nodes.first;
-       if (!cond) {  /* default case */
-           free(constant);
-           return(exec_subtree(match->d.nodes.second));
-       }
-       for (; cond; cond=cond->next) {
-           temp = string_Downcase(eval_expr(cond));
-           equal_p = string_Eq(constant, temp);
-           free(temp);
-           if (equal_p) {
-               free(constant);
-               return(exec_subtree(match->d.nodes.second));
-           }
-       }
-    }
-
-    free(constant);
-    return(NOBREAK);
-}
-
-static int
-exec_while(Node *node)
-{
-    int continue_code = NOBREAK;
-
-    while (eval_bool_expr(node->d.nodes.first)) {
-       continue_code = exec_subtree(node->d.nodes.second);
-       if (continue_code != NOBREAK)
-         break;
-    }
-
-    if (continue_code == BREAK)
-      continue_code = NOBREAK;
-
-    return(continue_code);
-}
-
-static int
-exec_if(Node *node)
-{
-    Node *conds;
-
-    for (conds=node->d.nodes.first; conds; conds=conds->next)
-      if (eval_bool_expr(conds->d.nodes.first))
-       return(exec_subtree(conds->d.nodes.second));
-
-    return(NOBREAK);
-}
-
-static int
-exec_exec(Node *node)
-{
-    int pid;
-    char **argv = eval_exprlist_to_args(node->d.nodes.first);
-
-    pid = fork();
-    if (pid == -1) {
-       fprintf(stderr, "zwgc: error while attempting to fork: ");
-       perror("");
-    } else if (pid == 0) { /* in child */
-       execvp(argv[0], argv);
-       fprintf(stderr,"zwgc: unable to exec %s: ", argv[0]);
-       perror("");
-       _exit(errno);
-    }
-    
-    free_args(argv);
-    return(NOBREAK);
-}
-
-static struct _Opstuff {
-    int (*exec)(Node *);
-} const opstuff[] = {
-    { exec_noop },                         /* string_constant */
-    { exec_noop },                         /* varref */
-    { exec_noop },                         /* varname */
-    { exec_noop },                         /* not */
-    { exec_noop },                         /* plus */
-    { exec_noop },                         /* and */
-    { exec_noop },                         /* or */
-    { exec_noop },                         /* eq */
-    { exec_noop },                         /* neq */
-    { exec_noop },                         /* regeq */
-    { exec_noop },                         /* regneq */
-    { exec_noop },                         /* buffer */
-    { exec_noop },                         /* substitute */
-    { exec_noop },                         /* protect */
-    { exec_noop },                         /* verbatim */
-    { exec_noop },                         /* stylestrip */
-    { exec_noop },                         /* getenv */
-    { exec_noop },                         /* upcase */
-    { exec_noop },                         /* downcase */
-    { exec_noop },                         /* zvar */
-    { exec_noop },                         /* get */
-    { exec_noop },                         /* lany */
-    { exec_noop },                         /* rany */
-    { exec_noop },                         /* lbreak */
-    { exec_noop },                         /* rbreak */
-    { exec_noop },                         /* lspan */
-    { exec_noop },                         /* rspan */
-
-    { exec_noop },                          /* noop statement */
-    { exec_set },
-    { exec_fields },
-
-    { exec_print },
-    { exec_clearbuf },
-
-    { exec_appendport },
-    { exec_execport },
-    { exec_inputport },
-    { exec_outputport },
-    { exec_put },
-    { exec_closeinput },
-    { exec_closeoutput },
-    { exec_closeport },
-
-    { exec_exec },
-
-    { exec_if },
-    { exec_case },
-    { exec_while },
-    { exec_break },
-    { exec_exit },
-
-    { exec_noop },                           /* if */
-    { exec_noop },                           /* elseif */
-    { exec_noop },                           /* else */
-    { exec_noop },                           /* matchlist */
-    { exec_noop },                           /* default */
-};
-
-static int
-exec_subtree(Node *node)
-{
-    int retval = NOBREAK;
-    
-    for (; node; node=node->next) {
-       retval = (opstuff[node->opcode].exec)(node);
-       if (retval != NOBREAK)
-         return(retval);
-    }
-
-    return(NOBREAK);
-}
-
-/***************************************************************************/
-
-static char *notice_fields;
-static int notice_fields_length = 0;
-static int number_of_fields = 0;
-
-static int
-exec_fields(Node *node)
-{
-    for (node=node->d.nodes.first; node; node=node->next) {
-       var_set_variable_then_free_value(node->d.string_constant,
-                                get_next_field(&notice_fields,
-                                               &notice_fields_length));
-       if (number_of_fields)
-         number_of_fields--;
-    }
-    
-    var_set_variable_to_number("number_of_fields", number_of_fields);
-
-    return(NOBREAK);
-}
-
-void
-exec_process_packet(Node *program,
-                   ZNotice_t *notice)
-{
-#ifdef CMU_ZWGCPLUS
-    set_stored_notice(notice);
-#endif
-
-    notice_fields = notice->z_message;
-    notice_fields_length = notice->z_message_len;
-
-    var_set_number_variables_to_fields(notice_fields, notice_fields_length);
-
-    number_of_fields = count_nulls(notice_fields, notice_fields_length)+1;
-    /* workaround for bug in old zwrite */
-    if (notice_fields[notice_fields_length-1] == '\0')
-       number_of_fields--;
-    var_set_variable_to_number("number_of_fields", number_of_fields);
-
-    clear_buffer();
-    (void)exec_subtree(program);
-
-#ifdef CMU_ZWGCPLUS
-    plus_queue_notice(notice);
-    plus_window_deletions(notice); /* OOPS */
-    set_stored_notice(NULL);
-#endif
-}
diff --git a/zephyr/zwgc/exec.h b/zephyr/zwgc/exec.h
deleted file mode 100644 (file)
index 3a3f13c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: exec.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef exec_MODULE
-#define exec_MODULE
-
-extern void exec_process_packet(Node *, ZNotice_t *);
-
-#endif
diff --git a/zephyr/zwgc/file.c b/zephyr/zwgc/file.c
deleted file mode 100644 (file)
index 816eb0f..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: file.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_file_c[] = "$Id: file.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-#include <pwd.h>
-#include "new_memory.h"
-#include "new_string.h"
-#include "error.h"
-
-/*
- *    char *get_home_directory()
- *
- *        Effects: Attempts to locate the user's (by user, the owner of this
- *                 process is meant) home directory & return its pathname.
- *                 Returns NULL if unable to do so.  Does so by first checking
- *                 the environment variable HOME.  If it is unset, falls back
- *                 on the user's password entry.
- *         Note: The returned pointer may point to a static buffer & hence
- *               go away on further calls to getenv, get_home_directory,
- *               getpwuid, or related calls.  The caller should copy it
- *               if necessary.
- */
-
-char *get_home_directory(void)
-{
-    char *result;
-    struct passwd *passwd_entry;
-
-    result = getenv("HOME");
-    if (result)
-      return(result);
-
-    if (!(passwd_entry = getpwuid(getuid())))
-      return(NULL);
-
-    return(passwd_entry->pw_dir);
-}
-
-/*
- *
- */
-
-FILE *locate_file(char *override_filename,
-                 char *home_dir_filename,
-                 char *fallback_filename)
-{
-    char *filename;
-    FILE *result;
-
-    errno = 0;
-
-    if (override_filename) {
-       if (string_Eq(override_filename, "-"))
-         return(stdin);
-       
-       result = fopen(override_filename, "r");
-       if (!(result = fopen(override_filename, "r"))) {
-           /* <<<>>> */
-           fprintf(stderr, "zwgc: error while opening %s for reading: ",
-                  override_filename);
-           perror("");
-       }
-       return(result);
-    }
-
-    if (home_dir_filename) {
-       filename = get_home_directory();
-       if (filename) {
-           filename = string_Concat(filename, "/");
-           filename = string_Concat2(filename, home_dir_filename);
-           result = fopen(filename, "r");
-           if (result) {
-               free(filename);
-               return(result);
-           }
-           if (errno != ENOENT) {
-               /* <<<>>> */
-               fprintf(stderr, "zwgc: error while opening %s for reading: ",
-                       filename);
-               perror("");
-               free(filename);
-               return(result);
-           }
-           free(filename);
-       } else
-         ERROR("unable to find your home directory.\n");
-    }
-
-    if (fallback_filename) {
-       if (!(result = fopen(fallback_filename, "r"))) {
-           /* <<<>>> */
-           fprintf(stderr, "zwgc: error while opening %s for reading: ",
-                  fallback_filename);
-           perror("");
-       }
-       return(result);
-    }
-
-    return(NULL);
-}
diff --git a/zephyr/zwgc/file.h b/zephyr/zwgc/file.h
deleted file mode 100644 (file)
index 673b5ed..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: file.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef file_MODULE
-#define file_MODULE
-
-#include <stdio.h>
-
-extern FILE *locate_file(char *, char *, char *);
-
-#endif
diff --git a/zephyr/zwgc/formatter.c b/zephyr/zwgc/formatter.c
deleted file mode 100644 (file)
index 7f539af..0000000
+++ /dev/null
@@ -1,561 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: formatter.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_formatter_c[] = "$Id: formatter.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-#include <zephyr/zephyr.h>
-
-#include "new_memory.h"
-#include "char_stack.h"
-#include "string_dictionary.h"
-#include "formatter.h"
-#include "text_operations.h"
-
-#if !defined(__STDC__) && !defined(const)
-#define const
-#endif
-
-static int pure_text_length(char *, char);
-static int env_length(char *);
-
-#ifdef notdef
-static character_class atsign_set = { /* '@' = 0x40 */
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-  };
-#endif
-
-static const character_class paren_set = { /* '(' = 0x28, ')' = 0x29 */
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-  };
-
-static const character_class sbracket_set = { /* '[' = 0x5b, ']' = 0x5d */
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-  };
-
-static const character_class abracket_set = { /* '<' = 0x3c, '>' = 0x3e */
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-  };
-
-static const character_class cbracket_set = { /* '{' = 0x7b, '}' = 0x7d */
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-  };
-
-static const character_class allbracket_set = {
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-  };
-
-static const character_class allmaskable_set = {
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,
-   1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-  };
-
-static char brackets[]="()<>[]{}@";
-static char *openbracket[]={"@<","@<","@[","@[","@{","@{","@(","@(","@("};
-static char *closebracket[]={">",">","]","]","}","}",")",")",")"};
-
-static int
-not_contains(string str,
-            const character_class set)
-{
-   while (*str && ! set[(int)*str]) str++;
-   return (! *str);
-}
-
-static int
-pure_text_length(char *text,
-                char terminator)
-{
-   int len=0;
-
-   while (1) {
-      while (*text!='@' && *text!=terminator && *text) {
-         text++;
-         len++;
-      }
-
-      if (*text!='@')
-         return(len);
-
-      if (*(text+1)=='@') {
-        text++;
-        len++;
-      } else if (env_length(text+1) != -1)
-        return(len);
-
-      text++;
-      len++;
-   }
-}
-
-static char
-otherside(char opener)
-{
-   switch (opener) {
-    case '(':
-      return(')');
-    case '{':
-      return('}');
-    case '[':
-      return(']');
-    case '<':
-      return('>');
-   }
-
-#ifdef DEBUG
-   abort();
-#endif
-   return 0;
-}
-
-/* the char * that str points to is free'd by this function.
- * if you want to keep it, save it yourself
- */
-string
-verbatim(string str, int bracketsonly)
-{
-   char *temp,*temp2;
-   int bracketnum,len;
-
-   if (strlen(str) == pure_text_length(str,0)) {
-      /* No environments, so consider the fast-and-easy methods */
-
-      if (not_contains(str,allbracket_set)) {
-        temp = string_Copy(str);
-        free(str);
-        return(temp);
-      }
-
-      if (not_contains(str,abracket_set)) {
-        temp=(char *) malloc((len=strlen(str))+4);
-        temp[0]='@';
-        temp[1]='<';
-        (void) memcpy(temp+2,str,len);
-        temp[len+2]='>';
-        temp[len+3]='\0';
-        free(str);
-        return(temp);
-      }
-      if (not_contains(str,sbracket_set)) {
-        temp=(char *) malloc((len=strlen(str))+4);
-        temp[0]='@';
-        temp[1]='[';
-        (void) memcpy(temp+2,str,len);
-        temp[len+2]=']';
-        temp[len+3]='\0';
-        free(str);
-        return(temp);
-      }
-      if (not_contains(str,cbracket_set)) {
-        temp=(char *) malloc((len=strlen(str))+4);
-        temp[0]='@';
-        temp[1]='{';
-        (void) memcpy(temp+2,str,len);
-        temp[len+2]='}';
-        temp[len+3]='\0';
-        free(str);
-        return(temp);
-      }
-      if (not_contains(str,paren_set)) {
-        temp=(char *) malloc((len=strlen(str))+4);
-        temp[0]='@';
-        temp[1]='(';
-        (void) memcpy(temp+2,str,len);
-        temp[len+2]=')';
-        temp[len+3]='\0';
-        free(str);
-        return(temp);
-      }
-   }
-
-   temp=lbreak(&str,bracketsonly?allbracket_set:allmaskable_set);
-   while(*str) {
-      bracketnum=(int) (strchr(brackets,str[0])-brackets);
-      temp=string_Concat2(temp,openbracket[bracketnum]);
-      temp=string_Concat2(temp,temp2=lany(&str," "));
-      free(temp2);
-      temp=string_Concat2(temp,closebracket[bracketnum]);
-      temp=string_Concat2(temp,temp2=lbreak(&str,bracketsonly?
-                                         allbracket_set:allmaskable_set));
-      free(temp2);
-   }
-   free(str);  /* str is "" at this point, anyway */
-
-   return(temp);
-}
-
-/* text points to beginning of text string.  return value is
-   length of string, up to but not including the passed terminator
-   or the default terminator \0.  The text will not be modified,
-   and @@ will be counted twice */
-
-string
-protect(string str)
-{
-   string temp,temp2,temp3;
-   int len,templen;
-   char_stack chs;
-   char tos;
-
-   temp = string_Copy("");
-   templen = 1;
-   chs = char_stack_create();
-
-   while(*str) {
-      tos = (char_stack_empty(chs)?0:char_stack_top(chs));
-
-      if (*str == tos) {
-        /* if the character is the next terminator */
-
-        temp = (char *) realloc(temp,++templen);
-        temp[templen-2] = *str++;
-        char_stack_pop(chs);
-        temp[templen-1] = '\0';
-      } else if ((len = pure_text_length(str,tos))) {
-        if (tos) {
-           /* if the block is text in an environment, just copy it */
-
-           temp2 = string_CreateFromData(str,len);
-           str += len;
-           temp = string_Concat2(temp,temp2);
-           templen += len;
-           free(temp2);
-        } else {
-           /* if the block is top level text, verbatim brackets only
-              (not @'s) and add text to temp */
-
-           temp2 = string_CreateFromData(str,len);
-           str += len;
-           temp3 = verbatim(temp2,1);
-           temp = string_Concat2(temp,temp3);
-           templen += strlen(temp3);
-           free(temp3);
-        }
-      } else {
-        /* if the block is an environment, copy it, push delimiter */
-
-        len = env_length(str+1);
-        char_stack_push(chs,otherside(str[len+1]));
-        len += 2;
-        temp2 = string_CreateFromData(str,len);
-        str += len;
-        temp = string_Concat2(temp,temp2);
-        templen += len;
-        free(temp2);
-      }
-   }
-   /* all blocks have been copied. */
-
-   while (!char_stack_empty(chs)) {
-      temp = (char *) realloc(temp,++templen);
-      temp[templen-2] = char_stack_top(chs);
-      char_stack_pop(chs);
-   }
-   temp[templen-1] = '\0';
-
-   return(temp);
-}
-
-/* str points to a string.  return value is another string
-   which is the original with all styles removed. */
-string
-stylestrip(string str)
-{
-    int templen = 0, otherchar;
-    char *temp = (char *) malloc(string_Length(str) + 1);
-    char_stack chs;
-    string ostr = str;
-
-    chs = char_stack_create();
-
-    while (*str) {
-       if (*str == '@') {
-           int len = env_length(str + 1);
-           if (len != -1) {
-               otherchar = 0;
-               if ((len == 4 && !strncasecmp(str + 1, "font", 4))
-                 || (len == 5 && !strncasecmp(str + 1, "color", 5)))
-                   otherchar = 0x80;
-               otherchar |= otherside(str[len + 1]);
-               char_stack_push(chs, otherchar);
-               str += len + 2;
-               continue;
-           }
-       }
-       if (!char_stack_empty(chs) && *str == (char_stack_top(chs) & 0x7f)) {
-           char_stack_pop(chs);
-           str++;
-           continue;
-       }
-       if (!char_stack_empty(chs) && (char_stack_top(chs) & 0x80))
-           str++;
-       else
-           temp[templen++] = *str++;
-    }
-    temp[templen] = 0;
-
-    while (!char_stack_empty(chs))
-       char_stack_pop(chs);
-    free(ostr);
-
-    return(temp);
-}
-
-void
-free_desc(desctype *desc)
-{
-    desctype *next_desc;
-
-    while (desc->code != DT_EOF) {
-       next_desc = desc->next;
-       free(desc);
-       desc = next_desc;
-    }
-    free(desc);
-}
-
-/* text points to beginning of possible env name.  return value is
-   length of env name, not including @ or opener, or -1 if not a
-   possible env name. */
-static int
-env_length(char *text)
-{
-   int len=0;
-
-   while (*text && (isalnum(*text) || *text=='_')) {
-      text++;
-      len++;
-   }
-
-   if ((*text=='(') || (*text=='{') || (*text=='[') || (*text=='<'))
-     return(len);
-   else
-     return(-1);
-}
-
-/* text points to beginning of text string.  return value is
-   length of string, up to but not including the passed terminator
-   or the default terminators \0 \n @.  This can modify text, and 0
-   is a valid return value. */
-static int
-text_length(char *text,
-           char terminator)
-{
-   int len=0;
-
-   while (1) {
-      while (*text!='@' && *text!='\n' && *text!=terminator && *text) {
-        text++;
-        len++;
-      }
-
-      if (*text!='@')
-        return(len);
-
-      if (*(text+1)=='@')
-        (void) memmove(text+1,text+2,strlen(text+1));
-      else if (env_length(text+1) != -1)
-       return(len);
-
-      text++;
-      len++;
-   }
-}
-
-/* parses str into a desc linked list.  Returns number of strings and
-   newlines in *pstr and *pnl */
-
-desctype *
-disp_get_cmds(char *str,
-             int *pstr,
-             int *pnl)
-{
-   desctype *desc,*here;
-   int len;
-   char_stack terminators = char_stack_create();
-   char terminator;
-   int nstr=0, nnl=0;
-   char *curstr;
-
-   desc=(desctype *) malloc(sizeof(desctype));
-   here=desc;
-   curstr=str;
-   terminator = '\0';
-
-   while (*curstr) {
-      if (*curstr=='\n') {
-        here->code=DT_NL;
-        curstr++;
-        nnl++;
-      } else if (*curstr==terminator) { /* if this is the end of an env */
-        here->code=DT_END;
-        terminator = char_stack_top(terminators);
-        char_stack_pop(terminators);
-        curstr++;
-      } else if ((len=text_length(curstr, terminator))) { /* if there is a text
-                                                            block here */
-        here->code=DT_STR;
-        here->str=curstr;
-        here->len=len;
-        curstr+=len;
-        nstr++;
-      } else if (*curstr=='@') { /* if this is the beginning of an env */
-        len=env_length(curstr+1);
-        here->code=DT_ENV;
-        here->str=curstr+1;
-        here->len=len;
-        char_stack_push(terminators, terminator);
-        terminator=otherside(*(curstr+1+len));
-        curstr+=(len+2); /* jump over @, env name, and opener */
-      }
-
-      here->next=(desctype *) malloc(sizeof(desctype));
-      here=here->next;
-   }
-
-   while (!char_stack_empty(terminators)) {
-      here->code=DT_END;
-      terminator = char_stack_top(terminators);
-      char_stack_pop(terminators);
-      here->next=(desctype *) malloc(sizeof(desctype));
-      here=here->next;
-   }
-   here->code=DT_EOF;
-   *pstr=nstr;
-   *pnl=nnl;
-
-#ifdef DEBUG_PRINTOUT
-   { string temp;
-       here = desc;
-       while (here->code != DT_EOF) {
-          if (here->code == DT_STR || here->code == DT_ENV) {
-              temp = string_CreateFromData(here->str, here->len);
-              printf("[%d <%s>]\n", here->code, temp);
-              free(temp);
-          } else
-            printf("[%d]\n", here->code);
-          here=here->next;
-       }
- }
-#endif
-
-   return(desc);
-}
diff --git a/zephyr/zwgc/formatter.h b/zephyr/zwgc/formatter.h
deleted file mode 100644 (file)
index a8df1e7..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: formatter.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#include "new_string.h"
-
-#ifndef formatter_MODULE
-#define formatter_MODULE
-
-typedef struct _desctype {
-    struct _desctype *next;
-
-    short int code;
-#define DT_EOF 0       /* End of message.      */
-#define DT_ENV 1       /* Open environment.    */
-#define DT_STR 2       /* Display string.      */
-#define DT_END 3       /* Close environment.   */
-#define DT_NL  4       /* Newline.             */
-    
-    char *str;         /* Name of environment, string to be displayed. */
-    int len;           /* Length of string/environment name for
-                          ENV, STR, END.  Undefined for EOF */
-} desctype;
-
-extern desctype *disp_get_cmds(char *, int *, int *);
-extern void free_desc(desctype *);
-
-extern string protect(string);
-extern string verbatim(string, int);
-extern string stylestrip(string);
-#endif
diff --git a/zephyr/zwgc/instantiate b/zephyr/zwgc/instantiate
deleted file mode 100755 (executable)
index 28cdd51..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh -
-
-# This file is part of the Project Athena Zephyr Notification System.
-# It is one of the source files comprising zwgc, the Zephyr WindowGram
-# client.
-#
-# $Id: instantiate 2091 2007-12-20 01:17:23Z kcr $
-#
-# Copyright (c) 1989,1993 by the Massachusetts Institute of Technology.
-# For copying and distribution information, see the file
-# "mit-copyright.h".
-#
-
-if [ "$1" = "" ]; then
-       echo "Usage: generate_instance <srcdir> <type> <name> [<include file>]"
-       exit 1
-fi
-
-source=$1
-type=$2
-name=$3
-incfile=$4
-
-if [ "$type" != "stack" ]; then
-       if [ ! -f ${source}/${type}.c ]; then
-               echo "$0: unable to open ${source}/${type}.c"
-               exit 2
-       fi
-       sed "s/TYPE_T/$name/g" ${source}/${type}.c > ${name}_${type}.c
-fi
-
-if [ "$incfile" != "" ]; then
-       echo "#include \"$incfile\"" > ${name}_${type}.h
-fi
-if [ ! -f ${source}/${type}.h ]; then
-       echo "$0: unable to open ${source}/${type}.h"
-       exit 2
-fi
-sed "s/TYPE_T/$name/g" ${source}/${type}.h >> ${name}_${type}.h
diff --git a/zephyr/zwgc/lexer.c b/zephyr/zwgc/lexer.c
deleted file mode 100644 (file)
index 1fa78e6..0000000
+++ /dev/null
@@ -1,673 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: lexer.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_lexer_c[] = "$Id: lexer.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*               The lexer for the zwgc description language:               */
-/*                                                                          */
-/****************************************************************************/
-
-#include "new_memory.h"
-#include "new_string.h"
-#include "int_dictionary.h"
-#include "lexer.h"
-#include "parser.h"
-#include "y.tab.h"
-
-/*
- * yylineno - this holds the current line # we are on.  Updated automatically
- *            by input() and unput().
- */
-
-int yylineno;
-
-/*
- * keyword_dict - this dictionary maps keyword names to their token numbers.
- */
-
-static int_dictionary keyword_dict = NULL;
-
-/****************************************************************************/
-/*                                                                          */
-/*                               I/O functions:                             */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- * input_file - this holds the FILE pointer to the file currently being lexed.
- */
-
-static FILE *input_file;
-
-/*
- * pushback - if not -1, holds a character that was pushed back by unput but
- *            not yet read by input.
- */
-
-static int pushback = -1;
-
-static char
-input(void)
-{
-    int c;
-
-    if (pushback != -1) {
-       c = pushback;
-       pushback = -1;
-       if (c=='\n')
-         yylineno++;
-       return(c);
-    }
-
-    c = getc(input_file);
-    if (c=='\n')
-      yylineno++;
-    if (c==EOF)
-      c = 0;
-
-    return(c);
-}
-
-static void
-unput(int c)
-{
-#ifdef DEBUG
-    if (pushback != -1) {
-       printf("Attempt to push back 2 characters at one time!\n");
-       exit(1);
-    }
-#endif
-
-    pushback = c;
-    if (c == '\n')
-      yylineno--;
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*                           Initialization routines:                       */
-/*                                                                          */
-/****************************************************************************/
-
-struct keyword_info {
-    string keyword;
-    int keyword_number;
-};
-
-/*
- * keywords - This table holds a copy of the mapping from keyword name to
- *            token number and is used to initialize keyword_dict:
- */
-
-static struct keyword_info keywords[] =   {
-                   { "and", '&' },
-                  { "appendport", APPENDPORT },
-                  { "buffer", BUFFER },
-                  { "break", BREAK },
-                  { "closeinput", CLOSEINPUT },
-                  { "closeoutput", CLOSEOUTPUT },
-                  { "closeport", CLOSEPORT },
-                  { "case", CASE },
-                  { "clearbuf", CLEARBUF },
-                  { "default", DEFAULT },
-                  { "do", DO },
-                  { "downcase", DOWNCASE },
-                  { "else", ELSE },
-                  { "elseif", ELSEIF },
-                  { "endcase", ENDCASE },
-                  { "endif", ENDIF },
-                  { "endwhile", ENDWHILE },
-                  { "exec", EXEC },
-                  { "execport", EXECPORT },
-                  { "exit", EXIT },
-                  { "fields", FIELDS },
-                  { "get", GET },
-                  { "getenv", GETENV },
-                  { "if", IF },
-                  { "inputport", INPUTPORT },
-                  { "lany", LANY },
-                  { "lbreak", LBREAK },
-                  { "lspan", LSPAN },
-                  { "match", MATCH },
-                  { "noop", NOOP },
-                  { "not", '!' },              
-                  { "or", '|' },
-                  { "outputport", OUTPUTPORT },
-                  { "print", PRINT },
-                  { "protect", PROTECT },
-                  { "put", PUT },
-                  { "rany", RANY },
-                  { "rbreak", RBREAK },
-                  { "rspan", RSPAN },
-                  { "set", SET },
-                  { "show", SHOW },
-                  { "stylestrip", STYLESTRIP },
-                  { "substitute", SUBSTITUTE },
-                  { "then", THEN },
-                  { "upcase", UPCASE },
-                  { "while", WHILE },
-                  { "verbatim", VERBATIM },
-                  { "zvar", ZVAR } };
-
-/*
- * lex_open - this routine [re]initializes the lexer & prepares it to lex
- *            a file.  Resets current line # to 1.
- */
-
-void
-lex_open(FILE *file)
-{
-    /*
-     * Initialize I/O:
-     */
-    input_file = file;
-    yylineno = 1;
-    pushback = -1;
-
-    /*
-     * Initialize keyword_dict from keywords if needed:
-     */
-    if (!keyword_dict) {
-       int i;
-
-       keyword_dict = int_dictionary_Create(101);
-
-       for (i=0; i<sizeof(keywords)/sizeof(struct keyword_info); i++)
-         int_dictionary_Define(keyword_dict, keywords[i].keyword,
-                               0)->value = keywords[i].keyword_number;
-    }
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*                            lex subroutines:                              */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- * eat_escape_code - this rountine eats an escape code & returns the character
- *                   it codes for or 0 if it codes for "".
- *                   (an escape code is what follows a '\\' in a quoted
- *                   string)  Current escape codes are:
- *
- *                       "n"          == '\n'
- *                       "t"          == '\t'
- *                       "b"          == '\b'
- *                       "\n"         == "" (i.e., returns 0)
- *                       <EOF>        == ""
- *                       [0-7]{1,3}   == the character represented by the code
- *                                       interpreted as an octal number.
- *                       [^ntb0-7\n]  == the same character.  I.e., "*" == '*'
- */
-
-#define  is_octal_digit(c)           (((c)>='0') && ((c)<='7'))
-
-static char
-eat_escape_code(void)
-{
-    int c, coded_char;
-
-    c = input();
-
-    switch (c) {
-      case 0:  /* i.e., EOF */
-       unput(c);
-       return(c);
-      case '\n':
-       return(0);
-      case 'n':
-       return('\n');
-      case 't':
-       return('\t');
-      case 'b':
-       return('\b');
-      case '0':   case '1':   case '2':   case '3':
-      case '4':   case '5':   case '6':   case '7':
-       coded_char = c - '0';
-       c = input();
-       if (!is_octal_digit(c)) {
-           unput(c);
-           return(coded_char);
-       }
-       coded_char = coded_char*8 + c-'0';
-       c = input();
-       if (!is_octal_digit(c)) {
-           unput(c);
-           return(coded_char);
-       }
-       return(coded_char*8 + c-'0');
-      default:
-       return(c);
-    }
-}
-
-/*
- * eat_string - this routine eats characters allowing escape codes via '\\'
- *              until a '"' is eaten.  If no '"' is seen before a '\n' or
- *              the <EOF>, a parse_error is set & 0 is returned.  Otherwise,
- *              the string represented by what has been eaten is returned.
- *              I.e., 'hello \n there"' would cause "hello \n there" to be
- *              returned.  (thats not a <cr> in the first case, a <cr> in the
- *              second)  The returned string is on the heap & must be freed
- *              eventually.  This routine should be passed the line # that the
- *              string we are eating started on.
- */
-
-static char *
-eat_string(int starting_line)
-{
-    int c;
-    char buffer[500];
-    char *ptr = buffer;
-
-    for (;;) {
-       /*
-        * Get the next input character, handling EOF:
-        */
-       c = input();
-       if (!c) {
-           unput(c);
-           report_parse_error("unterminated string found beginning",
-                           starting_line);
-           return(0);
-       }
-
-       /*
-        * Deal with special characters ('\\', '"', and '\n'):
-        */
-       if (c=='\\') {
-           c = eat_escape_code();
-           if (!c)
-             continue;
-       } else if (c == '"') {
-           *ptr = 0;
-           return(string_Copy(buffer));
-       } else if (c == '\n') {
-           unput(c);        /* fix line # reference to right line # */
-           report_parse_error("carriage return found in string", yylineno);
-           return(0);
-       }
-
-       /*
-        * Add the character c to the current string:
-        */
-       *ptr = c;
-       ptr++;
-
-       /*
-        * If out of buffer space, do a recursive call then
-        * concatanate the result to the string read in so far to get the
-        * entire string and return that:
-        */
-       if (ptr>buffer+sizeof(buffer)-20) {
-           string rest_of_string, result;
-
-           rest_of_string = eat_string(starting_line);
-           if (!rest_of_string)
-             return(0);
-           
-           *ptr = 0;
-           result = string_Concat(buffer, rest_of_string);
-           free(rest_of_string);
-           return(result);
-       }
-    }
-}
-
-/*
- * eat_show_line - internal routine for eat_show:
- *
- *        This routine reads in a physical line of text allowing escape
- *    codes via '\\'.  If the line ends with a newline, the newline is eaten.
- *    If the line ends with a EOF, the EOF is not eaten.  The string
- *    represented by what has been eaten is returned.  The returned string
- *    is on the heap & must be freed eventually.  If test_for_endshow is
- *    true and the line read in starts off with "endshow" exactly
- *    (i.e., no escape codes) followed by any non-identifier-char, then
- *    instead of doing the above, we just eat the "endshow" & return 0.
- */
-
-static char *
-eat_show_line(int test_for_endshow)
-{
-    int c;
-    int saw_escape_code = 0;
-    int starting_line = yylineno;
-    char buffer[200];      /* This must be large enough to hold "endshow" */
-    char *ptr = buffer;
-
-    while (yylineno == starting_line) {
-       c = input();
-       if (!c) {
-           unput(c);
-           *ptr = '\0';
-           return(string_Copy(buffer));
-       } else if (c == '\\') {
-           saw_escape_code = 1;
-           c = eat_escape_code();
-           if (!c)
-             continue;
-       }
-
-       *ptr = c;
-       ptr++;
-
-       if ((ptr==buffer+strlen("endshow")) && test_for_endshow)
-         if (!strncmp(buffer, "endshow", strlen("endshow"))
-             && !saw_escape_code) {
-             c = input();
-             unput(c);
-             if (!is_identifier_char(c))
-               return(0);
-         }
-
-       if (ptr>buffer+sizeof(buffer)-2) {
-           string the_line;
-           string rest_of_line = eat_show_line(0);
-
-           *ptr = '\0';
-           the_line = string_Concat(buffer, rest_of_line);
-           free(rest_of_line);
-           return(the_line);
-       }
-    }
-
-    *ptr = '\0';
-    return(string_Copy(buffer));
-}
-
-/*
- * eat_til_endshow - this routine eats characters allowing escape codes via
- *                   '\\' up to a endshow\{nonalpha} found at the
- *                   start of a line not counting leading whitespace.
- *                   If <EOF> is seen before the terminator, a parse_error
- *                   is set & 0 returned.  Otherwise, the string represented
- *                   by what has been eaten (escape codes replaced by what
- *                   they stand for and leading spaces and tabs removed from
- *                   each physical line) is returned.  The returned string
- *                   is on the heap & must be freed eventually.  Note that
- *                   to embed endshow in a message, endsho\w can be used.
- *                   This routine should be passed the line # of the show
- *                   command it is being used to process for use in error
- *                   messages.
- */
-
-static char *
-eat_til_endshow(int start_line_no)
-{
-    register int c;
-    string text_so_far = string_Copy("");
-    string next_line;
-
-    for (;;) {
-       /*
-        * Skip the spaces & tabs at the start of the current line:
-        */
-       while ((c=input()), c==' ' || c=='\t') ;
-       unput(c);
-
-       /*
-        * Handle unterminated shows:
-        */
-       if (!c) {
-           report_parse_error("unterminated show beginning", start_line_no);
-           free(text_so_far);
-           return(0);
-       }
-
-       /*
-        * Read in rest of the line (including the <cr> at end), allowing
-        * for escape codes and checking for "endshow{nonalpha}" at the
-        * start of the line.  (Note: \<newline> is considered the
-        * end of a line here!)
-        */
-       next_line = eat_show_line(1);
-
-       if (!next_line)  /* i.e., is this the endshow line? */
-         return(text_so_far);
-
-       text_so_far = string_Concat2(text_so_far, next_line);
-       free(next_line);
-    }
-}
-
-/*
- * handle_show - this routine is called after "show"\{nonalpha} is
- *               found to handle up to the endshow.  The token # is
- *               returned.
- */
-
-static int
-handle_show(void)
-{
-    int c;
-    int start_line_no = yylineno;
-
-    /*
-     * Eat up ' ' and '\t's after show.  If the next character is a newline,
-     * eat it.  This is so we don't get an extra newline when we call
-     * eat_til_endshow:
-     */
-    while (c=input(), c==' ' || c=='\t') ;
-    if (c!='\n')
-      unput(c);
-
-    yylval.text = eat_til_endshow(start_line_no);
-    if (yylval.text)
-      return(SHOW);
-    else
-      return(ERROR);
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*                         The main lexer itself:                           */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- * yylex - performs as per. the yacc manual's requirements
- */
-
-int yylex(void)
-{
-    register int c, last_char;
-    register char *ptr;
-    int start_line_no;
-    int_dictionary_binding *binding;
-    char varname[MAX_IDENTIFIER_LENGTH+1];
-
-    for (;;) {
-       switch (c = input()) {
-
-           /*
-            * Skip whitespace:
-            */
-         case ' ':   case '\t':   case '\n':
-           continue;
-
-           /*
-            * '#' comments out everything up to the and including
-            * the next <cr>:
-            */
-         case '#':
-           while ( (c=input()) && (c!='\n') ) ;
-           if (!c)
-             unput(c);
-           continue;
-
-           /*
-            * Handle c-style comments.  Note that "/[^*]" is not the start
-            * of any valid token.
-            */
-         case '/':
-           start_line_no = yylineno;
-
-           /* verify that next character is a '*': */
-           if ((c=input()) != '*')
-             return(ERROR);
-
-           /* Scan until "*\/" or <EOF>: */
-           for (last_char=0; ; last_char=c) {
-               c = input();
-               if (c == '/' && (last_char=='*'))
-                 break;
-               if (!c) {
-                   unput(c);
-                   report_parse_error("unterminated c style comment found beginning", start_line_no);
-                   return(ERROR);
-               }
-           }
-           continue;
-
-           /*
-            * The following characters lex as themselves:
-            *   '+', '|', '&', '(', ')', '.', ',' and <EOF>:
-            */
-         case   0:   case '+':   case '|':   case '&':   case '(':
-         case ')':   case '.':   case ',':
-           return(c);
-
-           /*
-            * Handle "=[^~=]", "=~", and "==":
-            */
-         case '=':
-           switch (c = input()) {
-             case '~':
-               return(REGEQ);
-             case '=':
-               return(EQ);
-             default:
-               unput(c);
-               return('=');
-           }
-
-           /*
-            * Handle "![^~=]", "!~", and "!=":
-            */
-         case '!':
-           switch (c = input()) {
-             case '~':
-               return(REGNEQ);
-             case '=':
-               return(NEQ);
-             default:
-               unput(c);
-               return('!');
-           }
-
-           /*
-            * Handle identifiers and keywords:
-            *
-            * Note that the below set of characters is hard coded from
-            * is_identifier_char from parser.h.
-            */
-         case 'a':   case 'b':   case 'c':   case 'd':   case 'e':
-         case 'f':   case 'g':   case 'h':   case 'i':   case 'j':
-         case 'k':   case 'l':   case 'm':   case 'n':   case 'o':
-         case 'p':   case 'q':   case 'r':   case 's':   case 't':
-         case 'u':   case 'v':   case 'w':   case 'x':   case 'y':
-         case 'z':
-         case 'A':   case 'B':   case 'C':   case 'D':   case 'E':
-         case 'F':   case 'G':   case 'H':   case 'I':   case 'J':
-         case 'K':   case 'L':   case 'M':   case 'N':   case 'O':
-         case 'P':   case 'Q':   case 'R':   case 'S':   case 'T':
-         case 'U':   case 'V':   case 'W':   case 'X':   case 'Y':
-         case 'Z':
-         case '0':   case '1':   case '2':   case '3':   case '4':
-         case '5':   case '6':   case '7':   case '8':   case '9':
-         case '_':
-           /*
-            * Read in the first MAX_IDENTIFIER_LENGTH characters of the
-            * identifier into varname null terminated.  Eat
-            * the rest of the characters of the identifier:
-            */
-           for (ptr = varname;;) {
-               if (ptr<varname+MAX_IDENTIFIER_LENGTH)
-                 *(ptr++) = c;
-               c = input();
-               if (!is_identifier_char(c))
-                 break;
-           }
-           unput(c);
-           *ptr = '\0';
-
-           /*
-            * Look up the identifier in the keyword dictionary.
-            * If its a match, return the keyword's #.  In the case
-            * of show, call handle_show to do more processing.
-            * If not a match, treat as a variable name.
-            */
-           binding = int_dictionary_Lookup(keyword_dict, varname);
-           if (!binding) {
-               yylval.text = string_Copy(varname);
-               return(VARNAME);
-           }
-           if (binding->value == SHOW)
-             return(handle_show());
-           else
-             return(binding->value);
-
-           /*
-            * Handle "${identifier}".  Note that $ followed by a
-            * non-identifier character is not the start of any valid token.
-            */
-         case '$':
-           c = input();
-           if (!is_identifier_char(c))
-             return(ERROR);
-    
-           /*
-            * Read in the first MAX_IDENTIFIER_LENGTH characters of the
-            * identifier into varname null terminated.  Eat
-            * the rest of the characters of the identifier:
-            */
-           for (ptr = varname;;) {
-               if (ptr<varname+MAX_IDENTIFIER_LENGTH)
-                 *(ptr++) = c;
-               c = input();
-               if (!is_identifier_char(c))
-                 break;
-           }
-           unput(c);
-           *ptr = '\0';
-
-           yylval.text = string_Copy(varname);
-           return(VARREF);
-
-           /*
-            * Handle constant strings:
-            */
-         case '"':
-           yylval.text = eat_string(yylineno);
-           if (yylval.text)
-             return(STRING);
-           else
-             return(ERROR);
-
-           /*
-            * All other characters do not start valid tokens:
-            */
-         default:
-           return(ERROR);
-       }
-    }
-}
diff --git a/zephyr/zwgc/lexer.h b/zephyr/zwgc/lexer.h
deleted file mode 100644 (file)
index c56c0da..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: lexer.h 2146 2008-01-21 16:20:51Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef lexer_MODULE
-#define lexer_MODULE
-
-#include <ctype.h>
-
-/*
- * is_identifier_char(c) - is c a character that could be part of
- *                         an identifier?
- *
- * NOTE: this information is hardwired into yylex() in lexer.c!
- */
-
-#define  is_identifier_char(c)                    (isalnum(c) || (c)=='_')
-
-/*
- * The maximum # of significant letters in an identifier:
- *
- * Note: in order for all keywords to be recognized, this must be at least 20.
- */
-
-#define MAX_IDENTIFIER_LENGTH 128
-
-/*
- * yylineno - this holds the current line # we are on.  Updated automatically
- *            by yylex.
- */
-
-extern int yylineno;
-
-/*
- * lex_open - this routine [re]initializes the lexer & prepares it to lex
- *            a file.  Resets current line # to 1.
- */
-
-extern void lex_open(FILE *);
-
-/*
- * yylex - performs as per. the yacc manual's requirements
- */
-
-extern int yylex(void);
-
-#endif
diff --git a/zephyr/zwgc/main.c b/zephyr/zwgc/main.c
deleted file mode 100644 (file)
index ec56d8d..0000000
+++ /dev/null
@@ -1,724 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: main.c 2328 2009-03-22 17:34:39Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-#ifdef HAVE_ARES
-#include <ares.h>
-#endif
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_main_c[] = "$Id: main.c 2328 2009-03-22 17:34:39Z kcr $";
-#endif
-
-#include <netdb.h>
-#include <arpa/nameser.h>
-#include <sys/socket.h>
-#include <sys/resource.h>
-#include <zephyr/mit-copyright.h>
-#include <zephyr/zephyr.h>
-
-#include "new_memory.h"
-#include "zwgc.h"
-#include "parser.h"
-#include "node.h"
-#include "exec.h"
-#include "zephyr.h"
-#include "notice.h"
-#include "subscriptions.h"
-#include "file.h"
-#include "mux.h"
-#include "port.h"
-#include "variables.h"
-#include "main.h"
-#ifdef CMU_ZCTL_PUNT
-#include "int_dictionary.h"
-#endif
-#ifdef CMU_ZWGCPLUS
-#include "plus.h"
-int zwgcplus = 0;
-#endif
-
-void notice_handler(ZNotice_t *);
-static void process_notice(ZNotice_t *, char *);
-static void setup_signals(int);
-static void detach(void);
-static void signal_exit(int);
-#ifdef HAVE_ARES
-static void notice_callback(void *, int, int, char *, char *);
-#endif
-
-/*
- * Global zwgc-wide variables:
- */
-
-#ifdef DEBUG
-int zwgc_debug = 0;
-#endif
-
-static char *zwgc_version_string = "1.0";
-
-/*
- * description_filename_override - <<<>>>
- */
-
-static char *description_filename_override = NULL;
-
-/*
- * progname - <<<>>> export!
- */
-
-char *progname = NULL;
-
-/*
- * subscriptions_filename_override - <<<>>> export!
- */
-
-char *subscriptions_filename_override = NULL;
-
-/*
- * location_override - <<<>>> export!
- */
-
-char *location_override = NULL;
-
-#ifdef HAVE_ARES
-/*
- * achannel - <<<>>> export!
- */
-
-ares_channel achannel;
-#endif
-
-/****************************************************************************/
-/*                                                                          */
-/*             Code to deal with reading in the description file:           */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- * program - this holds a pointer to the node representation of the
- *           description file once it has been read in.
- */
-
-static struct _Node *program = NULL;
-
-/*
- * <<<>>>
- */
-
-static void
-fake_startup_packet(void)
-{
-    ZNotice_t *notice = (ZNotice_t *)malloc(sizeof(ZNotice_t));
-    struct timezone tz;
-    char msgbuf[BUFSIZ];
-    extern void Z_gettimeofday(struct _ZTimeval *, struct timezone *);
-
-    var_set_variable("version", zwgc_version_string);
-
-    (void) memset(notice, 0, sizeof(ZNotice_t));
-
-    notice->z_version = "";
-    notice->z_class = "WG_CTL_CLASS";
-    notice->z_class_inst = "WG_CTL_USER<<<>>>";
-    notice->z_opcode = "WG_STARTUP";
-    notice->z_default_format = "Zwgc mark II version $version now running...\n";
-    notice->z_recipient = "";
-    notice->z_sender = "ZWGC";
-    Z_gettimeofday(&notice->z_time, &tz);
-    notice->z_port = 0;
-    notice->z_kind = ACKED;
-    notice->z_auth = ZAUTH_YES;
-    notice->z_charset = ZCHARSET_UNKNOWN;
-    sprintf(msgbuf,"Zwgc mark II version %s now running...",
-           zwgc_version_string);
-    notice->z_message = msgbuf;
-    notice->z_message_len = strlen(notice->z_message)+1;
-    
-#ifdef CMU_ZWGCPLUS
-    list_add_notice(notice);
-    set_notice_fake(notice, 1);
-#endif
-    process_notice(notice, NULL);
-#ifdef CMU_ZWGCPLUS
-    list_del_notice(notice);
-#else
-    free(notice);
-#endif
-}
-
-static void
-read_in_description_file(void)
-{
-    FILE *input_file;
-    char defdesc[128];
-
-/*    var_clear_all_variables(); <<<>>> */
-
-    sprintf(defdesc, "%s/zephyr/%s", DATADIR, DEFDESC);
-    input_file = locate_file(description_filename_override, USRDESC, defdesc);
-    if (input_file)
-      program = parse_file(input_file);
-    else
-      program = NULL;
-    
-    fake_startup_packet();
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*            Code to deal with argument parsing & overall control:         */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- *    void usage()
- *        Effects: Prints out an usage message on stderr then exits the
- *                 program with error code 1.
- */
-
-void
-usage(void)
-{
-#ifdef DEBUG
-    fprintf(stderr, "\
-zwgc: usage: zwgc [-debug] [-f <filename>] [-subfile <filename>]\n\
-                  [-ttymode] [-nofork] [-reenter] [-loc text]\n\
-                  [-default <driver>] {-disable <driver>}*\n\
-                  [output driver options]\n");
-#else
-    fprintf(stderr, "\
-zwgc: usage: zwgc [-f <filename>] [-subfile <filename>]\n\
-                  [-ttymode] [-nofork] [-reenter] [-loc text]\n\
-                  [-default <driver>] {-disable <driver>}*\n\
-                  [output driver options]\n");
-#endif
-    exit(1);
-}
-
-/*
- * <<<>>>
- */
-
-static void
-run_initprogs(void)
-{
-    /*
-     * This code stolen from old zwgc: yuck.  Clean up & fix.  <<<>>>
-     * Should this fork instead of just systeming?
-     */
-
-    int status;
-    char *progname = ZGetVariable("initprogs");
-    
-    if (!progname)
-      return;
-    
-    status = system(progname);
-    if (status == 127) {
-       perror("zwgc initprog exec");
-       fprintf(stderr,"zwgc initprog of <%s> failed: no shell.\n",
-               progname);
-    } else if (status!=-1 && status>>8) {
-       perror("zwgc initprog exec");
-       fprintf(stderr,"zwgc initprog of <%s> failed with status [%d].\n",
-               progname, status>>8);
-    }
-}
-
-/*
- * main -- the program entry point.  Does parsing & top level control.
- */
-
-int
-main(int argc,
-     char **argv)
-{
-    char **new;
-    register char **current;
-    int dofork = 1;
-#ifdef HAVE_ARES
-    int status;
-#endif
-
-    progname = argv[0];
-
-    /*
-     * Process "-f <filename>", "-subfile <filename>", "-nofork",
-     * "-reenter" (which is ignored) and (if DEBUG) "-debug"
-     * arguments, removing then from argc, argv:
-     */
-    for (new=current=argv+1; *current; current++) {
-       if (string_Eq(*current, "-debug")) {
-           argc--;
-#ifdef DEBUG
-           zwgc_debug = 1;
-#endif
-       } else if (string_Eq(*current, "-f")) {
-           argc -= 2; current++;
-           if (!*current)
-             usage();
-           description_filename_override = *current;
-       } else if (string_Eq(*current, "-subfile")) {
-           argc -= 2; current++;
-           if (!*current)
-             usage();
-           subscriptions_filename_override = *current;
-       } else if (string_Eq(*current, "-nofork")) {
-           argc--;
-           dofork = 0;
-       } else if (string_Eq(*current, "-reenter")) {
-           argc--;                     /* just throw it away */
-       } else if (string_Eq(*current, "-loc")) {
-           argc -= 2; current++;
-           if (!*current)
-             usage();
-           location_override = *current;
-       } else
-         *(new)++ = *current;
-    }
-    *new = *current;
-
-#ifdef HAVE_ARES
-    /*
-     * Initialize resolver library
-     */
-    status = ares_init(&achannel);
-    if (status != ARES_SUCCESS) {
-       fprintf(stderr, "Couldn't initialize resolver: %s\n",
-               ares_strerror(status));
-       return(1);
-    }
-#endif
-
-    /*
-     * Initialize various subsystems in proper order:
-     */
-    dprintf("Initializing subsystems...\n"); /*<<<>>>*/
-#ifdef CMU_ZWGCPLUS
-    init_noticelist();
-#endif
-    mux_init();
-    var_clear_all_variables(); /* <<<>>> */
-    init_ports();       /* <<<>>> */
-    dprintf("Initializing standard ports...\n");
-    init_standard_ports(&argc, argv);
-    if (argc>1)
-      usage();
-    dprintf("Initializing zephyr...\n");
-    setup_signals(dofork);
-    zephyr_init(notice_handler);
-
-    if (dofork)
-       detach();
-    /*
-     * Run the initprogs program(s) now that we are all set to deal:
-     */
-    dprintf("Running initprogs program...\n");
-    run_initprogs();
-
-    dprintf("Test Zwgc parser.\n\n");
-    read_in_description_file();
-
-#ifdef CMU_ZWGCPLUS
-    if (strcmp(progname, "zwgcplus") == 0)
-      zwgcplus = 1;
-#endif
-
-    dprintf("Entering main loop\n");
-    mux_loop();
-
-    dprintf("Returning from main loop\n");
-    finalize_zephyr();
-
-    return(0);
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*               :               */
-/*                                                                          */
-/****************************************************************************/
-
-#define  USER_SUPPRESS     "SUPPRESS"
-#define  USER_UNSUPPRESS   "UNSUPPRESS"
-
-#ifdef CMU_ZCTL_PUNT
-#define  USER_LIST_SUPPRESSED "LIST-SUPPRESSED"
-
-#define PUNT_INC 1024
-extern int_dictionary puntable_addresses_dict;
-ZNotice_t punt_reply;
-
-void
-create_punt_reply(int_dictionary_binding *punt)
-{
-    string binding;
-    int key_len = strlen(punt->key);
-    char *tmp;
-    
-    if (!punt_reply.z_message) {
-       punt_reply.z_message = (char *)malloc(PUNT_INC);
-       punt_reply.z_message[0] = 0;
-    }
-    
-    if ((punt_reply.z_message_len + key_len + 1) / PUNT_INC > 
-       (punt_reply.z_message_len + PUNT_INC - 1) / PUNT_INC) {
-       char *new_message = (char *)malloc((punt_reply.z_message_len
-                                           / PUNT_INC + 1) * PUNT_INC);
-       
-       strcpy(new_message, punt_reply.z_message);
-       
-       free(punt_reply.z_message);
-       punt_reply.z_message = new_message;
-    }
-    tmp = punt_reply.z_message + strlen(punt_reply.z_message);
-    strcat (punt_reply.z_message, punt->key);
-    strcat (punt_reply.z_message, "\n");
-    punt_reply.z_message_len += key_len + 1;
-    
-    while (*tmp != '\001') tmp++;
-    *tmp = ',';
-    while (*tmp != '\001') tmp++;
-    *tmp = ',';
-}
-#endif /* CMU_ZCTL_PUNT */
-
-void
-notice_handler(ZNotice_t *notice)
-{
-    char node[MAXDNAME];
-
-#if defined(CMU_ZWGCPLUS)
-    list_add_notice(notice);
-#endif
-
-#ifdef HAVE_ARES
-    ares_getnameinfo(achannel,
-                    (const struct sockaddr *)&(notice->z_sender_sockaddr),
-                    notice->z_sender_sockaddr.sa.sa_family == AF_INET ?
-                    sizeof(struct sockaddr_in) :
-                    notice->z_sender_sockaddr.sa.sa_family == AF_INET6 ?
-                    sizeof(struct sockaddr_in6) :
-                    sizeof(notice->z_sender_sockaddr), ARES_NI_LOOKUPHOST,
-                    notice_callback, notice);
-    
-#else
-    getnameinfo((const struct sockaddr *)&(notice->z_sender_sockaddr),
-               sizeof(notice->z_sender_sockaddr),
-               node, sizeof(node), NULL, 0, 0);
-    
-    process_notice(notice, node);
-#ifdef CMU_ZWGCPLUS
-    /* Let list_del_notice clean up for us. */
-#else
-    ZFreeNotice(notice);
-    free(notice);
-#endif
-#endif
-}
-
-#ifdef HAVE_ARES
-/*
-static void
-notice_callback(void *arg,
-               int status,
-               int timeouts,
-               struct hostent *fromhost)
-*/
-static void
-notice_callback(void *arg,
-               int status,
-               int timeouts,
-               char *node,
-               char *service)
-{
-    ZNotice_t *notice = (ZNotice_t *) arg;
-
-#ifdef CMU_ZWGCPLUS
-    plus_set_hname(notice, node);
-#endif
-
-    process_notice(notice, node);
-#ifdef CMU_ZWGCPLUS
-    list_del_notice(notice);
-#else
-    ZFreeNotice(notice);
-    free(notice);
-#endif
-}
-#endif
-
-static void
-process_notice(ZNotice_t *notice,
-              char *hostname)
-{
-    char *control_opcode;
-
-    dprintf("Got a message\n");
-
-    control_opcode = decode_notice(notice, hostname);
-    if (control_opcode) {
-#ifdef DEBUG
-       printf("got control opcode <%s>.\n", control_opcode);
-#endif
-       if (!strcasecmp(control_opcode, USER_REREAD)) {
-           read_in_description_file();
-       } else if (!strcasecmp(control_opcode, USER_SHUTDOWN))
-         zwgc_shutdown();
-       else if (!strcasecmp(control_opcode, USER_STARTUP)) {
-#ifdef DEBUG_MEMORY
-           report_memory_usage(); /* <<<>>> */
-#endif
-           zwgc_startup();
-       } else if (!strcasecmp(control_opcode, USER_SUPPRESS)) {
-           string class = get_field(notice->z_message,
-                                    notice->z_message_len, 1);
-           string instance = get_field(notice->z_message,
-                                       notice->z_message_len, 2);
-           string recipient = get_field(notice->z_message,
-                                        notice->z_message_len, 3);
-           punt(class, instance, recipient);
-           free(class);
-           free(instance);
-           free(recipient);
-       } else if (!strcasecmp(control_opcode, USER_UNSUPPRESS)) {
-           string class = get_field(notice->z_message,
-                                    notice->z_message_len, 1);
-           string instance = get_field(notice->z_message,
-                                       notice->z_message_len, 2);
-           string recipient = get_field(notice->z_message,
-                                        notice->z_message_len, 3);
-           unpunt(class, instance, recipient);
-           free(class);
-           free(instance);
-           free(recipient);
-#ifdef CMU_ZCTL_PUNT
-        } else if (!strcasecmp(control_opcode, USER_LIST_SUPPRESSED)) {
-           struct sockaddr_in old, to;
-           int retval;
-           
-           if (!notice->z_port) {
-               printf("zwgc: can't reply to LIST-SUPPRESSED request\n");
-               return;
-           }
-           memset((char *) &punt_reply, 0, sizeof(ZNotice_t));
-           punt_reply.z_kind = CLIENTACK;
-           punt_reply.z_class = WG_CTL_CLASS;
-           punt_reply.z_class_inst = "WG_REPLY";
-           punt_reply.z_recipient = "zctl?";
-           punt_reply.z_sender = "Zwgc";
-           punt_reply.z_default_format = "";
-           punt_reply.z_opcode = USER_LIST_SUPPRESSED;
-           punt_reply.z_port = notice->z_port;
-           punt_reply.z_message = NULL;
-           punt_reply.z_message_len = 0;
-           
-           if (puntable_addresses_dict) {
-               int_dictionary_Enumerate(puntable_addresses_dict,
-                                        create_punt_reply);
-           }
-           
-           old = ZGetDestAddr();
-           to = old;
-           
-           to.sin_port = notice->z_port;
-           if ((retval = ZSetDestAddr(&to)) != ZERR_NONE) {
-               com_err("zwgc",retval,"while setting destination address");
-               exit(1);
-           }
-           
-           ZSendNotice(&punt_reply, ZNOAUTH);
-           
-           if ((retval = ZSetDestAddr(&old)) != ZERR_NONE) {
-               com_err("zwgc",retval,"while resetting destination address");
-               exit(1);
-           }
-           
-           if (punt_reply.z_message) {
-               free(punt_reply.z_message);
-               punt_reply.z_message = NULL;
-           }
-#endif
-       } else if (!strcasecmp(control_opcode, USER_EXIT)) {
-           signal_exit(0);
-       } else
-         printf("zwgc: unknown control opcode %s.\n", control_opcode);
-
-       goto cleanup;
-    }
-
-    if (!zwgc_active) {
-#ifdef DEBUG
-       if (zwgc_debug)
-         printf("NON-ACTIVE: PUNTED <%s>!!!!\n", notice->z_class_inst);
-#endif
-       goto cleanup;   
-    }
-    
-    if (puntable_address_p(notice->z_class,
-                          notice->z_class_inst,
-                          notice->z_recipient)) {
-#ifdef DEBUG
-       if (zwgc_debug)
-         printf("PUNTED <%s>!!!!\n", notice->z_class_inst);
-#endif
-       goto cleanup;
-    }
-
-    exec_process_packet(program, notice);
-  cleanup:
-    return;
-}
-
-#ifdef CMU_ZWGCPLUS
-void
-reprocess_notice(ZNotice_t *notice, char *hostname)
-{
-  list_add_notice(notice);
-  process_notice(notice, hostname);
-  list_del_notice(notice);
-}
-#endif
-
-/***************************************************************************/
-
-/*
- *
- */
-
-static void
-signal_exit(int ignored)
-{
-    mux_end_loop_p = 1;
-}
-
-/* clean up ALL the waiting children, in case we get hit with
-   multiple SIGCHLD's at once, and don't process in time. */
-static RETSIGTYPE
-signal_child(int ignored)
-{
-#ifdef HAVE_WAITPID
-  int status;
-#else
-  union wait status;
-#endif
-  int pid, old_errno = errno;
-
-  do {
-#ifdef HAVE_WAITPID
-      pid = waitpid(-1, &status, WNOHANG);
-#else
-      pid = wait3(&status, WNOHANG, (struct rusage *)0);
-#endif
-  } while (pid != 0 && pid != -1);
-  errno = old_errno;
-}
-
-/* rewrite the wgfile in case it has gone away */
-static RETSIGTYPE
-signal_usr1(int ignored)
-{
-    write_wgfile();
-}
-
-static void
-setup_signals(int dofork)
-{
-#ifdef _POSIX_VERSION
-    struct sigaction sa;
-
-    sigemptyset(&sa.sa_mask);
-    sa.sa_flags = 0;
-    
-    if (dofork) {
-       sa.sa_handler = SIG_IGN;
-       sigaction(SIGINT, &sa, (struct sigaction *)0);
-       sigaction(SIGTSTP, &sa, (struct sigaction *)0);
-       sigaction(SIGQUIT, &sa, (struct sigaction *)0);
-       sigaction(SIGTTOU, &sa, (struct sigaction *)0);
-    } else {
-       /* clean up on SIGINT; exiting on logout is the user's problem, now. */
-       sa.sa_handler = signal_exit;
-       sigaction(SIGINT, &sa, (struct sigaction *)0);
-    }
-
-    /* behavior never changes */
-    sa.sa_handler = signal_exit;
-    sigaction(SIGTERM, &sa, (struct sigaction *)0);
-    sigaction(SIGHUP, &sa, (struct sigaction *)0);
-
-    sa.sa_handler = SIG_IGN;
-    sigaction(SIGPIPE, &sa, (struct sigaction *)0);
-
-    sa.sa_handler = signal_child;
-    sigaction(SIGCHLD, &sa, (struct sigaction *)0);
-
-    sa.sa_handler = signal_usr1;
-    sigaction(SIGUSR1, &sa, (struct sigaction *)0);
-
-#else /* !POSIX */
-    if (dofork) {
-       /* Ignore keyboard signals if forking.  Bad things will happen. */
-       signal(SIGINT, SIG_IGN);
-       signal(SIGTSTP, SIG_IGN);
-       signal(SIGTTOU, SIG_IGN);
-       signal(SIGQUIT, SIG_IGN);
-    } else {
-       /* clean up on SIGINT; exiting on logout is the user's problem, now. */
-       signal(SIGINT, signal_exit);
-    }
-    
-    /* behavior never changes */
-    signal(SIGTERM, signal_exit);
-    signal(SIGHUP, signal_exit);
-    signal(SIGCHLD, signal_child);
-    signal(SIGPIPE, SIG_IGN);          /* so that Xlib gets an error */
-    signal(SIGUSR1, signal_usr1);
-#endif
-}
-
-/* detach() taken from old zwgc, with lots of stuff ripped out */
-
-static void
-detach(void)
-{
-  /* detach from terminal and fork. */
-  register int i;
-
-  /* Attempt to join the process group of the session leader.  This
-   * will get us a HUP if the session leader is in the foreground at
-   * logout time (which is often the case) or if the shell is running
-   * under telnetd or xterm (both of which HUP the process group of
-   * their child process).  If we have getsid(), that's the best way
-   * of finding the session leader; otherwise use the process group of
-   * the parent process, which is a good guess. */
-#if defined(HAVE_GETSID)
-
-  setpgid(0, getsid(0));
-#elif defined(HAVE_GETPGID)
-  setpgid(0, getpgid(getppid()));
-#elif !defined(GETPGRP_VOID)
-  setpgid(0, getpgrp(getppid()));
-#endif
-
-  /* fork off and let parent exit... */
-  i = fork();
-  if (i) {
-      if (i < 0) {
-         perror("zwgc: cannot fork, aborting:");
-         exit(1);
-      }
-      exit(0);
-  }
-}      
diff --git a/zephyr/zwgc/main.h b/zephyr/zwgc/main.h
deleted file mode 100644 (file)
index 8a465d5..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: main.h 2328 2009-03-22 17:34:39Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef main_MODULE
-#define main_MODULE
-
-#ifdef HAVE_ARES
-#include <ares.h>
-
-extern ares_channel achannel;
-#endif
-
-extern char *progname;
-extern char *subscriptions_filename_override;
-extern char *location_override;
-
-/*
- *    void usage()
- *        Effects: Prints out a usage message on stderr then exits the
- *                 program with error code 1.
- */
-
-extern void usage(void);
-
-#ifdef CMU_ZWGCPLUS
-extern void reprocess_notice(ZNotice_t *notice, char *hostname);
-#endif
-
-/* USRDESC points to a file (relative to user's homedir) which has a user's
-   description file */
-
-#define USRDESC ".zwgc.desc"
-
-/* DEFDESC points to a file (relative to the data directory) which has the
- * system default description file */
-
-#ifndef DEFDESC
-#define DEFDESC "zwgc.desc"
-#endif
-
-#endif
diff --git a/zephyr/zwgc/mux.c b/zephyr/zwgc/mux.c
deleted file mode 100644 (file)
index 733b2d1..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: mux.c 2328 2009-03-22 17:34:39Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_mux_c[] = "$Id: mux.c 2328 2009-03-22 17:34:39Z kcr $";
-#endif
-
-/****************************************************************************/
-/*                                                                          */
-/*        Module containing code to wait on multiple file descriptors:      */
-/*                                                                          */
-/****************************************************************************/
-
-#include <zephyr/zephyr.h>
-#include "main.h"
-#include "mux.h"
-#include "error.h"
-#include "zwgc.h"
-#include "pointer.h"
-#ifdef CMU_ZWGCPLUS
-#include "plus.h"
-#endif
-
-#ifdef _AIX
-#include <sys/select.h>
-#endif
-
-/*
- * mux_end_loop_p - Setting this to true during a mux_loop causes the mux_loop
- *                  to be exited.
- */
-
-int mux_end_loop_p;
-
-/*
- * have_tty - is defined to be true if there is a controlling tty for this
- *           process.  When we can no longer access the controlling tty,
- *           the process will die.
- */
-
-static int have_tty = 0;
-
-/*
- * max_source - the maximum file descriptor that a handler was ever
- *              registered for:
- */
-
-static int max_source = -1;
-
-/*
- * Which file descriptors we're waiting on for input & the accompanying
- * input handlers & their arguments:
- */
-
-static fd_set input_sources;
-static void (*input_handler[MAX_SOURCES])(void *);
-static pointer input_handler_arg[MAX_SOURCES];
-
-static int check_tty(void);
-
-/*
- *    void mux_init()
- *        Requires: mux_init has never been called before
- *        Effects: Initializes the mux module.  Must be called before
- *                 any other mux call.
- */
-
-void
-mux_init(void)
-{
-    int i;
-
-    FD_ZERO(&input_sources);
-    
-    for (i=0; i<MAX_SOURCES; i++)
-      input_handler[i] = NULL;
-
-    have_tty = check_tty();
-}
-
-/*
- *    void mux_add_input_source(int descriptor; void (*handler)(); pointer arg)
- *        Requires: 0<=descriptor<MAX_SOURCES, mux_init has been called
- *        Modifies: Removes the previous input handler if any for descriptor
- *        Effects: Registers handler as the input handler for file descriptor
- *                 descriptor.  When mux_loop() is running and input is
- *                 available on descriptor, handler will be called with
- *                 argument arg.
- */
-
-void
-mux_add_input_source(int descriptor,
-                         void (*handler)(void *),
-                         pointer arg)
-{
-#ifdef DEBUG
-    if(descriptor < 0 || descriptor >= MAX_SOURCES)
-      abort(); /* <<<>>> */
-#endif
-    
-    input_handler[descriptor] = handler;
-    input_handler_arg[descriptor] = arg;
-    FD_SET(descriptor, &input_sources);
-    if(descriptor > max_source)
-      max_source = descriptor;
-}
-
-/*
- *    void mux_loop()
- *        Requires: mux_init has been called.
- *        Effects: Loops until mux_end_loop_p becomes true.  (Sets
- *                 mux_end_loop_p false to start).  Whenever input is
- *                 available on an input source which has a registered
- *                 handler (see mux_add_input_source), that handler is
- *                 called with its argument.  It is guaranteed that if
- *                 input is available on a source, its respective input
- *                 handler, if any, will eventually be called.  No other
- *                 ordering guarantees are made.  When some signal handler
- *                 or input handler eventually sets mux_end_loop_p to
- *                 true, we return.
- */
-
-void
-mux_loop(void)
-{
-    int i, nfds;
-    fd_set inputs, outputs;
-    struct timeval tv, *tvp;
-
-    mux_end_loop_p = 0;
-
-    for (;;) {
-       /*
-        * Exit if mux_end_loop_p has been set to true by a handler:
-        */
-       if (mux_end_loop_p)
-         break;
-       tvp = NULL;
-       tv.tv_sec = 0;
-       if (have_tty) {
-#ifdef CMU_ZWGCPLUS
-            tv.tv_sec = plus_timequeue_events();
-           if (tv.tv_sec > 10) tv.tv_sec = 10;
-#else
-           tv.tv_sec = 10;
-#endif
-           tv.tv_usec = 0;
-#ifdef CMU_ZWGCPLUS
-       } else {
-          tv.tv_sec = plus_timequeue_events();
-          tv.tv_usec = 0;
-#endif
-       }
-       if (tv.tv_sec)
-        tvp = &tv;
-
-       /*
-        * Do a select on all the file descriptors we care about to
-        * wait until at least one of them has input available:
-        */
-       inputs = input_sources;
-       FD_ZERO(&outputs);
-
-#ifdef HAVE_ARES
-       nfds = ares_fds(achannel, &inputs, &outputs);
-       if (nfds < max_source + 1)
-           nfds = max_source + 1;
-       tvp = ares_timeout(achannel, tvp, &tv);
-#else
-       nfds = max_source + 1;
-#endif
-
-       i = select(nfds, &inputs, &outputs, NULL, tvp);
-
-       if (i == -1) {
-           if (errno == EINTR)
-               continue;    /* on a signal restart checking mux_loop_end_p */
-           else
-               FATAL_TRAP( errno, "while selecting" );
-       }
-       else if (i == 0) {
-           if (have_tty && !check_tty()) {
-               mux_end_loop_p = 1;
-               continue;
-           }
-       }
-
-#ifdef HAVE_ARES
-       ares_process(achannel, &inputs, &outputs);
-#endif
-
-       /*
-        * Call all input handlers whose corresponding file descriptors have
-        * input:
-        */
-       for(i=0; i<=max_source; i++)
-         if (FD_ISSET(i, &inputs) && input_handler[i]) {
-#ifdef DEBUG
-             if (zwgc_debug)
-               fprintf(stderr,
-                       "mux_loop...activity on fd %d, calling %x(%x)\n",
-                       i,input_handler[i],input_handler_arg[i]);
-#endif
-             input_handler[i](input_handler_arg[i]);
-         }
-    }
-}
-
-static int
-check_tty(void)
-{
-    register int result;
-    int pgrp;
-    int tty = open("/dev/tty", O_RDONLY|O_NDELAY);
-
-    if (tty < 0) return 0;
-
-#if defined(_POSIX_VERSION)
-    result = ( ((pgrp = tcgetpgrp(tty)) < 0)      ? 0 : 1 );
-#else
-    result = ( (ioctl(tty, TIOCGPGRP, &pgrp) < 0) ? 0 : 1 );
-#endif
-
-    close(tty);
-    return(result);
-}
diff --git a/zephyr/zwgc/mux.h b/zephyr/zwgc/mux.h
deleted file mode 100644 (file)
index 4364871..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: mux.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef mux_MODULE
-#define mux_MODULE
-
-/*
- * MAX_SOURCES - the greatest file descriptor # that can be waited on minus one
- *               This can not exceed FD_SETSIZE from <sys/types.h>.
- */
-
-#define  MAX_SOURCES  32
-
-/*
- * mux_end_loop_p - Setting this to true during a mux_loop causes the mux_loop
- *                  to be exited.
- */
-
-extern int mux_end_loop_p;
-
-/*
- *    void mux_init()
- *        Requires: mux_init has never been called before
- *        Effects: Initializes the mux module.  Must be called before
- *                 any other mux call.
- */
-
-extern void mux_init(void);
-
-/*
- *    void mux_add_input_source(int descriptior; void (*handler)(); void *arg)
- *        Requires: 0<=descriptor<MAX_SOURCES, mux_init has been called
- *        Modifies: Removes the previous input handler if any for descriptor
- *        Effects: Registers handler as the input handler for file descriptor
- *                 descriptor.  When mux_loop() is running and input is
- *                 available on descriptor, handler will be called with
- *                 argument arg.
- */
-
-extern void mux_add_input_source(int, void (*)(void *), void *);
-
-/*
- *    void mux_loop()
- *        Requires: mux_init has been called.
- *        Effects: Loops until mux_end_loop_p becomes true.  (Sets
- *                 mux_end_loop_p false to start).  Whenever input is
- *                 available on an input source which has a registered
- *                 handler (see mux_add_input_source), that handler is
- *                 called with its argument.  It is guarenteed that if
- *                 input is available on a source, its respective input
- *                 handler, if any, will eventually be called.  No other
- *                 ordering guarentees are made.  When some signal handler
- *                 or input handler eventually sets mux_end_loop_p to
- *                 true, we return.
- */
-
-extern void mux_loop(void);
-
-#endif
diff --git a/zephyr/zwgc/new_memory.c b/zephyr/zwgc/new_memory.c
deleted file mode 100644 (file)
index 22299b6..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: new_memory.c 2091 2007-12-20 01:17:23Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_new_memory_c[] = "$Id: new_memory.c 2091 2007-12-20 01:17:23Z kcr $";
-#endif
-
-#if !defined(SABER) && (defined(DEBUG) || defined(MEMORY_DEBUG))
-
-/*
- * memory - module wrapping debugging code around normal malloc/free/etc.
- *          routines.
- *
- * Overview:
- *
- *        ...
- */
-
-#define  memory__PROVIDER
-#include "new_memory.h"
-
-/*
- *
- */
-#ifdef DEBUG
-#define  assert(x)          if (!(x)) abort()
-#else
-#define  assert(x)          
-#endif
-
-/*
- *
- */
-#ifdef DEBUG_MEMORY
-
-extern void record_request();
-char *current_module = 0;
-int current_line = -1;
-
-#endif
-
-/*
- *    string string_CreateFromData(char *data, int length):
- *        Requires: data[0], data[1], ..., data[length-1] != 0
- *        Effects: Takes the first length characters at data and
- *                 creates a string containing them.  The returned string
- *                 is on the heap & must be freed eventually.
- *                 I.e., if passed "foobar" and 3, it would return
- *                 string_Copy("foo").
- */
-
-char *memory__malloc(size)
-     unsigned size;
-{
-    char *result;
-
-    result = malloc(size + memory__size_of_header);
-    if (!result)
-      abort();       /* <<<>>> */
-
-#ifdef DEBUG_MEMORY
-    ((memory_block_header *)result)->size = size;
-    ((memory_block_header *)result)->creating_module = current_module;
-    ((memory_block_header *)result)->line_number_in_creating_module =
-      current_line;
-    ((memory_block_header *)result)->check_field = CHECK_FIELD_VALUE;
-    result += memory__size_of_header;
-
-    record_request(current_module, current_line, 1, size);
-#endif
-
-    return(result);
-}
-
-char *memory__realloc(ptr, size)
-     char *ptr;
-     unsigned size;
-{
-    char *result;
-
-    assert(ptr);
-
-#ifdef DEBUG_MEMORY
-    if (!memory__on_heap_p(ptr)) {
-       printf("realloced non-memory block in %s on line %d!\n",
-              current_module, current_line);
-       fflush(stdout);
-       return(realloc(ptr, size));
-    }
-#endif
-
-    result = realloc(ptr-memory__size_of_header, size+memory__size_of_header);
-    if (!result)
-      abort(); /* <<<>>> */
-
-    return(result+memory__size_of_header);
-}
-
-char *memory__calloc(nelem, elsize)
-     unsigned nelem;
-     unsigned elsize;
-{
-    char *result;
-
-#ifdef DEBUG_MEMORY
-    printf("in calloc\n"); fflush(stdout);
-#endif
-
-    abort();
-
-#ifdef FRED
-    result = calloc(nelem, elsize);
-    if (!result)
-      abort();
-
-    record_request(1);
-#endif
-
-    return(result);
-}
-
-void memory__free(ptr)
-     char *ptr;
-{
-    assert(ptr);
-
-#ifdef DEBUG_MEMORY
-    if (!memory__on_heap_p(ptr)) {
-       printf("freed non-memory block in %s on line %d!\n", current_module,
-              current_line);
-       fflush(stdout);
-       (void)free(ptr);
-       return;
-    }
-
-    record_request(memory__get_header(ptr)->creating_module,
-                  memory__get_header(ptr)->line_number_in_creating_module,
-                  -1,
-                  memory__get_header(ptr)->size);
-#endif
-
-    (void)free(ptr-memory__size_of_header);
-}
-
-#ifdef DEBUG_MEMORY
-
-#include "int_dictionary.h"
-
-static int request_off = 0;
-static int_dictionary requests = 0;
-static int outstanding_requests = 0;
-static int outstanding_memory = 0;
-
-void record_request(module, line_number, dir, size)
-     char *module;
-     int line_number;
-     int dir;
-     unsigned int size;
-{
-    int_dictionary_binding *binding;
-    int already_exists;
-#ifdef LINE
-    char buffer[20];
-#endif
-
-    if (request_off)
-      return;
-    request_off = 1;
-
-    if (!requests)
-      requests = int_dictionary_Create(101);
-
-#ifdef LINE
-    module = string_Concat(module, ":");
-    sprintf(buffer, "%d", line_number);
-    module = string_Concat2(module, buffer);
-#endif
-
-    binding = int_dictionary_Define(requests, module, &already_exists);
-    if (!already_exists)
-      binding->value = 0;
-
-#ifdef LINE
-    free(module);
-#endif
-
-    binding->value += dir;
-    outstanding_requests += dir;
-    outstanding_memory += size*dir;
-
-    request_off = 0;
-}
-
-void proc(binding)
-     int_dictionary_binding *binding;
-{
-    if (binding->value)
-      printf("    %-30s %6d blocks allocated\n", binding->key, binding->value);
-}
-
-void report_memory_usage()
-{
-    printf("\n# of blocks on the heap = %d\n", outstanding_requests);
-    printf("Total heap space in use: %d bytes\n", outstanding_memory);
-
-    printf("\nHeap Allocations by module:\n");
-    int_dictionary_Enumerate(requests, proc);
-    printf("\n");
-
-    fflush(stdout);
-}
-
-void set_module(file, line)
-     char *file;
-     int line;
-{
-    if (request_off)
-      return;
-
-    if (!strcmp(file, "new_string.c"))
-      return;
-    if (!strcmp(file, "string_dictionary_aux.c"))
-      return;
-
-    current_line = line;
-    current_module = file;
-}
-
-#endif
-
-#endif /* SABER */
diff --git a/zephyr/zwgc/new_memory.h b/zephyr/zwgc/new_memory.h
deleted file mode 100644 (file)
index 54d609d..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: new_memory.h 2091 2007-12-20 01:17:23Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-/* This entire module goes out the window in saber */
-#if !defined(SABER) && (defined(DEBUG) || defined(DEBUG_MEMORY))
-
-#ifndef memory_MODULE
-#define memory_MODULE
-
-extern char *memory__malloc();           /* PRIVATE */
-extern char *memory__realloc();          /* PRIVATE */
-extern char *memory__calloc();           /* PRIVATE */
-extern void memory__free();              /* PRIVATE */
-
-#ifdef DEBUG_MEMORY
-
-#define  CHECK_FIELD_VALUE     0xe5e7e3e9
-
-typedef struct _memory_block_header {
-    unsigned size;
-    char *creating_module;
-    int line_number_in_creating_module;
-    unsigned int check_field;
-} memory_block_header;
-
-#define  memory__size_of_header    (sizeof(struct _memory_block_header))
-
-#define  memory__get_header(block) \
-  ((struct _memory_block_header *)((block)-memory__size_of_header))
-
-#define  memory__on_heap_p(block)  \
-  (memory__get_header(block)->check_field==CHECK_FIELD_VALUE)
-
-#else
-
-#define  memory__size_of_header     0
-
-#define  memory__on_heap_p(block)   1
-
-#endif
-
-/*
- *    int string_Length(string s):
- *        Effects: Returns the number of non-null characters in s.
- */
-
-#ifndef memory__PROVIDER
-#ifdef  DEBUG_MEMORY
-
-extern char *current_module;
-extern void set_module();
-
-#define  malloc(size)               (set_module(__FILE__,__LINE__),\
-                                    memory__malloc(size))
-#define  realloc(ptr, size)         (set_module(__FILE__,__LINE__),\
-                                    memory__realloc((char *) ptr, size))
-#define  calloc(nelem, elsize)      (set_module(__FILE__,__LINE__),\
-                                    memory__calloc(nelem, elsize))
-#define  free(ptr)                  (set_module(__FILE__,__LINE__),\
-                                    memory__free((char *) ptr))
-#else
-
-#define  malloc(size)               memory__malloc(size)
-#define  realloc(ptr, size)         memory__realloc((char *) ptr, size)
-#define  calloc(nelem, elsize)      memory__calloc(nelem, elsize)
-#define  free(ptr)                  memory__free((char *) ptr)
-
-#endif  /* DEBUG_MEMORY */
-
-#endif  /* memory__PROVIDER */
-
-#endif  /* memory_MODULE */
-
-#endif  /* SABER */
diff --git a/zephyr/zwgc/new_string.c b/zephyr/zwgc/new_string.c
deleted file mode 100644 (file)
index ea27439..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: new_string.c 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_new_string_c[] = "$Id: new_string.c 2133 2008-01-21 03:11:44Z kcr $";
-#endif
-
-/*
- * string - a module providing operations on C strings.  (i.e., char *'s)
- *
- * Overview:
- *
- *        A string is a standard C string.  I.e., a char pointer to a
- *    null-terminated sequence of characters.  0 is NOT considered a valid
- *    string!  Various operations are available.  See the string_spec file
- *    for details.
- *
- *    Note: This module assumes that malloc NEVER returns 0 for reasonable
- *          requests.  It is the users responsibility to either ensure that
- *          this happens or supply a version of malloc with error
- *          handling.
- *
- *    Some strings are mutable.
- */
-
-#ifdef DEBUG
-#define  assert(x)          if (!(x)) abort()
-#else
-#define  assert(x)          
-#endif
-
-#include "new_memory.h"
-
-#define string_Length(s) strlen(s)
-typedef char *string;
-
-/*
- *    string string_CreateFromData(char *data, int length):
- *        Requires: data[0], data[1], ..., data[length-1] != 0
- *        Effects: Takes the first length characters at data and
- *                 creates a string containing them.  The returned string
- *                 is on the heap & must be freed eventually.
- *                 I.e., if passed "foobar" and 3, it would return
- *                 string_Copy("foo").
- */
-
-string string__CreateFromData(char *data, int length)
-{
-    string result;
-
-    assert(length>=0);
-
-    result = (string)malloc(length+1);
-    assert(result);
-
-    (void) memcpy(result, data, length);
-    result[length] = 0;
-
-    return(result);
-}
-
-/*
- *    string string_Copy(string s):
- *        Effects: Returns a copy of s on the heap.  The copy must be
- *                 freed eventually.
- */
-
-string
-string__Copy(string s)
-{
-    int length;
-    string result;
-
-    assert(s);
-
-    length = string_Length(s)+1;
-    result = (string)malloc(length);
-    assert(result);
-
-    (void) memcpy(result, s, length);
-    return(result);
-}
-
-/*
- *    string string_Concat(string a, b):
- *        Effects: Returns a string equal to a concatenated to b.
- *                 The returned string is on the heap and must be
- *                 freed eventually.  I.e., given "abc" and "def",
- *                 returns string_Copy("abcdef").
- */
-
-string
-string__Concat(string a,
-              string b)
-{
-    string result;
-    int a_length, b_size, result_size;
-
-    a_length = string_Length(a);
-    b_size = string_Length(b)+1;
-    result_size = a_length+b_size;
-    result = (string)malloc(result_size);
-    assert(result);
-
-    (void) memcpy(result, a, a_length);
-    (void) memcpy(result+a_length, b, b_size);
-
-    return(result);
-}
-
-/*
- *    string string_Concat2(string a, b):
- *        Modifies: a
- *        Requires: a is on the heap, b does not point into a.
- *        Effects: Equivalent to:
- *                     string temp;
- *                     temp = string_Concat(a,b);
- *                     free(a);
- *                     return(temp);
- *                 only faster.  I.e., uses realloc instead of malloc+memcpy.
- */
-
-string
-string__Concat2(string a,
-               string b)
-{
-    int a_length = string_Length(a);
-    int b_size = string_Length(b)+1;
-
-#ifdef DEBUG_MEMORY
-    assert(memory__on_heap_p(a));
-#endif
-
-    a = (string)realloc(a, a_length+b_size);
-    assert(a);
-    (void) memcpy(a+a_length, b, b_size);
-
-    return(a);
-}
-
-/*
- *    string string_Downcase(string s):
- *        Modifies: s
- *        Effects: Modifies s by changing every uppercase character in s
- *                 to the corresponding lowercase character.  Nothing else
- *                 is changed.  I.e., "FoObAr19." is changed to "foobar19.".
- *                 S is returned as a convenience.
- */
-
-string
-string_Downcase(string s)
-{
-    char *ptr;
-
-    for (ptr=s; *ptr; ptr++) {
-       if (isupper(*ptr))
-         *ptr = tolower(*ptr);
-    }
-
-    return(s);
-}
-
-/*
- *    string string_Upcase(string s):
- *        Modifies: s
- *        Effects: Modifies s by changing every lowercase character in s
- *                 to the corresponding uppercase character.  Nothing else
- *                 is changed.  I.e., "FoObAr19." is changed to "FOOBAR19.".
- *                 S is returned as a convenience.
- */
-
-string
-string_Upcase(string s)
-{
-    char *ptr;
-
-    for (ptr=s; *ptr; ptr++) {
-       if (islower(*ptr))
-         *ptr = toupper(*ptr);
-    }
-
-    return(s);
-}
diff --git a/zephyr/zwgc/new_string.h b/zephyr/zwgc/new_string.h
deleted file mode 100644 (file)
index 1502c73..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: new_string.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#ifndef string_TYPE
-#define string_TYPE
-
-#include <string.h>
-#include "new_memory.h"
-
-typedef char *string;
-
-/*
- *    int string_Length(string s):
- *        Effects: Returns the number of non-null characters in s.
- */
-
-#define string_Length(s) strlen(s)
-
-/*
- *    int string_Eq(string a, b):
- *        Effects: Returns true iff strings a & b are equal.  I.e., have the
- *                 same character contents.
- */
-
-#define string_Eq(a,b) (!strcmp(a,b))
-
-/*
- *    int string_Neq(string a, b):
- *        Effects: Returns true iff strings a & b are not equal.
- */
-
-#define string_Neq(a,b) (strcmp(a,b))
-
-/*
- *    string string_CreateFromData(char *data, int length):
- *        Requires: data[0], data[1], ..., data[length-1] != 0
- *        Effects: Takes the first length characters at data and
- *                 creates a string containing them.  The returned string
- *                 is on the heap & must be freed eventually.
- *                 I.e., if passed "foobar" and 3, it would return
- *                 string_Copy("foo").
- */
-
-extern string string__CreateFromData(char *, int);
-#ifdef DEBUG_MEMORY
-#define string_CreateFromData(data,length) (set_module(__FILE__,__LINE__),\
-                                   string__CreateFromData(data,length))
-#else
-#define string_CreateFromData(data,length)  string__CreateFromData(data,length)
-#endif
-
-/*
- *    string string_Copy(string s):
- *        Effects: Returns a copy of s on the heap.  The copy must be
- *                 freed eventually.
- */
-
-extern string string__Copy(string);
-#ifdef DEBUG_MEMORY
-#define string_Copy(data)  (set_module(__FILE__,__LINE__),\
-                           string__Copy(data))
-#else
-#define string_Copy(data)  string__Copy(data)
-#endif
-
-/*
- *    string string_Concat(string a, b):
- *        Effects: Returns a string equal to a concatenated to b.
- *                 The returned string is on the heap and must be
- *                 freed eventually.  I.e., given "abc" and "def",
- *                 returns string_Copy("abcdef").
- */
-
-extern string string__Concat(string, string);
-#ifdef DEBUG_MEMORY
-#define string_Concat(a,b)  (set_module(__FILE__,__LINE__),\
-                            string__Concat(a,b))
-#else
-#define string_Concat(a,b)  string__Concat(a,b)
-#endif
-    
-/*
- *    string string_Concat2(string a, b):
- *        Modifies: a
- *        Requires: a is on the heap, b does not point into a.
- *        Effects: Equivalent to:
- *                     string temp;
- *                     temp = string_Concat(a,b);
- *                     free(a);
- *                     return(temp);
- *                 only faster.  I.e., uses realloc instead of malloc+bcopy.
- */
-
-extern string string__Concat2(string, string);
-#ifdef DEBUG_MEMORY
-#define string_Concat2(a,b)  (set_module(__FILE__,__LINE__),\
-                             string__Concat2(a,b))
-#else
-#define string_Concat2(a,b)  string__Concat2(a,b)
-#endif
-
-/*
- *    string string_Downcase(string s):
- *        Modifies: s
- *        Effects: Modifies s by changing every uppercase character in s
- *                 to the corresponding lowercase character.  Nothing else
- *                 is changed.  I.e., "FoObAr19." is changed to "foobar19.".
- *                 S is returned as a convenience.
- */
-
-extern string string_Downcase(string);
-
-/*
- *    string string_Upcase(string s):
- *        Modifies: s
- *        Effects: Modifies s by changing every lowercase character in s
- *                 to the corresponding uppercase character.  Nothing else
- *                 is changed.  I.e., "FoObAr19." is changed to "FOOBAR19.".
- *                 S is returned as a convenience.
- */
-
-extern string string_Upcase(string);
-
-#endif
diff --git a/zephyr/zwgc/node.c b/zephyr/zwgc/node.c
deleted file mode 100644 (file)
index a082ebd..0000000
+++ /dev/null
@@ -1,331 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: node.c 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_node_c[] = "$Id: node.c 2133 2008-01-21 03:11:44Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-#include "new_memory.h"
-#include "node.h"
-
-/****************************************************************************/
-/*                                                                          */
-/*            Internal node construction & destruction functions:           */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- * NODE_BATCH_SIZE - the number of nodes to malloc at once to save overhead:
- */
-
-#define  NODE_BATCH_SIZE    100
-
-/*
- * The nodes we have malloced are kept in a linked list of bunches of
- * NODE_BATCH_SIZE nodes.  Nodes points to the first bunch on the list
- * and current_bunch to the last.  All nodes from the first one in the first
- * bunch to the last_node_in_current_bunch_used'th one in the last bunch
- * are in use.  The others have not been used yet.
- */
-
-static struct _bunch_of_nodes {
-    struct _bunch_of_nodes *next_bunch;
-    Node nodes[NODE_BATCH_SIZE];
-} *nodes = NULL;
-static struct _bunch_of_nodes *current_bunch = NULL;
-static int last_node_in_current_bunch_used = -1;
-
-/*
- *  Internal Routine:
- *
- *    Node *node_create(int opcode)
- *        Effects: Creates a node with opcode opcode and returns a pointer
- *                 to it.  The next pointer of the returned node is NULL.
- *                 If the opcode is STRING_CONSTANT_OPCODE the caller must
- *                 ensure that the string_constant field points to a valid
- *                 string on the heap when node_DestroyAllNodes is called.
- */
-
-static Node *
-node_create(int opcode)
-{
-    Node *result;
-
-    if (!nodes) {
-       /*
-        * Handle special case where no nodes allocated yet:
-        */
-       current_bunch = nodes = (struct _bunch_of_nodes *)
-         malloc(sizeof(struct _bunch_of_nodes));
-       nodes->next_bunch = NULL;
-       last_node_in_current_bunch_used = -1;
-    }
-
-    /*
-     * If all nodes allocated so far in use, allocate another
-     * bunch of NODE_BATCH_SIZE nodes:
-     */
-    if (last_node_in_current_bunch_used == NODE_BATCH_SIZE-1) {
-       current_bunch->next_bunch = (struct _bunch_of_nodes *)
-         malloc(sizeof(struct _bunch_of_nodes));
-       current_bunch = current_bunch->next_bunch;
-       current_bunch->next_bunch = NULL;
-       last_node_in_current_bunch_used = -1;
-    }
-
-    /*
-     * Get next not already used node & ready it for use:
-     */
-    last_node_in_current_bunch_used++;
-    result = &(current_bunch->nodes[last_node_in_current_bunch_used]);
-    result->opcode = opcode;
-    result->next = NULL;
-
-    return(result);
-}
-
-/*
- *
- */
-
-void
-node_DestroyAllNodes(void)
-{
-    struct _bunch_of_nodes *next_bunch;
-    int i, last_node_used_in_this_bunch;
-
-    while (nodes) {
-       next_bunch = nodes->next_bunch;
-       last_node_used_in_this_bunch = next_bunch ?
-         NODE_BATCH_SIZE-1 : last_node_in_current_bunch_used;
-       for (i=0; i<=last_node_used_in_this_bunch; i++) {
-           if (nodes->nodes[i].opcode==STRING_CONSTANT_OPCODE)
-             free(nodes->nodes[i].d.string_constant);
-           else if (nodes->nodes[i].opcode==VARREF_OPCODE)
-             free(nodes->nodes[i].d.string_constant);
-           else if (nodes->nodes[i].opcode==VARNAME_OPCODE)
-             free(nodes->nodes[i].d.string_constant);
-       }
-       free(nodes);
-       nodes = next_bunch;
-    }
-
-    current_bunch = nodes;
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*                     Node construction functions:                         */
-/*                                                                          */
-/****************************************************************************/
-
-Node *
-node_create_string_constant(int opcode,
-                           string text)
-{
-    Node *n;
-
-    n = node_create(opcode);
-    n->d.string_constant = text;
-    return(n);
-}
-
-Node *
-node_create_noary(int opcode)
-{
-    Node *n;
-
-    n = node_create(opcode);
-    return(n);
-}
-
-Node *
-node_create_unary(int opcode,
-                 Node *arg)
-{
-    Node *n;
-
-    n = node_create(opcode);
-    n->d.nodes.first = arg;
-    return(n);
-}
-
-Node *
-node_create_binary(int opcode,
-                  Node *first_arg,
-                  Node *second_arg)
-{
-    Node *n;
-
-    n = node_create(opcode);
-    n->d.nodes.first = first_arg;
-    n->d.nodes.second = second_arg;
-    return(n);
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*                        Node utility functions:                           */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- *    Node *reverse_list_of_nodes(Node *list)
- *        Modifies: the nodes on the linked list list
- *        Effects: Reverses the linked list list and returns it.
- *                 This is done by modifing the next pointers of the
- *                 list elements to point to the previous node & returning
- *                 the address of the (previously) last node.
- */
-
-Node *
-reverse_list_of_nodes(Node *list)
-{
-    Node *next_node;
-    Node *head = NULL;
-
-    while (list) {
-       next_node = list->next;
-
-       /*
-        * Add the node list to the beginning of linked list head:
-        */
-       list->next = head;
-       head = list;
-
-       list = next_node;
-    }
-
-    return(head);
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*                        Node display functions:                           */
-/*                                                                          */
-/****************************************************************************/
-
-#ifdef DEBUG
-
-static void
-print_stuff(Node *node,
-           string format_string)
-{
-    char c;
-
-    for (c=(*(format_string++)); c; c=(*(format_string++))) {
-       if (c!='%') {
-           putchar(c);
-           continue;
-       }
-       c=(*(format_string++));
-       if (!c) {
-           format_string--;
-           continue;
-       }
-       if (c=='s')
-         printf("%s", node->d.string_constant);
-       else if (c=='1')
-         node_display(node->d.nodes.first);
-       else if (c=='2')
-         node_display(node->d.nodes.second);
-       else
-         putchar(c);
-    }
-}
-
-static string how_to_print[] = {
-    "\"%s\"",        /* constant string */
-    "$%s",           /* varref */
-    "%s",            /* varname */
-
-    "!%1",
-
-    "( %1 + %2 )",
-    "( %1 and %2 )",
-    "( %1 or %2 )",
-    "( %1 == %2 )",
-    "( %1 != %2 )",
-    "( %1 =~ %2 )",
-    "( %1 !~ %2 )",
-
-    "buffer()",
-    
-    "substitute(%1)",
-    "protect(%1)",
-    "verbatim(%1)",
-    "stylestrip(%1)",
-    "getenv(%1)",
-    "upcase(%1)",
-    "downcase(%1)",
-    "zvar(%1)",
-    "get(%1)",
-
-    "lany(%1, %2)",
-    "rany(%1, %2)",
-    "lbreak(%1, %2)",
-    "rbreak(%1, %2)",
-    "lspan(%1, %2)",
-    "rspan(%1, %2)",
-
-    "noop\n",
-    "set %1 = %2\n",
-    "fields %1\n",
-
-    "print %1\n",
-    "clearbuf\n",
-    
-    "appendport %1 %2\n",
-    "execport %1 %2\n",
-    "inputport %1 %2\n",
-    "outputport %1 %2\n",
-    "put %1 %2\n",
-    "closeinput %1\n",
-    "closeoutput %1\n",
-    "closeport %1\n",
-
-    "exec %1 %2\n",
-
-    "%1endif\n",
-    "case %1\n%2endcase\n",
-    "while %1 do\n%2endwhile\n",
-    "break\n",
-    "exit\n",
-    
-    "if %1 then\n%2",
-    "elseif %1 then\n%2",
-    "else\n%2",
-    "match %1\n%2",
-    "default\n%2" };
-
-void node_display(Node *node)
-{
-    int opcode = LAST_EXPR_OPCODE + 1;
-
-    for (; node; node=node->next) {
-       if (opcode<=LAST_EXPR_OPCODE)
-         printf(" ");
-
-       opcode = node->opcode;
-       if (opcode>=0 && opcode<NUMBER_OF_OPCODES)
-         print_stuff(node, how_to_print[opcode]);
-       else
-         printf("[opcode %d]", opcode);
-    }
-}
-
-#endif
diff --git a/zephyr/zwgc/node.h b/zephyr/zwgc/node.h
deleted file mode 100644 (file)
index e0edaf9..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: node.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef node_MODULE
-#define node_MODULE
-
-#include "new_string.h"
-
-#define  STRING_CONSTANT_OPCODE         0
-#define  VARREF_OPCODE                  1
-#define  VARNAME_OPCODE                 2
-
-#define  NOT_OPCODE                     3
-
-#define  PLUS_OPCODE                    4
-#define  AND_OPCODE                     5
-#define  OR_OPCODE                      6
-#define  EQ_OPCODE                      7
-#define  NEQ_OPCODE                     8
-#define  REGEQ_OPCODE                   9
-#define  REGNEQ_OPCODE                  10
-
-#define  BUFFER_OPCODE                  11
-
-#define  SUBSTITUTE_OPCODE              12
-#define  PROTECT_OPCODE                 13
-#define  VERBATIM_OPCODE                14
-#define  STYLESTRIP_OPCODE              15
-#define  GETENV_OPCODE                  16
-#define  UPCASE_OPCODE                  17
-#define  DOWNCASE_OPCODE                18
-#define  ZVAR_OPCODE                    19
-#define  GET_OPCODE                     20
-
-#define  LANY_OPCODE                    21
-#define  RANY_OPCODE                    22
-#define  LBREAK_OPCODE                  23
-#define  RBREAK_OPCODE                  24
-#define  LSPAN_OPCODE                   25
-#define  RSPAN_OPCODE                   26
-
-#define  LAST_EXPR_OPCODE               26
-
-#define  NOOP_OPCODE                    27
-#define  SET_OPCODE                     28
-#define  FIELDS_OPCODE                  29
-
-#define  PRINT_OPCODE                   30
-#define  CLEARBUF_OPCODE                31
-
-#define  APPENDPORT_OPCODE              32
-#define  EXECPORT_OPCODE                33
-#define  INPUTPORT_OPCODE               34
-#define  OUTPUTPORT_OPCODE              35
-#define  PUT_OPCODE                     36
-#define  CLOSEINPUT_OPCODE              37
-#define  CLOSEOUTPUT_OPCODE             38
-#define  CLOSEPORT_OPCODE               39
-
-#define  EXEC_OPCODE                    40
-
-#define  IF_STMT_OPCODE                 41
-#define  CASE_OPCODE                    42
-#define  WHILE_OPCODE                   43
-#define  BREAK_OPCODE                   44
-#define  EXIT_OPCODE                    45
-
-#define  IF_OPCODE                      46
-#define  ELSEIF_OPCODE                  47
-#define  ELSE_OPCODE                    48
-#define  MATCHLIST_OPCODE               49
-#define  DEFAULT_OPCODE                 50
-
-#define  NUMBER_OF_OPCODES              51
-
-typedef struct _Node {
-    int opcode;                              /* Read-only */
-    struct _Node *next;
-    union {
-       string string_constant;
-       struct {
-           struct _Node *first;
-           struct _Node *second;
-       } nodes;
-    } d;
-} Node;
-
-/* Function externs */
-
-extern void node_DestroyAllNodes(void);
-
-extern Node *node_create_string_constant(int, string);
-
-extern Node *node_create_noary(int);
-extern Node *node_create_unary(int, Node *);
-extern Node *node_create_binary(int, Node *, Node *);
-
-/*
- *    Node *reverse_list_of_nodes(Node *list)
- *        Modifies: the nodes on the linked list list
- *        Effects: Reverses the linked list list and returns it.
- *                 This is done by modifing the next pointers of the
- *                 list elements to point to the previous node & returning
- *                 the address of the (previously) last node.
- */
-
-extern Node *reverse_list_of_nodes(Node *);
-
-#ifdef DEBUG
-extern void node_display(Node *);
-#endif
-
-#endif
diff --git a/zephyr/zwgc/notice.c b/zephyr/zwgc/notice.c
deleted file mode 100644 (file)
index 7d8f302..0000000
+++ /dev/null
@@ -1,354 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: notice.c 2295 2009-03-15 22:13:16Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_notice_c[] = "$Id: notice.c 2295 2009-03-15 22:13:16Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*         Module containing code to extract a notice's fields:             */
-/*                                                                          */
-/****************************************************************************/
-
-#include <zephyr/zephyr.h>
-#include <arpa/inet.h>
-#include "new_memory.h"
-#include "error.h"
-#include "variables.h"
-#include "notice.h"
-#ifdef CMU_ZWGCPLUS
-#include <pwd.h>
-#include "plus.h"
-#endif
-
-/*
- *    int count_nulls(char *data, int length)
- *        Requires: length>=0
- *        Effects: Returns the # of nulls in data[0]..data[length-1]
- */
-
-int
-count_nulls(char *data,
-           int length)
-{
-    int count = 0;
-
-    for (; length; data++, length--)
-      if (!*data)
-       count++;
-
-    return(count);
-}
-
-/*
- *    string get_next_field(char **data_p, int *length_p)
- *        Requires: *length_p >= 0
- *        Modifies: *data_p, *length_p
- *        Effects: Treats (*data_p)[0], (*data_p)[1], ... (*data_p)[length-1]
- *                 as a series of null-seperated fields.  This function
- *                 returns a copy of the first field on the heap.  This
- *                 string must eventually be freed.  Also, *data_p is
- *                 advanced and *length_p decreased so that another
- *                 call to this procedure with the same arguments will
- *                 return the second field.  The next call will return
- *                 the third field, etc.  "" is returned if 0 fields
- *                 remain.  (this is the case when *length_p == 0)
- */
-
-string
-get_next_field(char **data_p,
-              int *length_p)
-{
-    char *data = *data_p;
-    int length = *length_p;
-    char *ptr;
-
-    for (ptr=data; length; ptr++, length--)
-      if (!*ptr) {
-         *data_p = ptr+1;
-         *length_p = length-1;
-         return(string_Copy(data));
-      }
-
-    length = *length_p;
-    *data_p = ptr;
-    *length_p = 0;
-    return(string_CreateFromData(data, length));
-}
-
-/*
- *    string get_field(char *data, int length, int num)
- *        Requires: length>=0, num>0
- *        Effects: Treats data[0]..data[length-1] as a series of
- *                 null-seperated fields.  This function returns a copy of
- *                 the num'th field (numbered from 1 in this case) on the
- *                 heap.  This string must eventually be freed.  If there
- *                 is no num'th field (because num<1 or num># of fields),
- *                 "" is returned.
- */
-
-string get_field(char *data,
-                int length,
-                int num)
-{
-    /*
-     * While num>1 and there are fields left, skip a field & decrement num:
-     */
-    while (length && num>1) {
-       if (!*data)
-         num--;
-       length--;
-       data++;
-    }
-
-    /*
-     * If any more fields left, the first field is the one we want.
-     * Otherwise, there is no such field as num -- return "".
-     */
-    if (length)
-      return(get_next_field(&data, &length));
-    else
-      return(string_Copy(""));
-}
-
-/*
- *    string convert_nulls_to_newlines(data, length)
- *       Requires: length>=0, malloc never returns NULL
- *       Effects: Takes data[0]..data[length-1], converts all nulls to
- *                newlines ('\n') and returns the result as a null-terminated
- *                string on the heap.  The returned string must eventually
- *                be freed.
- */
-
-string
-convert_nulls_to_newlines(char *data,
-                         int length)
-{
-    char *result, *ptr;
-    char c;
-
-    result = (char *) malloc(length+1);
-    result[length] = '\0';
-    
-    for (ptr=result; length; data++, ptr++, length--)
-      *ptr = (c = *data) ? c : '\n';
-
-    return(result);
-}
-
-
-/*
- *  Internal Routine:
- *
- *    string z_kind_to_ascii(ZNotice_Kind_t z_kind)
- *        Effects: Returns an ascii representation for z_kind.
- *                 The string returned is on the heap and must be freed
- *                 eventually.
- */
-
-static string
-z_kind_to_ascii(ZNotice_Kind_t z_kind)
-{
-    string result;
-
-    switch (z_kind) {
-      case UNSAFE:
-       result = "unsafe";
-       break;
-
-      case UNACKED:
-       result = "unacked";
-       break;
-
-      case ACKED:
-       result = "acked";
-       break;
-
-      case HMACK:
-       result = "hmack";
-       break;
-
-      case HMCTL:
-       result = "hmctl";
-       break;
-
-      case SERVACK:
-       result = "servack";
-       break;
-
-      case SERVNAK:
-       result = "servnak";
-       break;
-
-      case CLIENTACK:
-       result = "clientack";
-       break;
-
-      case STAT:
-       result = "stat";
-       break;
-
-      default:
-       result = "<unknown kind>";
-       break;
-    }
-    
-    return(string_Copy(result));
-}
-
-/*
- *  Internal Routine:
- *
- *    string z_auth_to_ascii(int z_auth)
- *        Effects: Returns an ascii representation for z_auth.
- *                 The string returned is on the heap and must be freed
- *                 eventually.
- */
-
-static string
-z_auth_to_ascii(int z_auth)
-{
-    string result;
-
-    switch (z_auth) {
-      case ZAUTH_FAILED:
-       result = "forged";
-       break;
-
-      case ZAUTH_NO:
-       result = "no";
-       break;
-       
-      case ZAUTH_YES:
-       result = "yes";
-       break;
-
-      default:
-       result = "unknown";
-       break;
-    }
-    
-    return(string_Copy(result));
-}
-
-/*
- *    char *decode_notice(ZNotice_t *notice)
- *        Modifies: various description language variables
- *        Effects:
- */
-
-char *
-decode_notice(ZNotice_t *notice,
-             char *hostname)
-{
-    char *temp;
-    string time, notyear, year, date_string, time_string;
-#ifdef CMU_ZWGCPLUS
-    extern char *getSelectedText();
-#endif
-
-    /*
-     * Convert useful notice fields to ascii and store away in
-     * description language variables for later use by the
-     * the user's program:
-     */
-    var_set_variable("zephyr_version", notice->z_version);
-    var_set_variable("class", notice->z_class);
-    var_set_variable("instance", notice->z_class_inst);
-    var_set_variable("opcode", notice->z_opcode);
-    var_set_variable("default", notice->z_default_format);
-    var_set_variable("charset", (char *)ZCharsetToString(notice->z_charset)); /*XXX const*/
-    var_set_variable("recipient",
-                    (notice->z_recipient[0] ? notice->z_recipient : "*"));
-    var_set_variable("fullsender", notice->z_sender);
-    var_set_variable_to_number("port", (int)ntohs(notice->z_port));
-    var_set_variable_then_free_value("kind", z_kind_to_ascii(notice->z_kind));
-    var_set_variable_then_free_value("auth", z_auth_to_ascii(notice->z_auth));
-
-#ifdef CMU_ZWGCPLUS
-    if ((temp=getSelectedText()) != 0)
-       var_set_variable("selection", temp);
-    
-    var_set_variable("delete_window", "none");
-    var_set_variable("event_time", "none");
-    var_set_variable("event_name", "event");
-#endif
-    /*
-     * Set $sender to the name of the notice sender except first strip off the
-     * realm name if it is the local realm:
-     */
-    if ( (temp=strchr(notice->z_sender,'@')) && string_Eq(temp+1, ZGetRealm()) )
-      var_set_variable_then_free_value("sender",
-                               string_CreateFromData(notice->z_sender,
-                                                     temp-notice->z_sender));
-    else
-      var_set_variable("sender", notice->z_sender);
-#ifdef CMU_ZWGCPLUS
-    if (get_full_names) {
-      struct passwd *pwnam = getpwnam(var_get_variable("sender"));
-      if (pwnam) {
-        temp = string_Copy(pwnam->pw_gecos);
-        var_set_variable_then_free_value("sendername", temp);
-      } else {
-        var_set_variable("sendername", "unknown");
-      }
-    }
-#endif
-    
-    /*
-     * Convert time & date notice was sent to ascii.  The $time
-     * has the format "01:03:52" while $date has the format
-     * "Sun Sep 16 1973".
-     */
-    {
-      /* the fields of struct timeval might not be the right type to pass
-        to ctime, so use a temporary */
-      time_t sec = notice->z_time.tv_sec;
-      time = ctime(&sec);
-    }
-    time_string = string_CreateFromData(time+11,8);
-    var_set_variable_then_free_value("time", time_string);
-    date_string = string_Concat(notyear=string_CreateFromData(time,11),
-                               year=string_CreateFromData(time+20,4));
-    var_set_variable_then_free_value("date", date_string);
-    free(notyear);
-    free(year);
-
-    /*
-     * Convert host notice sent from to ascii:
-     */
-    var_set_variable("fromhost", hostname ? hostname :
-                    inet_ntoa(notice->z_sender_addr));
-
-    /*
-     * Set $message to the message field of the notice with nulls changed
-     * to newlines:
-     */
-    var_set_variable_then_free_value("message",
-                    convert_nulls_to_newlines(notice->z_message,
-                                              notice->z_message_len));
-
-    /*
-     * Decide if its a control notice.  If so, return the notice's
-     * opcode.  Otherwise, return NULL:
-     */
-    if ((strcasecmp(notice->z_class, WG_CTL_CLASS)==0) && /* <<<>>> */
-       (strcasecmp(notice->z_class_inst, WG_CTL_USER)==0))
-      return(notice->z_opcode);
-    return(0);
-}
diff --git a/zephyr/zwgc/notice.h b/zephyr/zwgc/notice.h
deleted file mode 100644 (file)
index c4fcfa9..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: notice.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef notice_MODULE
-#define notice_MODULE
-
-#include <zephyr/zephyr.h>
-#include "new_string.h"
-
-/*
- *    int count_nulls(char *data, int length)
- *        Requires: length>=0
- *        Effects: Returns the # of nulls in data[0]..data[length-1]
- */
-
-extern int count_nulls(char *, int);
-
-/*
- *    string get_next_field(char **data_p, int *length_p)
- *        Requires: *length_p >= 0
- *        Modifies: *data_p, *length_p
- *        Effects: Treats (*data_p)[0], (*data_p)[1], ... (*data_p)[length-1]
- *                 as a series of null-seperated fields.  This function
- *                 returns a copy of the first field on the heap.  This
- *                 string must eventually be freed.  Also, *data_p is
- *                 advanced and *length_p decreased so that another
- *                 call to this procedure with the same arguments will
- *                 return the second field.  The next call will return
- *                 the third field, etc.  "" is returned if 0 fields
- *                 remain.  (this is the case when *length_p == 0)
- */
-
-extern string get_next_field(char **, int *);
-
-/*
- *    string get_field(char *data, int length, int num)
- *        Requires: length>=0, num>0
- *        Effects: Treats data[0]..data[length-1] as a series of
- *                 null-seperated fields.  This function returns a copy of
- *                 the num'th field (numbered from 1 in this case) on the
- *                 heap.  This string must eventually be freed.  If there
- *                 is no num'th field (because num<1 or num># of fields),
- *                 "" is returned.
- */
-
-extern string get_field(char *, int, int);
-
-/*
- *    string convert_nulls_to_newlines(data, length)
- *       Requires: length>=0, malloc never returns NULL
- *       Effects: Takes data[0]..data[length-1], converts all nulls to
- *                newlines ('\n') and returns the result as a null-terminated
- *                string on the heap.  The returned string must eventually
- *                be freed.
- */
-
-extern string convert_nulls_to_newlines(char *, int);
-
-
-extern char *decode_notice(ZNotice_t *, char *);
-
-#endif
diff --git a/zephyr/zwgc/parser.h b/zephyr/zwgc/parser.h
deleted file mode 100644 (file)
index f4cc04d..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: parser.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef parser_MODULE
-#define parser_MODULE
-
-/*
- *  Parser-Lexer Internal Routine:
- *
- *    void report_parse_error(char *error_message, int line_number)
- *        Modifies: error_occured, stderr
- *        Effects: This routine is called to report a parser or lexer
- *                 error.  Error_message is the error message and line_number
- *                 the line number it occured on.  The reported error message
- *                 is of the form "....<error_message> on line <line #>.\n".
- *                 This routine sets error_occured (local to parser.y) to
- *                 true.  If it was previously false, the error message
- *                 is reported to the user via stderr. 
- */
-
-extern void report_parse_error(char *, int);
-
-/*
- *    struct _Node *parse_file(FILE *input_file)
- *        Requires: input_file is opened for reading, no pointers to
- *                  existing nodes will ever be dereferened.
- *        Modifies: *input_file, stderr, all existing nodes
- *        Effects: First this routine destroys all nodes.  Then it parses
- *                 input_file as a zwgc description langauge file.  If
- *                 an error is encountered, an error message is printed
- *                 on stderr and NULL is returned.  If no error is
- *                 encountered, a pointer to the node representation of
- *                 the parsed program is returned, suitable for passing to
- *                 exec.c.  Note that NULL will also be returned for a
- *                 empty file & is a valid program.  Either way, input_file
- *                 is closed before this routine returns.
- */
-
-extern struct _Node *parse_file(FILE *);
-
-#endif
diff --git a/zephyr/zwgc/parser.y b/zephyr/zwgc/parser.y
deleted file mode 100644 (file)
index 9cc4c20..0000000
+++ /dev/null
@@ -1,387 +0,0 @@
-%{
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: parser.y 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_parser_y[] = "$Id: parser.y 2133 2008-01-21 03:11:44Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/* Saber-C suppressions because yacc loses */
-
-/*SUPPRESS 288*/
-/*SUPPRESS 287*/
-
-#include <stdio.h>
-#include "lexer.h"
-#include "parser.h"
-#include "node.h"
-#include "zwgc.h"
-
-static void yyerror(char *);
-
-/*
- * the_program - local variable used to communicate the program's node
- *               representation from the program action to the parse_file
- *               function.
- */
-
-static Node *the_program;
-%}
-
-%union{
-    char *text;
-    struct _Node *node;
-}
-
-%start program
-
-%token  ERROR
-%token  <text>    VARNAME VARREF STRING SHOW
-
-%token  APPENDPORT BUFFER BREAK CLOSEINPUT CLOSEOUTPUT
-%token  CLOSEPORT CASE CLEARBUF DEFAULT DISPLAY DO DOWNCASE
-%token  ELSE ELSEIF ENDCASE ENDIF ENDWHILE EXEC EXECPORT EXIT
-%token  FIELDS GET GETENV IF INPUTPORT LANY LBREAK LSPAN
-%token  MATCH NOOP NOT OUTPUTPORT PRINT PROTECT VERBATIM PUT RANY RBREAK
-%token  RSPAN SET SUBSTITUTE THEN UPCASE WHILE ZVAR STYLESTRIP
-
-%type <node> expr varname string
-%type <node> exprlist comma_exprlist varnamelist
-%type <node> statement statements program elseparts elseifparts
-%type <node> match matchlist
-
-%left '|'
-%left '&'
-%left EQ NEQ REGEQ REGNEQ
-%left '+'
-%left '!'
-
-%%
-
-/*
- * A program is simply a list of statements: (may be NULL if no statements...)
- */
-program : statements
-        { the_program = reverse_list_of_nodes($1);
-         $$ = the_program; }
-        ;
-
-varname : VARNAME
-       { $$ = node_create_string_constant(VARNAME_OPCODE, $1); }
-        ;
-
-string : STRING
-       { $$ = node_create_string_constant(STRING_CONSTANT_OPCODE, $1); }
-       ;
-
-expr : '(' expr ')'
-        { $$ = $2; }
-
-     | string
-        { $$ = $1; }
-     | VARREF
-       { $$ = node_create_string_constant(VARREF_OPCODE, $1); }
-
-     | '!' expr
-        { $$ = node_create_unary(NOT_OPCODE, $2); }
-
-     | expr '+' expr
-        { $$ = node_create_binary(PLUS_OPCODE, $1, $3); }
-     | expr '|' expr                             /* note "or" == '|' */
-        { $$ = node_create_binary(OR_OPCODE, $1, $3); }
-     | expr '&' expr                             /* note "and" == '&' */
-        { $$ = node_create_binary(AND_OPCODE, $1, $3); }
-     | expr EQ expr
-        { $$ = node_create_binary(EQ_OPCODE, $1, $3); }
-     | expr NEQ expr
-        { $$ = node_create_binary(NEQ_OPCODE, $1, $3); }
-     | expr REGEQ expr
-        { $$ = node_create_binary(REGEQ_OPCODE, $1, $3); }
-     | expr REGNEQ expr
-        { $$ = node_create_binary(REGNEQ_OPCODE, $1, $3); }
-
-     | BUFFER '(' ')'
-        { $$ = node_create_noary(BUFFER_OPCODE); }
-
-     | SUBSTITUTE '(' expr ')'
-        { $$ = node_create_unary(SUBSTITUTE_OPCODE, $3); }
-     | PROTECT '(' expr ')'
-       { $$ = node_create_unary(PROTECT_OPCODE, $3); }
-     | VERBATIM '(' expr ')'
-       { $$ = node_create_unary(VERBATIM_OPCODE, $3); }
-     | GETENV '(' expr ')'
-        { $$ = node_create_unary(GETENV_OPCODE, $3); }
-     | UPCASE '(' expr ')'
-        { $$ = node_create_unary(UPCASE_OPCODE, $3); }
-     | DOWNCASE '(' expr ')'
-        { $$ = node_create_unary(DOWNCASE_OPCODE, $3); }
-     | ZVAR '(' expr ')'
-        { $$ = node_create_unary(ZVAR_OPCODE, $3); }
-     | GET '(' expr ')'
-        { $$ = node_create_unary(GET_OPCODE, $3); }
-     | STYLESTRIP '(' expr ')'
-        { $$ = node_create_unary(STYLESTRIP_OPCODE, $3); }
-
-     | LANY '(' expr ',' expr ')'
-        { $$ = node_create_binary(LANY_OPCODE, $3, $5 ); }
-     | RANY '(' expr ',' expr ')'
-        { $$ = node_create_binary(RANY_OPCODE, $3, $5 ); }
-     | LBREAK '(' expr ',' expr ')'
-        { $$ = node_create_binary(LBREAK_OPCODE, $3, $5 ); }
-     | RBREAK '(' expr ',' expr ')'
-        { $$ = node_create_binary(RBREAK_OPCODE, $3, $5 ); }
-     | LSPAN '(' expr ',' expr ')'
-        { $$ = node_create_binary(LSPAN_OPCODE, $3, $5 ); }
-     | RSPAN '(' expr ',' expr ')'
-        { $$ = node_create_binary(RSPAN_OPCODE, $3, $5 ); }
-     ;
-
-statement : NOOP
-              { $$ = node_create_noary(NOOP_OPCODE); }
-          | SET varname '=' expr
-              { $$ = node_create_binary(SET_OPCODE, $2, $4); }
-         | FIELDS varnamelist
-              { $$ = node_create_unary(FIELDS_OPCODE,
-                                      reverse_list_of_nodes($2)); }
-
-         /*
-         * Output to & control of output buffer statements:
-         */
-         | PRINT exprlist
-              { $$ = node_create_unary(PRINT_OPCODE,
-                                      reverse_list_of_nodes($2)); }
-         | SHOW
-              { $$ = node_create_unary(PRINT_OPCODE,
-                      node_create_unary(SUBSTITUTE_OPCODE,
-                        node_create_string_constant(STRING_CONSTANT_OPCODE,
-                                                    $1))); }
-          | CLEARBUF
-             { $$ = node_create_noary(CLEARBUF_OPCODE); }
-
-          /*
-          * Statements to manage ports:
-          */
-          | APPENDPORT expr expr
-              { $$ = node_create_binary(APPENDPORT_OPCODE, $2, $3); }
-          | EXECPORT expr expr exprlist
-              { $3->next = reverse_list_of_nodes($4);
-               $$ = node_create_binary(EXECPORT_OPCODE, $2, $3); }
-          | INPUTPORT expr expr
-              { $$ = node_create_binary(INPUTPORT_OPCODE, $2, $3); }
-          | OUTPUTPORT expr expr
-              { $$ = node_create_binary(OUTPUTPORT_OPCODE, $2, $3); }
-         | PUT expr exprlist
-              { $$ = node_create_binary(PUT_OPCODE, $2,
-                                       reverse_list_of_nodes($3)); }
-         | PUT
-              { $$ = node_create_binary(PUT_OPCODE, 0, 0); }
-          | CLOSEINPUT expr
-              { $$ = node_create_unary(CLOSEINPUT_OPCODE, $2); }
-          | CLOSEOUTPUT expr
-              { $$ = node_create_unary(CLOSEOUTPUT_OPCODE, $2); }
-          | CLOSEPORT expr
-              { $$ = node_create_unary(CLOSEPORT_OPCODE, $2); }
-
-          /*
-          * Statements to run subprocesses without I/O to them:
-          */
-         | EXEC expr exprlist
-              { $2->next = reverse_list_of_nodes($3);
-               $$ = node_create_unary(EXEC_OPCODE, $2); }
-
-          /*
-          * Control statements:
-          */
-          | IF expr THEN statements elseparts ENDIF
-              { Node *n = node_create_binary(IF_OPCODE, $2,
-                                            reverse_list_of_nodes($4));
-               n->next = $5;
-               $$ = node_create_unary(IF_STMT_OPCODE, n); }
-         | CASE expr matchlist ENDCASE
-              { $$ = node_create_binary(CASE_OPCODE, $2,
-                                       reverse_list_of_nodes($3)); }
-         | WHILE expr DO statements ENDWHILE
-              { $$ = node_create_binary(WHILE_OPCODE, $2,
-                                       reverse_list_of_nodes($4)); }
-          | BREAK
-              { $$ = node_create_noary(BREAK_OPCODE); }
-          | EXIT
-              { $$ = node_create_noary(EXIT_OPCODE); }
-         ;
-
-elseparts : elseifparts
-                { $$ = reverse_list_of_nodes($1); }
-          | elseifparts ELSE statements
-                { $$ = node_create_binary(ELSE_OPCODE, 0,
-                                         reverse_list_of_nodes($3));
-                 $$->next = $1;
-                 $$ = reverse_list_of_nodes($$); }
-          ;
-
-/* elseifparts needs to be reversed before using... */
-elseifparts : /* empty */
-                { $$ = 0; }
-            | elseifparts ELSEIF expr THEN statements
-                { $$ = node_create_binary(ELSEIF_OPCODE, $3,
-                                         reverse_list_of_nodes($5));
-                 $$->next = $1; }
-            ;
-
-match : MATCH comma_exprlist statements
-                { $$ = node_create_binary(MATCHLIST_OPCODE,
-                                         reverse_list_of_nodes($2),
-                                         reverse_list_of_nodes($3)); }
-      | DEFAULT statements
-                { $$ = node_create_binary(DEFAULT_OPCODE, 0,
-                                         reverse_list_of_nodes($2)); }
-      ;
-
-/*
- * Various lists of non-terminals like expr's and varname's.  Each is
- * built up as a linked list using the nodes' next fields.  To prevent
- * Yacc stack overflow on long lists, these are put on the linked list
- * BACKWARDS.  The user of these must first call reverse_list_of_nodes
- * on one of these before using it.  All except comma_exprlist
- * allow 0 elements on the list in which case their value is NULL.
- * (comma_exprlist requires at least one element)
- */
-
-exprlist : /* empty */
-             { $$ = 0; }
-        | exprlist expr
-             { $$ = $2;
-              $$->next = $1; }
-        ;
-
-comma_exprlist : expr
-                 { $$ = $1; }
-               | comma_exprlist ',' expr
-                 { $$ = $3;
-                  $$->next = $1; }
-              ;
-
-varnamelist : /* empty */
-             { $$ = 0; }
-            | varnamelist varname
-             { $$ = $2;
-              $$->next = $1; }
-           ;
-
-matchlist : /* empty */
-                { $$ = 0; }
-          | matchlist match
-                { $$ = $2;
-                 $$->next = $1; }
-          ;
-
-statements : /* empty */
-        { $$ = 0; }
-           | statements statement
-        { $$ = $2;
-         $$->next = $1; }
-           ;
-
-%%
-
-/*
- * error_occured - Set to true when a parse error is reported.  If it is false
- *                 at the time a parse error is reported, a message is
- *                 printed on stderr.  See report_parse_error for more
- *                 details.
- */
-
-static int error_occured = 0;
-
-/*
- *  Parser-Lexer Internal Routine:
- *
- *    void report_parse_error(char *error_message, int line_number)
- *        Modifies: error_occured, stderr
- *        Effects: This routine is called to report a parser or lexer
- *                 error.  Error_message is the error message and line_number
- *                 the line number it occured on.  The reported error message
- *                 is of the form "....<error_message> on line <line #>.\n".
- *                 This routine sets error_occured (local to parser.y) to
- *                 true.  If it was previously false, the error message
- *                 is reported to the user via stderr. 
- */
-
-void
-report_parse_error(char *error_message,
-                  int line_number)
-{
-    if (error_occured)
-      return;
-    error_occured = 1;
-
-    fprintf(stderr, "zwgc: error in description file: %s on line %d.\n",
-           error_message, line_number);
-    fflush(stderr);
-}
-
-/*
- *  yyerror - internal routine - used by yacc to report syntax errors and
- *            stack overflow errors.
- */
-static void yyerror(char *message)
-{
-    report_parse_error(message, yylineno);
-}
-
-/*
- *    struct _Node *parse_file(FILE *input_file)
- *        Requires: input_file is opened for reading, no pointers to
- *                  existing nodes will ever be dereferened.
- *        Modifies: *input_file, stderr, all existing nodes
- *        Effects: First this routine destroys all nodes.  Then it parses
- *                 input_file as a zwgc description langauge file.  If
- *                 an error is encountered, an error message is printed
- *                 on stderr and NULL is returned.  If no error is
- *                 encountered, a pointer to the node representation of
- *                 the parsed program is returned, suitable for passing to
- *                 exec.c.  Note that NULL will also be returned for a
- *                 empty file & is a valid program.  Either way, input_file
- *                 is closed before this routine returns.
- */
-
-struct _Node *
-parse_file(FILE *input_file)
-{
-    the_program = NULL;
-    error_occured = 0;
-    node_DestroyAllNodes();
-
-    lex_open(input_file);
-    yyparse();
-    fclose(input_file);
-
-    if (error_occured) {
-       node_DestroyAllNodes();
-       the_program = NULL;
-    }
-
-#ifdef DEBUG
-    if (zwgc_debug) {
-       printf("****************************************************************************\n");
-       node_display(the_program);
-       printf("****************************************************************************\n");
-    }
-#endif
-    
-    return(the_program);
-}
diff --git a/zephyr/zwgc/plus.c b/zephyr/zwgc/plus.c
deleted file mode 100644 (file)
index f6d4b1d..0000000
+++ /dev/null
@@ -1,498 +0,0 @@
-/* 
-  This file contains code related to the zwgcplus extension to zwgc.
-  zwgc is copyrighted by the Massachusetts Institute of Technology.
-  This file is public domain.
-  Written by Andrew Plotkin, ap1i+@andrew.cmu.edu
-  Timequeue code added by Ryan Ingram, ryani+@andrew.cmu.edu
-  Rewritten for incorporation into MIT zwgc from 2.0.2 by Derrick Brashear
- */
-
-#include <sysdep.h>
-#ifdef CMU_ZWGCPLUS
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_plus_c[] = "$Id: plus.c 2336 2009-03-22 18:59:56Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-#include <zephyr/zephyr.h>
-
-#include "new_memory.h"
-#include "node.h"
-#include "exec.h"
-#include "eval.h"
-#include "node.h"
-#include "buffer.h"
-#include "port.h"
-#include "variables.h"
-#include "notice.h"
-#include "X_gram.h"
-#include "xrevstack.h"
-#include "main.h"
-#include "plus.h"
-
-int get_full_names = 0;
-
-#define HASHSIZE (251)
-
-typedef struct timenode_s {
-  ZNotice_t *notice;
-  struct timenode_s *next;
-  time_t when;
-  char *event_name;
-} TimeNode;
-
-typedef struct _notnode {
-    ZNotice_t *notice;
-    int fake_notice; /* if TRUE, do not call ZFreeNotice() */
-    int refcount;
-    struct _notnode *next;
-    char *opcode;
-    char *hname;
-} notnode;
-
-static ZNotice_t *stored_notice;
-static notnode *notlist[HASHSIZE];
-TimeNode *timeq_head = NULL;
-
-int list_hash_fun(ZNotice_t *notice);
-
-TimeNode *
-addtimenode(TimeNode *head, TimeNode *node)
-{
-  if(head == NULL) {
-#ifdef DEBUG_TIMEQUEUE
-    fprintf(stderr, "adding new timenode; creating queue\n");
-#endif
-    node->next = NULL;
-    return node;
-  }
-  
-  if(head->when > node->when) {
-#ifdef DEBUG_TIMEQUEUE
-    fprintf(stderr, "adding new timenode at start of queue\n");
-#endif
-    node->next = head;
-    return node;
-  }
-
-  head->next = addtimenode(head->next, node);
-  return head;
-}
-
-void 
-handle_timeq_event(TimeNode *event)
-{
-  char buf[128];
-  notnode *pt;
-  int bx = list_hash_fun(event->notice);
-
-  for (pt=notlist[bx]; pt && pt->notice!=event->notice; pt=pt->next);
-
-  /* "time-" + event_name + '\0' */
-#ifdef DEBUG_TIMEQUEUE
-  fprintf(stderr, "handle_timeq_event()\n");
-#endif
-
-  if (strlen(event->event_name)<123)
-    sprintf(buf, "time-%s", event->event_name);
-  else
-    sprintf(buf, "time-bogus");
-
-#ifdef DEBUG_TIMEQUEUE
-  fprintf(stderr, "opcode: %s\n", buf);
-#endif
-
-  event->notice->z_version = "zwgcplus-repeat";
-  event->notice->z_opcode = buf;
-  reprocess_notice(event->notice, pt->hname);
-
-#ifdef DEBUG_TIMEQUEUE
-  fprintf(stderr, "end handle_timeq_event()\n");
-#endif
-}
-
-void 
-schedule_event(long secs, char *name, ZNotice_t *notice)
-{
-  time_t eventtime = (time(NULL)) + secs;
-  TimeNode *newnode;
-  char *buf;
-
-#ifdef DEBUG_TIMEQUEUE
-  fprintf(stderr, "schedule_event(%ld, %ld, %s)\n", eventtime, secs, name);
-#endif
-
-  if(!notice || !name) return;
-
-  list_add_notice(notice);
-
-  newnode = (TimeNode *)malloc(sizeof(TimeNode));
-  buf = (char *)malloc(strlen(name) + 1);
-
-  strcpy(buf, name);
-
-#ifdef DEBUG_TIMEQUEUE
-  fprintf(stderr, "name: %s\n", buf);
-#endif
-
-  newnode->when = eventtime;
-  newnode->event_name = buf;
-  newnode->notice = notice;
-
-  timeq_head = addtimenode(timeq_head, newnode);
-#ifdef DEBUG_TIMEQUEUE
-  fprintf(stderr, "end schedule_event()\n");
-#endif
-}
-
-void 
-free_timenode(TimeNode *node)
-{
-#ifdef DEBUG_TIMEQUEUE
-  fprintf(stderr, "free_timenode(%s)\n", node->event_name);
-#endif
-
-  free(node->event_name);
-  free(node);
-}
-
-/* returns the number of notices destroyed */
-int 
-destroy_timeq_notice(ZNotice_t *notice, char *name)
-{
-  TimeNode *curr = timeq_head;
-  TimeNode *prev = NULL;
-  TimeNode *tmp;
-
-  int ct = 0;
-
-#ifdef DEBUG_TIMEQUEUE
-  fprintf(stderr, "destroy_timeq_notice(%s)\n", name);
-#endif
-
-  while(curr != NULL) {
-    if(curr->notice == notice &&
-       (!name || !strcmp(curr->event_name, name)))
-      {
-       ct++;
-       if(!prev) {
-         timeq_head = curr->next;
-       } else {
-         prev->next = curr->next;
-       }
-       tmp = curr;
-       curr = curr->next;
-       free_timenode(tmp);
-      } else {
-       prev = curr;
-       curr = curr->next;
-      }
-  }
-  
-  return ct;
-}
-
-long 
-plus_timequeue_events(void)
-{ 
-  /* returns number of seconds to the next event or 0L */
-  /* if there are no events remaining to be processed */
-
-  time_t timenow = time(NULL);
-  TimeNode *curr;
-
-  while(timeq_head != NULL && timeq_head->when <= timenow) {
-#ifdef DEBUG_TIMEQUEUE
-    fprintf(stderr, "handling event\n");
-#endif
-    handle_timeq_event(timeq_head);
-    curr = timeq_head;
-    timeq_head = timeq_head->next;
-    free_timenode(curr);
-  }
-
-#ifdef DEBUG_TIMEQUEUE
-  if(timeq_head != NULL)
-    fprintf(stderr, "next event in %ld seconds.\n",
-       (timeq_head->when) - timenow);
-#endif
-
-  return ((timeq_head == NULL) ? 0L : ((timeq_head->when) - timenow));
-}
-
-void
-plus_set_hname(ZNotice_t *notice, char *hname) 
-{
-  notnode *pt;
-  int bx;
-
-  if (hname) {
-    bx = list_hash_fun(notice);
-    for (pt=notlist[bx]; pt && pt->notice!=notice; pt=pt->next);
-    pt->hname=(char *)malloc(strlen(hname)+1);
-    strcpy(pt->hname, hname);
-  }
-  return;
-}
-
-void 
-plus_queue_notice(ZNotice_t *notice)
-{
-  char *val;
-  int howlong = 0;
-  
-#ifdef DEBUG_TIMEQUEUE
-  fprintf(stderr, "plus_queue_notice()\n");
-#endif
-
-  val = var_get_variable("event_time");
-  if(val) {
-    if(strcmp(val, "kill")) {
-      howlong = atoi(val);
-#ifdef DEBUG_TIMEQUEUE
-      fprintf(stderr, "$event_time %d\n", howlong);
-#endif
-    } else {
-      val = var_get_variable("event_name");
-      if(!val || strcmp(val, "all"))
-       destroy_timeq_notice(notice, (val && val[0]) ? val : "event");
-      else
-       destroy_timeq_notice(notice, (char *)NULL);
-    }
-  }
-  
-  if(howlong > 0) {
-    val = var_get_variable("event_name");
-#ifdef DEBUG_TIMEQUEUE
-    fprintf(stderr, "$event_name = %s\n", val);
-#endif
-    schedule_event(howlong, (val && val[0]) ? val : "event", notice);
-  }
-}
-
-int 
-list_hash_fun(ZNotice_t *notice)
-{
-    int ix;
-    int res = 0, val = 1, ptval;
-    char *pt = (char *)(notice);
-
-    for (ix=0; ix<sizeof(ZNotice_t *); ix++) {
-       ptval = (int)pt[ix];
-       if (ptval<0) ptval = (-ptval);
-       res += val * ptval;
-       res %= HASHSIZE;
-       val *= 7;
-    };
-
-    return res;
-}
-
-/* initialize hash table */
-void 
-init_noticelist(void)
-{
-    int ix;
-
-    stored_notice = NULL;
-
-    for (ix=0; ix<HASHSIZE; ix++) {
-       notlist[ix] = NULL;
-    }
-}
-
-void 
-dump_noticelist(void)
-{
-    notnode *pt;
-    int bx;
-
-    for (bx=0; bx<HASHSIZE; bx++) {
-       for (pt=notlist[bx]; pt; pt=pt->next) {
-           fprintf(stderr, "Not %p: %d [%d]\n", pt->notice, pt->refcount, bx);
-       }
-    }
-}
-
-/* add notice to table. Either generate a new entry, or increment ref count. */
-void 
-list_add_notice(ZNotice_t *notice)
-{
-    notnode *pt;
-    int bx = list_hash_fun(notice);
-
-    for (pt=notlist[bx]; pt && pt->notice!=notice; pt=pt->next);
-
-    if (pt) {
-       /* found entry */
-       pt->refcount++;
-    }
-    else {
-       /* no entry */
-       pt = (notnode *)malloc(sizeof(notnode));
-       pt->notice = notice;
-       pt->refcount = 1;
-       pt->fake_notice = 0;
-       pt->next = notlist[bx];
-       pt->opcode = notice->z_opcode;
-       pt->hname = NULL;
-       notlist[bx] = pt;
-    }
-
-    /*fprintf(stderr, "list_add_notice(%p)\n", notice);
-    dump_noticelist();*/
-}   
-
-/* remove notice from table. If refcount reaches 0, return 1; if refcount is 
-   still positive, return 0; if notice not there, return -1. */
-int 
-list_del_notice(ZNotice_t *notice)
-{
-    notnode *pt, **ppt;
-    int bx = list_hash_fun(notice);
-
-    for (pt=notlist[bx]; pt && pt->notice!=notice; pt=pt->next);
-
-    if (!pt) {
-       /* no entry */
-       /*fprintf(stderr, "list_del_notice(%p): ERROR\n", notice);
-       dump_noticelist();*/
-       return (-1);
-    }
-
-    pt->refcount--;
-    if (pt->refcount > 0) {
-       /*fprintf(stderr, "list_del_notice(%p): count %d\n", notice, pt->refcount);
-       dump_noticelist();*/
-       return 0;
-    }
-
-    for (ppt = &(notlist[bx]); (*ppt)!=pt; ppt = &((*ppt)->next));
-
-    *ppt = (*ppt)->next;
-
-    if (!pt->fake_notice)
-       ZFreeNotice(pt->notice);
-    if (pt->hname)
-      free(pt->hname);
-    free(pt->notice);
-    free(pt);
-
-    /*fprintf(stderr, "list_del_notice(%p): count 0, gone\n", notice);*/
-    /*dump_noticelist();*/
-    return 1;
-}
-
-void 
-set_notice_fake(ZNotice_t *notice, int val)
-{
-    notnode *pt;
-    int bx = list_hash_fun(notice);
-
-    for (pt=notlist[bx]; pt && pt->notice!=notice; pt=pt->next);
-
-    if (pt) {
-       pt->fake_notice = val;
-    }
-}
-
-int 
-get_notice_fake(ZNotice_t *notice)
-{
-    notnode *pt;
-    int bx = list_hash_fun(notice);
-
-    for (pt=notlist[bx]; pt && pt->notice!=notice; pt=pt->next);
-
-    if (pt) {
-       return pt->fake_notice;
-    }
-    else 
-       return 0;
-}
-
-int 
-get_list_refcount(ZNotice_t *notice)
-{
-    notnode *pt;
-    int bx = list_hash_fun(notice);
-
-    for (pt=notlist[bx]; pt && pt->notice!=notice; pt=pt->next);
-
-    if (pt) {
-       /*fprintf(stderr, "get_list_refcount(%p): count %d\n", notice, pt->refcount);*/
-       return pt->refcount;
-    }
-    else {
-       /*fprintf(stderr, "get_list_refcount(%p): count 0\n", notice);*/
-       return 0;
-    }
-}
-
-/* export a reference to the current notice. */
-ZNotice_t *
-get_stored_notice(void)
-{
-    if (!stored_notice)
-       return NULL;
-
-    list_add_notice(stored_notice);
-
-    return stored_notice;
-}
-
-void 
-set_stored_notice(ZNotice_t *notice)
-{
-    stored_notice = notice;
-}
-
-void 
-plus_retry_notice(ZNotice_t *notice, char ch, int metaflag)
-{
-    char buf[128];
-    char *tmp;
-    notnode *pt;
-    int bx;
-
-    if (!notice)
-       return;
-
-    bx = list_hash_fun(notice);
-    for (pt=notlist[bx]; pt && pt->notice!=notice; pt=pt->next);
-
-    if (metaflag) tmp = "-meta";
-    else tmp = "";
-
-    if (ch==' ')
-       sprintf(buf, "key%s-space", tmp);
-    else if (ch==127)
-       sprintf(buf, "key%s-delete", tmp);
-    else if (ch==0)
-       sprintf(buf, "key%s-ctrl-@", tmp);
-    else if (ch==27)
-       sprintf(buf, "key%s-esc", tmp);
-    else if (isprint(ch))
-       sprintf(buf, "key%s-%c", tmp, ch);
-    else if (ch>=1 && ch<=26)
-       sprintf(buf, "key%s-ctrl-%c", tmp, ch+'a'-1);
-    else if (iscntrl(ch))
-       sprintf(buf, "key%s-ctrl-%c", tmp, ch+'A'-1);
-    else
-       sprintf(buf, "key%s-unknown", tmp);
-
-    /* concat the old opcode if they're running in "new" mode */
-    if (zwgcplus == 2 && pt && pt->opcode[0] && 
-       strcmp(pt->opcode, "") != 0) 
-      {
-       strcat(buf, " ");
-       strncat(buf, pt->opcode, sizeof(buf)-strlen(buf));
-      }
-      
-    notice->z_version = "zwgcplus-repeat";
-    notice->z_opcode = buf;
-
-    reprocess_notice(notice, NULL);
-}
-#endif /* CMU_ZWGCPLUS */
diff --git a/zephyr/zwgc/plus.h b/zephyr/zwgc/plus.h
deleted file mode 100644 (file)
index 7a6f052..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 
-  This file contains code related to the zwgcplus extension to zwgc.
-  zwgc is copyrighted by the Massachusetts Institute of Technology.
-  This file is public domain.
-  Written by Andrew Plotkin, ap1i+@andrew.cmu.edu
- */
-
-#define NAMESIZE (256)
-
-extern int get_full_names;
-extern int zwgcplus;
-
-extern void init_noticelist(void);
-extern void dump_noticelist(void);
-extern void list_add_notice(ZNotice_t *notice);
-extern int list_del_notice(ZNotice_t *notice);
-extern int get_list_refcount(ZNotice_t *notice);
-extern void set_notice_fake(ZNotice_t *notice, int val);
-extern int get_notice_fake(ZNotice_t *notice);
-extern ZNotice_t *get_stored_notice(void);
-extern void plus_retry_notice(ZNotice_t *notice, char ch, int metaflag);
-extern void set_stored_notice(ZNotice_t *notice);
-extern void plus_window_deletions(ZNotice_t *notice); /* actually in xshow.c */
-
-extern void plus_queue_notice(ZNotice_t *notice);
-extern long plus_timequeue_events(void);
diff --git a/zephyr/zwgc/pointer.h b/zephyr/zwgc/pointer.h
deleted file mode 100644 (file)
index e967d85..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: pointer.h 2091 2007-12-20 01:17:23Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef pointer_MODULE
-#define pointer_MODULE
-
-#ifdef __STDC__
-typedef void *pointer;
-#else
-typedef char *pointer;
-#endif
-
-#endif
diff --git a/zephyr/zwgc/port.c b/zephyr/zwgc/port.c
deleted file mode 100644 (file)
index 3592753..0000000
+++ /dev/null
@@ -1,656 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: port.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_port_c[] = "$Id: port.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*                    The Implementation of the port type:                  */
-/*                                                                          */
-/****************************************************************************/
-
-#include "new_string.h"
-#include "port_dictionary.h"
-#include "port.h"
-#include "notice.h"
-#include "variables.h"
-
-/****************************************************************************/
-/*                                                                          */
-/*                        Port methods (internal):                          */
-/*                                                                          */
-/****************************************************************************/
-
-static string
-port_get(port *p)
-{
-    char *(*get_proc)(port *, char **);
-    char *error = NULL;
-    char *result;
-
-    if (p->status & INPUT_CLOSED) {
-       var_set_variable("error",
-                   "Attempt to read from a port whose input has been closed");
-       return(string_Copy(""));
-    }
-
-    get_proc = p->get;
-    if (!get_proc) {
-       var_set_variable("error",
-                "Attempt to read from a port which does not support reading");
-       return(string_Copy(""));
-    }
-
-    result = get_proc(p, &error);
-    if (!result) {
-       var_set_variable("error", error);
-       return(string_Copy(""));
-    } else
-      return(result);
-}
-
-static void
-port_put(port *p,
-        char *data,
-        int length)
-{
-    char *(*put_proc)(port *, char *, int);
-    char *error;
-
-    if (p->status & OUTPUT_CLOSED) {
-       var_set_variable("error",
-                "Attempt to write to a port whose output has been closed");
-       return;
-    }
-
-    put_proc = p->put;
-    if (!put_proc) {
-       var_set_variable("error",
-                "Attempt to write to a port which does not support writing");
-       return;
-    }
-
-    error = put_proc(p, data, length);
-    if (error)
-      var_set_variable("error", error);
-}
-
-static void
-port_close_input(port *p)
-{
-    char *(*close_input_proc)(port *);
-    char *error;
-
-    if (p->status & INPUT_CLOSED)
-      return;
-    p->status |= INPUT_CLOSED;
-
-    close_input_proc = p->close_input;
-    if (!close_input_proc)
-      return;
-
-    error = close_input_proc(p);
-    if (error)
-      var_set_variable("error", error);
-}
-
-static void
-port_close_output(port *p)
-{
-    char *(*close_output_proc)(port *);
-    char *error;
-
-    if (p->status & OUTPUT_CLOSED)
-      return;
-    p->status |= OUTPUT_CLOSED;
-
-    close_output_proc = p->close_output;
-    if (!close_output_proc)
-      return;
-
-    error = close_output_proc(p);
-    if (error)
-      var_set_variable("error", error);
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*                 Code to implement a namespace of ports:                  */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- * port_dict - the dictionary mapping portnames to ports
- */
-
-static port_dictionary port_dict = NULL;
-
-/*
- *    void init_ports()
- *        Modifies: all ports
- *        Effects: Closes all existing ports.  Must be called before
- *                 any other port call is made.
- */
-
-static void
-close_port_from_binding(port_dictionary_binding *b)
-{
-    port_close_input(&(b->value));
-    port_close_output(&(b->value));
-}
-
-void
-init_ports(void)
-{
-    if (port_dict) {
-       port_dictionary_Enumerate(port_dict, close_port_from_binding);
-       port_dictionary_Destroy(port_dict);
-    }
-
-    port_dict = port_dictionary_Create(31);
-}
-
-/*
- * Internal Routine:
- *
- *    port *create_named_port(string name)
- *        Modifies: the port named name
- *        Requires: init_ports has been called
- *        Effects: If a port with name name already exists, it is first
- *                 closed (& destroyed).  A new unfilled in port is then
- *                 created and assigned the name name.  Its address is
- *                 then returned.  It is up to the caller to fill in its
- *                 various fields correctly.
- */
-
-static port *
-create_named_port(string name)
-{
-    int already_exists;
-    port_dictionary_binding *binding;
-
-    binding = port_dictionary_Define(port_dict, name, &already_exists);
-    if (already_exists) {
-       port_close_input(&(binding->value));
-       port_close_output(&(binding->value));
-    }
-
-    return(&(binding->value));
-}
-
-/*
- * Internal Routine:
- *
- *    port *get_named_port(string name)
- *        Requires: init_ports has been called
- *        Effects: If there is a port by name name, returns a pointer to
- *                 it.  Otherwise returns NULL.
- */
-
-static port *
-get_named_port(string name)
-{
-    port_dictionary_binding *binding;
-
-    binding = port_dictionary_Lookup(port_dict, name);
-    if (!binding)
-      return(NULL);
-
-    return(&(binding->value));
-}
-    
-/****************************************************************************/
-/*                                                                          */
-/*                    External interface to named ports:                    */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- *    string read_from_port(string name)
- *        Requires: init_ports has been called
- *        Modifies: the port named name if any, $error
- *        Effects: If a port by name name does not exist, sets $error to
- *                 "No such port" & returns "".  Otherwise, attempts to
- *                 read from that port.  If an error occurs, $error is
- *                 set to the error message and "" returned.  Otherwise
- *                 the read string is returned.  The returned string is
- *                 on the heap & must be eventually freed.
- */
-
-string
-read_from_port(string name)
-{
-    port *p;
-
-    if (!(p = get_named_port(name))) {
-       var_set_variable("error", "No such port");
-       return(string_Copy(""));
-    }
-
-    return(port_get(p));
-}
-
-/*
- *    void write_on_port(string name, char *text, int length)
- *        Requires: init_ports has been called, length>=0
- *        Modifies: the port named name if any, $error
- *        Effects: If a port by name name does not exist, sets $error to
- *                 "No such port" & returns.  Otherwise, attempts to
- *                 write text[0..length-1] on that port.  If an error
- *                 occurs, $error is set to the error message.
- */
-
-void
-write_on_port(string name,
-             char *text,
-             int length)
-{
-    port *p;
-
-    if (!(p = get_named_port(name))) {
-       var_set_variable("error", "No such port");
-       return;
-    }
-
-    port_put(p, text, length);
-}
-
-/*
- *    void close_port_input(string name)
- *        Requires: init_ports has been called
- *        Modifies: the port named name if any, $error
- *        Effects: If a port by name name does not exist, sets $error to
- *                 "No such port" & returns.  Otherwise, closes the
- *                 input part of the port by name name.  When both a
- *                 port's input & output parts have been closed, the
- *                 port is deleted to save space.  If an error
- *                 occurs, $error is set to the error message.
- */
-
-void
-close_port_input(string name)
-{
-    port_dictionary_binding *binding;
-
-    binding = port_dictionary_Lookup(port_dict, name);
-    if (!binding)
-      return;
-
-    port_close_input(&(binding->value));
-    if (binding->value.status == PORT_CLOSED)
-      port_dictionary_Delete(port_dict, binding);
-}
-
-/*
- *    void close_port_output(string name)
- *        Requires: init_ports has been called
- *        Modifies: the port named name if any, $error
- *        Effects: If a port by name name does not exist, sets $error to
- *                 "No such port" & returns.  Otherwise, closes the
- *                 output part of the port by name name.  When both a
- *                 port's input & output parts have been closed, the
- *                 port is deleted to save space.  If an error
- *                 occurs, $error is set to the error message.
- */
-
-void
-close_port_output(string name)
-{
-    port_dictionary_binding *binding;
-
-    binding = port_dictionary_Lookup(port_dict, name);
-    if (!binding)
-      return;
-
-    port_close_output(&(binding->value));
-    if (binding->value.status == PORT_CLOSED)
-      port_dictionary_Delete(port_dict, binding);
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*               Code to implement a port given some FILE *'s:              */
-/*                                                                          */
-/****************************************************************************/
-
-static string
-get_file(port *p,
-        char **error_p)
-{
-    char buffer[10000]; /* <<<>>> */
-
-    if (!p->data.file.input_connector) {
-       *error_p = "Attempt to read past end of file";
-       return(NULL);
-    }
-
-    buffer[0] = 0;
-    errno = 0;
-    if (!fgets(buffer, 9999, p->data.file.input_connector)) {
-       if (errno)
-         *error_p = strerror(errno);
-       else
-         *error_p = "Attempt to read past end of file";
-
-       return(NULL);
-    }
-
-    buffer[9999] = 0;
-    return(string_Copy(buffer));
-}
-
-static char *
-put_file(port *p,
-        string text,
-        int length)
-{
-    if (!p->data.file.output_connector)
-      return(NULL);
-
-    errno = 0;
-    fwrite(text, 1, length, p->data.file.output_connector);
-    fflush(p->data.file.output_connector);
-
-    if (errno)
-      return(strerror(errno));
-
-    return(NULL);
-}
-
-static char *
-close_file_input(port *p)
-{
-    errno = 0;
-    if (p->data.file.input_connector) {
-       fclose(p->data.file.input_connector);
-       p->data.file.input_connector = 0;
-    }
-
-    if (errno)
-      return(strerror(errno));
-
-    return(NULL);
-}
-
-static char *
-close_file_output(port *p)
-{
-    errno = 0;
-    if (p->data.file.output_connector) {
-       fclose(p->data.file.output_connector);
-       p->data.file.output_connector = 0;
-    }
-
-    if (errno)
-      return(strerror(errno));
-
-    return(NULL);
-}
-
-void create_port_from_files(string name,
-                           FILE *input,
-                           FILE *output)
-{
-    port *p = create_named_port(name);
-
-#if !defined(__HIGHC__)
-    p->get = input ? get_file : NULL;
-    p->put = output ? put_file : NULL;
-#else
-    /* RT compiler (hc2.1y) bug workaround */
-    if (input)
-        p->get = get_file;
-    else
-        p->get = NULL;
-    if (output)
-        p->put = put_file;
-    else
-        p->put = NULL;
-#endif
-    p->close_input = close_file_input;
-    p->close_output = close_file_output;
-    p->status = 0;
-    p->data.file.input_connector = input;
-    p->data.file.output_connector = output;
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*            Code for creating various types of FILE * ports:              */
-/*                                                                          */
-/****************************************************************************/
-
-void
-create_subprocess_port(string name,
-                      char **argv)
-{
-    int pid;
-    int to_child_descriptors[2];
-    int to_parent_descriptors[2];
-    FILE *in = 0;
-    FILE *out = 0;
-
-    /* <<<>>> (file leak) */
-    if (pipe(to_child_descriptors)!=0 || pipe(to_parent_descriptors)!=0)
-      return;
-
-    pid = fork();
-    if (pid == -1) {
-       fprintf(stderr, "zwgc: error while attempting to fork: ");
-       perror("");
-       return; /* <<<>>> */
-    } else if (pid == 0) { /* in child */
-       close(0);
-       close(1);
-       dup2(to_child_descriptors[0], 0);
-       dup2(to_parent_descriptors[1], 1);
-       close(to_child_descriptors[1]);
-       close(to_parent_descriptors[0]);
-
-       execvp(argv[0], argv);
-       fprintf(stderr,"zwgc: unable to exec %s: ", argv[0]);
-       perror("");
-       _exit(errno);
-    }
-
-    fcntl(to_parent_descriptors[0], F_SETFD, 1);
-    fcntl(to_child_descriptors[1], F_SETFD, 1);
-    in = fdopen(to_parent_descriptors[0],"r");
-    out = fdopen(to_child_descriptors[1],"w");
-    close(to_child_descriptors[0]);
-    close(to_parent_descriptors[1]);
-
-    create_port_from_files(name, in, out);
-}
-
-void
-create_file_append_port(string name,
-                       string filename)
-{
-    FILE *out;
-    int oumask;
-
-    errno = 0;
-
-    oumask = umask(077);               /* allow read/write for us only */
-    out = fopen(filename, "a");
-    (void) umask(oumask);
-    if (out == NULL) {
-       var_set_variable("error", strerror(errno));
-       return;
-    }
-
-    create_port_from_files(name, 0, out);
-}
-
-void
-create_file_input_port(string name,
-                      string filename)
-{
-    FILE *in;
-
-    errno = 0;
-    in = fopen(filename, "r");
-    if (in == NULL) {
-       var_set_variable("error", strerror(errno));
-       return;
-    }
-
-    create_port_from_files(name, in, 0);
-}
-
-void
-create_file_output_port(string name,
-                       string filename)
-{
-    FILE *out;
-    int oumask;
-
-    errno = 0;
-
-    oumask = umask(077);               /* allow read/write for us only */
-    out = fopen(filename, "w");
-    (void) umask(oumask);
-    if (out == NULL) {
-       var_set_variable("error", strerror(errno));
-       return;
-    }
-
-    create_port_from_files(name, 0, out);
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*             Code to implement a port given a filter function:            */
-/*                                                                          */
-/****************************************************************************/
-
-static string
-get_filter(port *p,
-          char **error_p)
-{
-    string result;
-
-    if (string_stack_empty(p->data.filter.waiting_packets)) {
-       *error_p = "Attempt to read from port when no data available";
-       return(NULL);
-    }
-
-    result = string_stack_top(p->data.filter.waiting_packets);
-    string_stack_pop(p->data.filter.waiting_packets);
-    return(result);
-}
-
-static char *
-put_filter(port *p,
-          string text,
-          int length)
-{
-    string input;
-    string output;
-
-    if (p->status & INPUT_CLOSED)
-      return(NULL);
-
-    input = convert_nulls_to_newlines(text, length);
-    output = (*(p->data.filter.filter))(input);
-    free(input);
-    string_stack_push(p->data.filter.waiting_packets, output);
-    return(NULL);
-}
-
-static char *
-close_filter_input(port *p)
-{
-    while (!string_stack_empty(p->data.filter.waiting_packets))
-      string_stack_pop(p->data.filter.waiting_packets);
-
-    return(NULL);
-}
-
-/*ARGSUSED*/
-static char *
-close_filter_output(port *p)
-{
-    return(NULL);
-}
-
-void
-create_port_from_filter(string name,
-                       string (*filter)(string))
-{
-    port *p = create_named_port(name);
-
-    p->get = get_filter;
-    p->put = put_filter;
-    p->close_input = close_filter_input;
-    p->close_output = close_filter_output;
-    p->status = 0;
-    p->data.filter.waiting_packets = string_stack_create();
-    p->data.filter.filter = filter;
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*             Code to implement a port given an output function:           */
-/*                                                                          */
-/****************************************************************************/
-
-static char *
-put_output(port *p,
-          string text,
-          int length)
-{
-    string input;
-    char *error;
-
-    input = convert_nulls_to_newlines(text, length);
-    error = p->data.output.output(input);
-    free(input);
-    return(error);
-}
-
-/*ARGSUSED*/
-static char *
-close_output(port *p)
-{
-    return(NULL);
-}
-
-void
-create_port_from_output_proc(string name,
-                            char *(*output)(string))
-{
-#ifdef SABER /* Yes, it's another ANSI incompatiblity */
-    port *p;
-#else
-    port *p = create_named_port(name);
-#endif
-
-#ifdef SABER
-    p = create_named_port(name);
-#endif
-
-    p->get = NULL;
-    p->put = put_output;
-    p->close_input = close_output;
-    p->close_output = close_output;
-    p->status = 0;
-    p->data.output.output = output;
-}
diff --git a/zephyr/zwgc/port.h b/zephyr/zwgc/port.h
deleted file mode 100644 (file)
index f9d9d6c..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-#ifndef port_TYPE
-#define port_TYPE
-
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: port.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#include <stdio.h>
-#include "new_string.h"
-#include "string_stack.h"
-
-union port__data {
-    struct {
-       FILE *input_connector;
-       FILE *output_connector;
-    } file;
-    struct {
-       string_stack waiting_packets;
-       string (*filter)(string);
-    } filter;
-    struct {
-       char *(*output)(string);
-    } output;
-};
-
-typedef struct port__struct {                /* PRIVATE */
-    char *(*get)(struct port__struct *, char **);
-    char *(*put)(struct port__struct *, char *, int);
-    char *(*close_input)(struct port__struct *);
-    char *(*close_output)(struct port__struct *);
-#define  INPUT_CLOSED   0x1
-#define  OUTPUT_CLOSED  0x2
-#define  PORT_CLOSED    0x3
-    int status;
-    union port__data data;
-} port;
-
-/*
- *    void init_ports()
- *        Modifies: all ports
- *        Effects: Closes all existing ports.  Must be called before
- *                 any other port call is made.
- */
-
-extern void init_ports(void);
-
-/*
- *    string read_from_port(string name)
- *        Requires: init_ports has been called
- *        Modifies: the port named name if any, $error
- *        Effects: If a port by name name does not exist, sets $error to
- *                 "No such port" & returns "".  Otherwise, attempts to
- *                 read from that port.  If an error occurs, $error is
- *                 set to the error message and "" returned.  Otherwise
- *                 the read string is returned.  The returned string is
- *                 on the heap & must be eventually freed.
- */
-
-extern string read_from_port(string);
-
-/*
- *    void write_on_port(string name, char *text, int length)
- *        Requires: init_ports has been called, length>=0
- *        Modifies: the port named name if any, $error
- *        Effects: If a port by name name does not exist, sets $error to
- *                 "No such port" & returns.  Otherwise, attempts to
- *                 write text[0..length-1] on that port.  If an error
- *                 occurs, $error is set to the error message.
- */
-
-extern void write_on_port(string, char *, int);
-
-/*
- *    void close_port_input(string name)
- *        Requires: init_ports has been called
- *        Modifies: the port named name if any, $error
- *        Effects: If a port by name name does not exist, sets $error to
- *                 "No such port" & returns.  Otherwise, closes the
- *                 input part of the port by name name.  When both a
- *                 port's input & output parts have been closed, the
- *                 port is deleted to save space.  If an error
- *                 occurs, $error is set to the error message.
- */
-
-extern void close_port_input(string);
-
-/*
- *    void close_port_output(string name)
- *        Requires: init_ports has been called
- *        Modifies: the port named name if any, $error
- *        Effects: If a port by name name does not exist, sets $error to
- *                 "No such port" & returns.  Otherwise, closes the
- *                 output part of the port by name name.  When both a
- *                 port's input & output parts have been closed, the
- *                 port is deleted to save space.  If an error
- *                 occurs, $error is set to the error message.
- */
-
-extern void close_port_output(string);
-
-
-extern void create_subprocess_port(string, char **);
-extern void create_file_append_port(string, string);
-extern void create_file_input_port(string, string);
-extern void create_file_output_port(string, string);
-extern void create_port_from_filter(string, string (*)(string));
-extern void create_port_from_output_proc(string, char *(*)(string));
-
-extern void init_standard_ports(int *, char **);
-extern void create_port_from_files(string, FILE *, FILE *);
-
-#endif
diff --git a/zephyr/zwgc/regexp.c b/zephyr/zwgc/regexp.c
deleted file mode 100644 (file)
index 90f3458..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: regexp.c 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-#include <regex.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_regexp_c[] = "$Id: regexp.c 2133 2008-01-21 03:11:44Z kcr $";
-#endif
-
-#include "regexp.h"
-
-int
-ed_regexp_match_p(string test_string,
-                 string pattern)
-{
-    regex_t RE;
-    int retval;
-    char errbuf[512];
-
-    retval = regcomp(&RE, pattern, REG_NOSUB);
-    if (retval != 0) {
-       regerror(retval, &RE, errbuf, sizeof(errbuf));
-       fprintf(stderr,"%s in regcomp %s\n",errbuf,pattern);
-       return(0);
-    }
-    retval = regexec(&RE, test_string, 0, NULL, 0);
-    if (retval != 0 && retval != REG_NOMATCH) {
-       regerror(retval, &RE, errbuf, sizeof(errbuf));
-       fprintf(stderr,"%s in regexec %s\n",errbuf,pattern);
-       regfree(&RE);
-       return(0);
-    }
-    regfree(&RE);
-    return(retval == 0 ? 1 : 0);
-}
diff --git a/zephyr/zwgc/regexp.h b/zephyr/zwgc/regexp.h
deleted file mode 100644 (file)
index e231cc6..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: regexp.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef regexp_MODULE
-#define regexp_MODULE
-
-#include "new_string.h"
-
-extern int ed_regexp_match_p(string, string);
-
-#endif
diff --git a/zephyr/zwgc/stack.h b/zephyr/zwgc/stack.h
deleted file mode 100644 (file)
index 5c56837..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: stack.h 2091 2007-12-20 01:17:23Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*               A generic stack type based on linked lists:                */
-/*                                                                          */
-/****************************************************************************/
-
-#ifndef TYPE_T_stack_TYPE
-#define TYPE_T_stack_TYPE
-
-#ifndef  NULL
-#define  NULL 0
-#endif
-
-typedef struct _TYPE_T_stack {
-    struct _TYPE_T_stack *next;
-    TYPE_T data;
-} *TYPE_T_stack;
-
-#define  TYPE_T_stack_create()           ((struct _TYPE_T_stack *) NULL)
-
-#define  TYPE_T_stack_empty(stack)       (!(stack))
-
-#ifdef DEBUG
-#define  TYPE_T_stack_top(stack)         ((stack) ? (stack)->data :\
-                                         (abort(),(stack)->data))
-#else
-#define  TYPE_T_stack_top(stack)         ((stack)->data)
-#endif
-
-#ifdef DEBUG
-#define  TYPE_T_stack_pop(stack)  { TYPE_T_stack old = (stack);\
-                                   if (!old)\
-                                     abort(); /*<<<>>>*/\
-                                   (stack) = old->next;\
-                                   free(old); }
-#else
-#define  TYPE_T_stack_pop(stack)  { TYPE_T_stack old = (stack);\
-                                   (stack) = old->next;\
-                                   free(old); }
-#endif
-
-#define  TYPE_T_stack_push(stack,object) \
-           { TYPE_T_stack new = (struct _TYPE_T_stack *)\
-              malloc(sizeof (struct _TYPE_T_stack));\
-            new->next = (stack);\
-            new->data = object;\
-            (stack) = new; }
-
-#endif
diff --git a/zephyr/zwgc/standard_ports.c b/zephyr/zwgc/standard_ports.c
deleted file mode 100644 (file)
index e07b8ab..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: standard_ports.c 2328 2009-03-22 17:34:39Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_standard_ports_c[] = "$Id: standard_ports.c 2328 2009-03-22 17:34:39Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*                        Code to setup standard ports:                     */
-/*                                                                          */
-/****************************************************************************/
-
-#include <zephyr/zephyr.h>
-#include "new_memory.h"
-#include "port.h"
-#include "variables.h"
-#include "error.h"
-#include "main.h"
-
-extern char *tty_filter(string, int);
-extern int tty_filter_init(char *, char, int *, char **);
-
-#ifndef X_DISPLAY_MISSING
-extern char *X_driver(string);
-extern int X_driver_init(char *, char, int *, char **);
-#endif
-
-extern void usage(void);
-
-/*
- *
- */
-
-char *
-plain_driver(string input)
-{
-    string processed_input = tty_filter(input, 0);
-
-    fputs(processed_input, stdout);
-    fflush(stdout);
-    free(processed_input);
-    return(NULL);
-}
-
-/*
- *
- */
-
-char *
-tty_driver(string input)
-{
-    string processed_input = tty_filter(input, 1);
-
-    fputs(processed_input, stdout);
-    fflush(stdout);
-    free(processed_input);
-    return(NULL);
-}
-
-/*
- *
- */
-
-string
-noop_filter(string input)
-{
-    return(input);
-}
-
-/*
- *
- */
-
-string
-plain_filter(string input)
-{
-    return(tty_filter(input, 0));
-}
-
-/*
- *
- */
-
-string
-fancy_filter(string input)
-{
-    return(tty_filter(input, 1));
-}
-
-/*
- *
- */
-
-static struct standard_port_info {
-    char *port_name;
-/*
- * 0 = ok to use as the default output port
- * 1 = not ok to use as the default output port
- * 2 = disabled
- */
-#define        DEFAULT_OK      0
-#define        DEFAULT_NOTOK   1
-#define        DISABLED        2
-
-    int port_setup_status;
-    int (*port_init)(char *, char, int *, char **);
-#define  INPUT_DESC  0
-#define  OUTPUT_DESC 1
-#define  FILTER      2
-#define  OUTPUT_PROC 3
-    int type;
-    char *(*function)(string);
-    int setup_arg;
-} standard_port_info_table[] = {
-#ifndef X_DISPLAY_MISSING
-{ "X",            DEFAULT_OK, X_driver_init,      OUTPUT_PROC, X_driver, 0},
-{ "tty",          DEFAULT_NOTOK, tty_filter_init, OUTPUT_PROC, tty_driver,  0},
-#else
-{ "tty",          DEFAULT_OK, tty_filter_init, OUTPUT_PROC, tty_driver,  0},
-#endif
-{ "plain",        DEFAULT_NOTOK, tty_filter_init, OUTPUT_PROC, plain_driver, 0},
-{ "stdout",       DEFAULT_NOTOK, NULL,            OUTPUT_DESC, NULL, 1},
-{ "stderr",       DEFAULT_NOTOK, NULL,            OUTPUT_DESC, NULL, 2},
-
-{ "stdin",        DEFAULT_NOTOK, NULL,            INPUT_DESC,  NULL, 0},
-{ "loopback",     DEFAULT_NOTOK, NULL,            FILTER, noop_filter, 0},
-{ "plain_filter", DEFAULT_NOTOK, tty_filter_init, FILTER, plain_filter, 0},
-{ "tty_filter",   DEFAULT_NOTOK, tty_filter_init, FILTER, fancy_filter, 0},
-
-{ NULL,           DISABLED, NULL,            FILTER,      NULL,         0} };
-
-/*
- * <<<>>>
- */
-
-static struct standard_port_info *
-get_standard_port_info(string port_name)
-{
-    struct standard_port_info *p;
-
-    for (p=standard_port_info_table; p->port_name; p++)
-      if (string_Eq(p->port_name, port_name) && p->port_setup_status!=DISABLED)
-        return(p);
-
-    return(NULL);
-}
-
-/*
- *  Internal Routine:
- *
- *    int boolean_value_of(string text)
- *         Effects: If text represents yes/true/on, return 1.  If text
- *                  representes no/false/off, return 0.  Otherwise,
- *                  returns -1.
- */
-
-static int
-boolean_value_of(string text)
-{
-    if (!text)
-       return(-1);                     /* not set */
-    if (!strcasecmp("yes", text) || !strcasecmp("y", text) ||
-        !strcasecmp("true", text) || !strcasecmp("t", text) ||
-        !strcasecmp("on", text))
-      return(1);
-    else if (!strcasecmp("no", text) || !strcasecmp("n", text) ||
-        !strcasecmp("false", text) || !strcasecmp("f", text) ||
-        !strcasecmp("off", text))
-      return(0);
-    else
-      return(-1);
-}
-
-/*
- *
- */
-
-void init_standard_ports(int *pargc,
-                        char **argv)
-{
-    struct standard_port_info *p;
-    string first_working_port = "";
-    string default_port = "";
-    char **new, **current;
-    int fallback;
-
-    /*
-     * Process argument list handling "-disable <port>" and
-     * "-default <output port>" arguments, as well as "-ttymode"
-     */
-    for (new=current=argv+1; *current; current++) {
-        if (string_Eq((string) *current, "-disable")) {
-            current++; *pargc -= 2;
-            if (!*current)
-              usage();
-           p = get_standard_port_info((string) *current);
-            if (p)
-               p->port_setup_status = DISABLED;
-        } else if (string_Eq((string) *current, "-default")) {
-            current++; *pargc -= 2;
-            if (!*current)
-              usage();
-            default_port = (string) *current;
-           p = get_standard_port_info((string) *current);
-            if (p)
-               p->port_setup_status = DEFAULT_OK;
-        } else if (string_Eq((string) *current, "-ttymode")) {
-           default_port = (string) "tty";
-           (*pargc)--;
-           p = get_standard_port_info(default_port);
-            if (p) {
-               p->port_setup_status = DEFAULT_OK;
-               p = get_standard_port_info ((string) "X");
-               if (p)
-                   p->port_setup_status = DISABLED;
-           }
-       } else
-          *(new++) = *current;
-    }
-    *new = *current;
-
-    fallback = boolean_value_of(ZGetVariable("fallback"));
-    /*
-     * Initialize all non-disabled ports.  If a port reports an error,
-     * disable that port.  Set default_port if not already set
-     * by the -default argument to the first non-disabled port.
-     */
-    for (p = standard_port_info_table; p->port_name; p++) {
-        if (p->port_setup_status == DISABLED)
-          continue;
-
-        if (p->port_init && (*(p->port_init))(p->port_name,
-                                             *first_working_port,
-                                             pargc, argv)) {
-            p->port_setup_status = DISABLED;
-            continue;
-        }
-
-       if (fallback == 1) {
-           /* we are doing fallback,  make DEFAULT_NOTOK ports OK */
-           p->port_setup_status = DEFAULT_OK;
-       }
-        if (!*first_working_port)
-          first_working_port = p->port_name;
-       switch (p->type) {
-         case INPUT_DESC:
-           create_port_from_files(p->port_name, fdopen(p->setup_arg, "r"),0);
-           break;
-
-         case OUTPUT_DESC:
-           create_port_from_files(p->port_name, 0, fdopen(p->setup_arg, "w"));
-           break;
-
-         case FILTER:
-           create_port_from_filter(p->port_name, p->function);
-           break;
-
-         case OUTPUT_PROC:
-           create_port_from_output_proc(p->port_name, p->function);
-           break;
-       }
-    }
-
-    if (!default_port[0]) {
-       /* no default port has been set */
-       for (p = get_standard_port_info(first_working_port); p->port_name; p++)
-           if ((p->port_setup_status == DEFAULT_OK))
-               break;
-       if (p->port_name)
-           var_set_variable("output_driver", p->port_name);
-       else { /* no suitable default has been found */
-           if (fallback == -1)         /* complain, since indeterminate */
-               ERROR2(
-"To receive Zephyrgrams, (type `%s -ttymode').\n",
-                     progname);
-           exit(1);
-       }
-    } else
-       var_set_variable("output_driver", default_port);
-
-}
diff --git a/zephyr/zwgc/string_dictionary_aux.c b/zephyr/zwgc/string_dictionary_aux.c
deleted file mode 100644 (file)
index ebeb501..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: string_dictionary_aux.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_string_dictionary_aux_c[] = "$Id: string_dictionary_aux.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-/*
- * string_dictionary_aux - a module implementing convenience routines for use
- *                         with string_dictionarys
- *
- * Overview:
- *
- *       This module implements Fetch and Set operations on
- *    string_dictionaries which take the place of Define and Lookup for
- *    most uses.  The importance difference between them and Define and
- *    Lookup is that they maintain the invariant that all the value strings
- *    in a string_dictionary are on the heap.  In particular, they do
- *    free's and string_Copy's whenever needed.  Also implemented is
- *    SafeDestroy which does a Destroy after freeing all the value strings
- *    in a string_dictionary.
- */
-
-#include <sysdep.h>
-#include "new_memory.h"
-#include "string_dictionary.h"
-
-/*
- *    void string_dictionary_Set(string_dictionary d, string key,string value):
- *        Modifies: d
- *        Effects: Binds key to value in d.  Automatically free's the
- *                 previous value of key, if any.  Value is copied on the
- *                 heap.
- */
-
-void
-string__dictionary_Set(string_dictionary d,
-                      string key,
-                      string value)
-{
-    string_dictionary_binding *binding;
-    int already_exists;
-
-    binding = string_dictionary_Define(d, key, &already_exists);
-    if (already_exists)
-      free(binding->value);
-
-    binding->value = string_Copy(value);
-}
-
-/*
- *    char *string_dictionary_Fetch(string_dictionary d, string key)
- *        Effects: If key is not bound in d, returns 0.  Otherwise,
- *                 returns the value that key is bound to.  
- *                 Note that the returned string if any should not be
- *                 freed or modified in any way.  Note also that it may
- *                 disappear later if key is rebound.
- */
-
-char *
-string_dictionary_Fetch(string_dictionary d,
-                       string key)
-{
-    string_dictionary_binding *binding;
-
-    binding = string_dictionary_Lookup(d, key);
-    if (!binding)
-      return(0);
-
-    return(binding->value);
-}
-
-/*
- *    void string_dictionary_SafeDestroy(string_dictionary d)
- *        Modifies: d
- *        Effects: Like string_dictionary_Destroy except first frees
- *                 all value's in the dictionary.
- */
-
-static void
-free_value_of_binding(string_dictionary_binding *b)
-{
-    free(b->value);
-}
-
-void
-string_dictionary_SafeDestroy(string_dictionary d)
-{
-    string_dictionary_Enumerate(d, free_value_of_binding);
-    string_dictionary_Destroy(d);
-}
diff --git a/zephyr/zwgc/string_dictionary_aux.h b/zephyr/zwgc/string_dictionary_aux.h
deleted file mode 100644 (file)
index ae9b7ff..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: string_dictionary_aux.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#ifndef string_dictionary_aux_MODULE
-#define string_dictionary_aux_MODULE
-
-#include "new_memory.h"
-#include "string_dictionary.h"
-
-/*
- *    void string_dictionary_Set(string_dictionary d, string key,string value):
- *        Modifies: d
- *        Effects: Binds key to value in d.  Automatically free's the
- *                 previous value of key, if any.  Value is copied on the
- *                 heap.
- */
-
-extern void string__dictionary_Set(string_dictionary, string, string);
-#ifdef DEBUG_MEMORY
-#define string_dictionary_Set(a,b,c)         (set_module(__FILE__,__LINE__),\
-                                             string__dictionary_Set(a,b,c))
-#else
-#define string_dictionary_Set(a,b,c)         string__dictionary_Set(a,b,c)
-#endif
-
-/*
- *    char *string_dictionary_Fetch(string_dictionary d, string key)
- *        Effects: If key is not bound in d, returns 0.  Otherwise,
- *                 returns the value that key is bound to.  
- *                 Note that the returned string if any should not be
- *                 freed or modified in any way.  Note also that it may
- *                 disappear later if key is rebound.
- */
-
-extern char *string_dictionary_Fetch(string_dictionary,
-                                    string);
-
-/*
- *    void string_dictionary_SafeDestroy(string_dictionary d)
- *        Modifies: d
- *        Effects: Like string_dictionary_Destroy except first frees
- *                 all value's in the dictionary.
- */
-
-extern void string_dictionary_SafeDestroy(string_dictionary);
-
-#endif
diff --git a/zephyr/zwgc/subscriptions.c b/zephyr/zwgc/subscriptions.c
deleted file mode 100644 (file)
index be4bad2..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: subscriptions.c 2328 2009-03-22 17:34:39Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_subscriptions_c[] = "$Id: subscriptions.c 2328 2009-03-22 17:34:39Z kcr $";
-#endif
-
-/****************************************************************************/
-/*                                                                          */
-/*        Subscriptions.c: code to deal with subscriptions & punting:       */
-/*                                                                          */
-/****************************************************************************/
-
-#include <sysdep.h>
-#include <zephyr/zephyr.h>
-#include <netdb.h>
-#include "new_memory.h"
-#include "new_string.h"
-#include "int_dictionary.h"
-#include "zwgc.h"
-#include "subscriptions.h"
-#include "error.h"
-#include "file.h"
-#include "main.h"
-
-/****************************************************************************/
-/*                                                                          */
-/*                  Code to implement punting of notices:                   */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- *
- */
-#ifndef CMU_ZCTL_PUNT
-static
-#endif
-int_dictionary puntable_addresses_dict = 0;
-
-static void
-init_puntable_dict(void)
-{
-    puntable_addresses_dict = int_dictionary_Create(33);
-}
-
-static string
-address_to_string(string class,
-                 string instance,
-                 string recipient)
-{
-    string result;
-
-    /*
-     * Treat a recipient of "" as "*":
-     */
-    if (string_Eq(recipient,""))
-      recipient = "*";
-    else if (recipient[0] == '@') {
-      recipient = string_Concat("*", recipient);
-    }
-
-    /*
-     * The following is a hack for now only.  It should be replaced with
-     * several calls to escape_code... <<<>>>
-     */
-    result = string_Concat(class, "\001");
-    result = string_Concat2(result, instance);
-    result = string_Concat2(result, "\001");
-    result = string_Concat2(result, recipient);
-    string_Downcase(result);
-
-    return(result);
-}
-
-int puntable_address_p(string class,
-                      string instance,
-                      string recipient)
-{
-    string temp;
-    int ret;
-
-    if (!puntable_addresses_dict)
-      init_puntable_dict();
-
-    temp = address_to_string(class, instance, recipient);
-    ret = (int)int_dictionary_Lookup(puntable_addresses_dict, temp);
-    free(temp);
-    if (ret)
-        return 1;;
-
-    /* This kludge is to allow punts of wildcard instance to work */
-    temp = address_to_string(class, "*", recipient);
-    if (int_dictionary_Lookup(puntable_addresses_dict, temp)) {
-       free(temp);
-       return(1);
-    }
-
-    free(temp);
-    return(0);
-}
-
-void punt(string class,
-         string instance,
-         string recipient)
-{
-    string temp;
-
-    if (!puntable_addresses_dict)
-      init_puntable_dict();
-
-    temp = address_to_string(class, instance, recipient);
-    (void)int_dictionary_Define(puntable_addresses_dict, temp, 0);
-    free(temp);
-}
-
-void unpunt(string class,
-           string instance,
-           string recipient)
-{
-    string temp;
-    int_dictionary_binding *binding;
-
-    if (!puntable_addresses_dict)
-      init_puntable_dict();
-
-    temp = address_to_string(class, instance, recipient);
-    binding = int_dictionary_Define(puntable_addresses_dict, temp, 0);
-    free(temp);
-    if (binding)
-      int_dictionary_Delete(puntable_addresses_dict, binding);
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*           Code to implement batching [un]subscription requests:          */
-/*                                                                          */
-/****************************************************************************/
-
-/*
- * <<<>>> these routines require zwgc_active to be false (0)
- */
-
-#define  BATCH_SIZE   20
-
-static int subscription_list_size = 0;
-static ZSubscription_t subscription_list[BATCH_SIZE];
-
-static int unsubscription_list_size = 0;
-static ZSubscription_t unsubscription_list[BATCH_SIZE];
-
-static void
-free_subscription_list(ZSubscription_t *list,
-                      int number_of_elements)
-{
-    int i;
-
-    for (i=0; i<number_of_elements; i++) {
-       free(list[i].zsub_class);
-       free(list[i].zsub_classinst);
-       free(list[i].zsub_recipient);
-    }
-}
-
-static void
-flush_subscriptions(void)
-{
-      TRAP(ZSubscribeTo(subscription_list,subscription_list_size, 0),
-          "while subscribing");
-
-    free_subscription_list(subscription_list, subscription_list_size);
-    subscription_list_size = 0;
-}
-
-static void
-flush_unsubscriptions(void)
-{
-    if (unsubscription_list_size)
-      TRAP(ZUnsubscribeTo(unsubscription_list, unsubscription_list_size, 0),
-          "while unsubscribing");
-
-    free_subscription_list(unsubscription_list, unsubscription_list_size);
-    unsubscription_list_size = 0;
-}
-
-static void
-subscribe(string class,
-         string instance,
-         string recipient)
-{
-    subscription_list[subscription_list_size].zsub_class = string_Copy(class);
-    subscription_list[subscription_list_size].zsub_classinst= string_Copy(instance);
-    subscription_list[subscription_list_size].zsub_recipient=string_Copy(recipient);
-
-    if (++subscription_list_size == BATCH_SIZE)
-      flush_subscriptions();
-}
-
-static void
-unsubscribe(string class,
-           string instance,
-           string recipient)
-{
-    unsubscription_list[unsubscription_list_size].zsub_class = string_Copy(class);
-    unsubscription_list[unsubscription_list_size].zsub_classinst
-      = string_Copy(instance);
-    unsubscription_list[unsubscription_list_size].zsub_recipient
-      = string_Copy(recipient);
-
-    if (++unsubscription_list_size == BATCH_SIZE)
-      flush_unsubscriptions();
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*         Code to implement reading [un]subscriptions from a file:         */
-/*                                                                          */
-/****************************************************************************/
-
-#define        TOKEN_HOSTNAME  "%host%"
-#define        TOKEN_CANONNAME "%canon%"
-#define        TOKEN_ME        "%me%"
-#define        TOKEN_WILD      "*"
-
-char ourhost[MAXHOSTNAMELEN],ourhostcanon[MAXHOSTNAMELEN];
-
-static void
-inithosts(void)
-{
-    struct hostent *hent;
-    if (gethostname(ourhost, sizeof(ourhost)-1) == -1) {
-       ERROR3("unable to retrieve hostname, %s and %s will be wrong in subscriptions.\n", TOKEN_HOSTNAME, TOKEN_CANONNAME);
-       return;
-    }
-
-    if (!(hent = gethostbyname(ourhost))) {
-       ERROR2("unable to resolve hostname, %s will be wrong in subscriptions.\n", TOKEN_CANONNAME);
-       strncpy(ourhostcanon, ourhost, sizeof(ourhostcanon)-1);
-       return;
-    }
-    strncpy(ourhostcanon, hent->h_name, sizeof(ourhostcanon)-1);
-    return;
-}
-
-static void
-macro_sub(char *str)
-{
-    static int initedhosts = 0;
-
-    if (!initedhosts) {
-       inithosts();
-       initedhosts = 1;
-    }
-    if (string_Eq(str, TOKEN_ME))
-       strcpy(str, ZGetSender());
-    else if (string_Eq(str, TOKEN_HOSTNAME))
-       strcpy(str, ourhost);   
-    else if (string_Eq(str, TOKEN_CANONNAME))
-       strcpy(str, ourhostcanon);
-}
-
-#define  UNSUBSCRIBE_CHARACTER  '!'
-#define  PUNT_CHARACTER         '-'
-
-static void
-load_subscriptions_from_file(FILE *file)
-{
-    char line[BUFSIZ];
-    char class_buffer[BUFSIZ], instance[BUFSIZ], recipient[BUFSIZ];
-    char *class, *temp;
-    char c;
-   
-    while ((!feof(file)) && (!ferror(file))) {
-       if (fgets(line, BUFSIZ, file)) {
-           class = class_buffer;
-           /* Parse line */
-           /* <<<>>>
-            * The below does NOT work is the recipient field  is "":
-            */
-           temp = strchr(line, '#');
-           if (temp)
-             *temp = '\0';
-           for (temp=line; *temp && *temp==' '; temp++) ;
-           if (!*temp || *temp=='\n')
-             continue;
-
-           sscanf(temp,"%[^,],%[^,],%s", class, instance, recipient);
-
-           /* skip type indicator if any: */
-           c = class[0];
-           if (c==UNSUBSCRIBE_CHARACTER || c==PUNT_CHARACTER)
-             class++;
-           
-           /* perform macro substitutions */
-           macro_sub(class);
-           macro_sub(instance);
-           macro_sub(recipient);
-           
-           /* do the right thing with it */
-           switch (c) {
-             case UNSUBSCRIBE_CHARACTER:
-               unsubscribe(class, instance, recipient);
-               break;
-             case PUNT_CHARACTER:
-               punt(class, instance, recipient);
-               break;
-             default:
-               subscribe(class, instance, recipient);
-               break;
-           }
-       } else {
-           break;
-       }
-    }
-    
-    if (ferror(file)) {
-       com_err("zwgc", errno, "while reading from subscription file");
-       exit(1);
-    }
-
-    flush_subscriptions();
-    flush_unsubscriptions();
-    
-    fclose(file);
-}
-
-#define DEFSUBS "/dev/null"
-
-static void
-load_subscriptions(void)
-{
-    FILE *subscriptions_file;
-
-    /* no system default sub file on client--they live on the server */
-    /* BUT...we need to use something to call load_subscriptions_from_file,
-       so we use /dev/null */
-    subscriptions_file = locate_file(subscriptions_filename_override,
-                                    USRSUBS, DEFSUBS);
-    if (subscriptions_file)
-      load_subscriptions_from_file(subscriptions_file);
-}
-
-/****************************************************************************/
-/*                                                                          */
-/*                Code to implement shutdown and startup:                   */
-/*                                                                          */
-/****************************************************************************/
-
-int zwgc_active = 0;
-
-static ZSubscription_t *saved_subscriptions = NULL;
-static int number_of_saved_subscriptions;
-
-void zwgc_shutdown(void)
-{
-    if (!zwgc_active)
-      return;
-
-    TRAP(ZRetrieveSubscriptions(0, &number_of_saved_subscriptions),
-        "while retrieving zephyr subscription list");
-    if (error_code)
-      return;
-    saved_subscriptions = (ZSubscription_t *)
-      malloc(number_of_saved_subscriptions*sizeof(ZSubscription_t));
-    if (number_of_saved_subscriptions)
-      TRAP(ZGetSubscriptions(saved_subscriptions,
-                            &number_of_saved_subscriptions),
-          "while getting subscriptions");
-    if (error_code) {
-       free(saved_subscriptions);
-       saved_subscriptions = NULL;
-    }
-    TRAP(ZCancelSubscriptions(0), "while canceling subscriptions") ;
-
-    zwgc_active = 0;
-}
-
-void zwgc_startup(void)
-{
-    if (zwgc_active)
-      return;
-
-    if (saved_subscriptions) {
-       TRAP(ZSubscribeToSansDefaults(saved_subscriptions,number_of_saved_subscriptions,0),
-            "while resubscribing to zephyr messages");
-       free(saved_subscriptions);
-       saved_subscriptions = NULL;
-    } else
-      load_subscriptions();
-
-    zwgc_active = 1;
-}
diff --git a/zephyr/zwgc/subscriptions.h b/zephyr/zwgc/subscriptions.h
deleted file mode 100644 (file)
index 6987b16..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: subscriptions.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef subscriptions_MODULE
-#define subscriptions_MODULE
-
-extern int zwgc_active;
-
-extern int puntable_address_p(string, string, string);
-extern void punt(string, string, string);
-extern void unpunt(string, string, string);
-extern void zwgc_shutdown(void);
-extern void zwgc_startup(void);
-
-#define USRSUBS ".zephyr.subs"
-
-#endif
diff --git a/zephyr/zwgc/substitute.c b/zephyr/zwgc/substitute.c
deleted file mode 100644 (file)
index f523d1d..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: substitute.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_substitute_c[] = "$Id: substitute.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-#include <sysdep.h>
-#include "new_memory.h"
-#include "lexer.h"
-#include "substitute.h"
-
-/*
- *  Internal Routine:
- *
- *    string eat_dollar_sign_stuff(string (*lookup)(string); string *text_ptr)
- *        Modifies: *text_ptr
- *        Effects: This routine deals with handling the stuff after a '$'
- *                 for substitute.  If *text_ptr starts with a valid
- *                 variable reference (minus the leading '$'), we look up
- *                 the variable using lookup and return its value.
- *                 *text_ptr is also advanced past the variable reference.
- *                 If a '$' starts *text_ptr, *text_ptr is advanced past it &
- *                 "$" returned.  (This handles "$$" -> "$")  Otherwise,
- *                 "$" is returned and *text_ptr is not advanced.
- *                 The returned string must not be freed.
- */
-
-static string
-eat_dollar_sign_stuff(string (*lookup)(string),
-                     string *text_ptr)                 /* Input/Output parameter */
-{
-    char c;
-    char closing_brace = 0;
-    char *p = *text_ptr;
-    char *variable_name_start;
-    int variable_name_length;
-
-    /*
-     * Handle "$$" -> "$" translation:
-     */
-    c = *p;
-    if (c=='$') {
-       *text_ptr = p+1;
-       return("$");
-    }
-
-    /*
-     * If opening brace present (i.e., '(' or '{'), skip it and save away
-     * what closing brace we must see at the end of the variable reference:
-     */
-    if (c=='{') {
-       closing_brace = '}';
-       c = *++p;
-    } else if (c=='(') {
-       closing_brace = ')';
-       c = *++p;
-    }
-
-    /*
-     * Eat {identifier_char}* keeping track of what we ate:
-     */
-    variable_name_start = p;
-    variable_name_length = 0;
-    while (c = *p, is_identifier_char(c)) {
-       p++;
-       variable_name_length++;
-    }
-
-    /*
-     * If there was an opening brace, there had better be a comparable
-     * closing brace.  If so, skip it.  If not, we have an invalid variable
-     * reference so return '$' without advancing *text_ptr.
-     */
-    if (closing_brace) {
-       if (c==closing_brace)
-         c = *++p;
-       else
-         return("$");
-    }
-
-    /*
-     * Zero length variable names are not valid:
-     */
-    if (!variable_name_length)
-      return("$");
-
-    /*
-     * We have a valid variable reference.  Advance past it then lookup
-     * its value and return it:
-     */
-    *text_ptr = p;
-    if (variable_name_length > MAX_IDENTIFIER_LENGTH)
-      variable_name_length = MAX_IDENTIFIER_LENGTH;
-    variable_name_start = string_CreateFromData(variable_name_start,
-                                               variable_name_length);
-    p = lookup(variable_name_start);
-    free(variable_name_start);
-    return(p);
-}
-
-/*
- *    string substitute(string (*lookup)(string); string text)
- *        Effects: returns the result of expanding all variable
- *                 references in text using lookup.  Example:
- *                 "test $foo.$bar baz" would be translated to
- *                 "text <foo>.<bar> baz" where "<foo>" is the value of
- *                 lookup("foo") and "<bar>" is the value of lookup("bar").
- *                 Variables are case sensitive and have the form
- *                 {identifier_char}+ where identifier_char is defined
- *                 in lexer.h by is_identifier_char.  $(foo) and
- *                 ${foo} are alternate forms for $foo.  In particular,
- *                 ${foo}bar is a reference to foo followed by "bar" while
- *                 $foobar is a reference to foobar.  Incomplete variable
- *                 references like $(foo bar are displayed as if they
- *                 were not variable references.  To allow quoting, "$$"
- *                 is translated to "$".  Only the first
- *                 MAX_IDENTIFIER_LENGTH characters of an identifier are
- *                 significant.  The strings returned by lookup are not
- *                 modified in any way or freed.
- */
-
-string
-substitute(string (*lookup)(string),
-          string text)
-{
-    string result_so_far = string_Copy("");
-    char *p, *temp;
-
-    for (;;) {
-       /*
-        * Move [^$]* from start of text to end of result_so_far:
-        */
-       for (p=text; *p && (*p)!='$'; p++) ;
-       if (text != p) {
-           temp = string_CreateFromData(text, p-text);
-           text = p;
-           result_so_far = string_Concat2(result_so_far, temp);
-           free(temp);
-       }
-
-       /*
-        * If text now empty, exit -- the result is in result_so_far:
-        */
-       if (!*text)
-         return(result_so_far);
-
-       /*
-        * Otherwise, text begins with a '$'.  Eat it then call
-        * eat_dollar_sign_stuff to process stuff after it.
-        * Append result to result_so_far, update text, & continue.
-        */
-       text++;
-       p = eat_dollar_sign_stuff(lookup, &text);
-       result_so_far = string_Concat2(result_so_far, p);
-    }
-}
diff --git a/zephyr/zwgc/substitute.h b/zephyr/zwgc/substitute.h
deleted file mode 100644 (file)
index 85dca70..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: substitute.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef substitute_MODULE
-#define substitute_MODULE
-
-#include "new_string.h"
-
-/*
- *    string substitute(string (*lookup)(string); string text)
- *        Effects: returns the result of expanding all variable
- *                 references in text using lookup.  Example:
- *                 "test $foo.$bar baz" would be translated to
- *                 "text <foo>.<bar> baz" where "<foo>" is the value of
- *                 lookup("foo") and "<bar>" is the value of lookup("bar").
- *                 Variables are case sensitive and have the form
- *                 {identifier_char}+ where identifier_char is defined
- *                 in lexer.h by is_identifier_char.  $(foo) and
- *                 ${foo} are alternate forms for $foo.  In particular,
- *                 ${foo}bar is a reference to foo followed by "bar" while
- *                 $foobar is a reference to foobar.  Incomplete variable
- *                 references like $(foo bar are displayed as if they
- *                 were not variable references.  To allow quoting, "$$"
- *                 is translated to "$".  Only the first
- *                 MAX_IDENTIFIER_LENGTH characters of an identifier are
- *                 significant.  The strings returned by lookup are not
- *                 modified in any way or freed.
- */
-
-extern string substitute(string (*)(string), string);
-
-#endif
diff --git a/zephyr/zwgc/text_operations.c b/zephyr/zwgc/text_operations.c
deleted file mode 100644 (file)
index 26221fa..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: text_operations.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_text_operations_c[] = "$Id: text_operations.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-#include "new_memory.h"
-#include "text_operations.h"
-#include "char_stack.h"
-
-string
-lany(string *text_ptr,
-     string str)
-{
-    string result, whats_left;
-    char *p = *text_ptr;
-
-    while (*p && *str) p++, str++;
-
-    result = string_CreateFromData(*text_ptr, p - *text_ptr);
-    whats_left = string_Copy(p);
-    free(*text_ptr);
-    *text_ptr = whats_left;
-
-    return(result);
-}
-
-string
-lbreak(string *text_ptr,
-       const character_class set)
-{
-    string result, whats_left;
-    char *p = *text_ptr;
-
-    while (*p && !set[(int)*p]) p++;
-
-    result = string_CreateFromData(*text_ptr, p - *text_ptr);
-    whats_left = string_Copy(p);
-    free(*text_ptr);
-    *text_ptr = whats_left;
-
-    return(result);
-}
-
-string
-lspan(string *text_ptr,
-      character_class set)
-{
-    string result, whats_left;
-    char *p = *text_ptr;
-
-    while (*p && set[(int)*p]) p++;
-
-    result = string_CreateFromData(*text_ptr, p - *text_ptr);
-    whats_left = string_Copy(p);
-    free(*text_ptr);
-    *text_ptr = whats_left;
-
-    return(result);
-}
-
-string
-rany(string *text_ptr,
-     string str)
-{
-    string result, whats_left;
-    string text = *text_ptr;
-    char *p = text + strlen(text);
-
-    while (text<p && *str) p--, str++;
-
-    result = string_Copy(p);
-    whats_left = string_CreateFromData(text, p - text);
-    free(text);
-    *text_ptr = whats_left;
-
-    return(result);
-}
-
-string
-rbreak(string *text_ptr,
-       character_class set)
-{
-    string result, whats_left;
-    string text = *text_ptr;
-    char *p = text + strlen(text);
-
-    while (text<p && !set[(int)p[-1]]) p--;
-
-    result = string_Copy(p);
-    whats_left = string_CreateFromData(text, p - text);
-    free(text);
-    *text_ptr = whats_left;
-
-    return(result);
-}
-
-string
-rspan(string *text_ptr,
-      character_class set)
-{
-    string result, whats_left;
-    string text = *text_ptr;
-    char *p = text + strlen(text);
-
-    while (text<p && set[(int)p[-1]]) p--;
-
-    result = string_Copy(p);
-    whats_left = string_CreateFromData(text, p - text);
-    free(text);
-    *text_ptr = whats_left;
-
-    return(result);
-}
diff --git a/zephyr/zwgc/text_operations.h b/zephyr/zwgc/text_operations.h
deleted file mode 100644 (file)
index 37354dc..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: text_operations.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef text_operations_MODULE
-#define text_operations_MODULE
-
-#include "character_class.h"
-
-extern string lany(string *, string);
-extern string lbreak(string *, const character_class);
-extern string lspan(string *, character_class);
-extern string rany(string *, string);
-extern string rbreak(string *, character_class);
-extern string rspan(string *, character_class);
-
-#endif
diff --git a/zephyr/zwgc/tty_filter.c b/zephyr/zwgc/tty_filter.c
deleted file mode 100644 (file)
index 2bccf6c..0000000
+++ /dev/null
@@ -1,571 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: tty_filter.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_tty_filter_c[] = "$Id: tty_filter.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*                         The tty & plain filters:                         */
-/*                                                                          */
-/****************************************************************************/
-#ifdef HAVE_TERMCAP_H
-#include <termcap.h>
-#else
-#ifdef HAVE_TERM_H
-#include <term.h>
-#endif
-#endif
-
-#include "new_memory.h"
-#include "new_string.h"
-#include "string_dictionary_aux.h"
-#include "formatter.h"
-#include "zwgc.h"
-#include "error.h"
-
-/***************************************************************************/
-#ifndef HAVE_TERMCAP_H
-extern int tgetent();
-extern char *tgetstr(),*getenv();
-#ifdef linux
-extern speed_t ospeed;
-#else
-extern short ospeed;
-#endif
-char PC;
-#endif
-
-/* Dictionary naming convention:
-
-   B.xxx is the termcap sequence to begin environment xxx.
-   E.xxx is the termcap sequence to end environment xxx.
-
-   */
-
-static string_dictionary termcap_dict;
-static char code_buf[10240], *code_buf_pos = code_buf, *code;
-
-/* Define the following commands:
-
-   (Hopefully) shared with all devices:
-   
-   @center     Guess.
-   
-   @em         Emphasis.  User underline if available, else reverse video.
-   @bold       Bold letters.  If not available, reverse video, else underline.
-   @beep       "bl" termcap entry, else "^G"
-
-   Other:
-
-   @blink      "mb"/"me" termcap entry, else nothing.
-   @rv         "so"/"se" termcap entry.
-   @u          "us"/"ue" termcap entry.
- */
-
-#define TD_SET(k,v) (string_dictionary_Define(termcap_dict, (k), &ex)->value \
-                    = (v))
-#define EXPAND(k) (code = code_buf_pos, tputs(tmp, 1, tty_outc), \
-                  *code_buf_pos++ = 0, TD_SET(k, code))
-
-static int
-tty_outc(int c)
-{
-    *code_buf_pos++ = c;
-    return 0;
-}
-
-/* ARGSUSED */
-int
-tty_filter_init(char *drivername,
-               char notfirst,
-               int *pargc,
-               char **argv)
-{
-    static char st_buf[128];
-    char tc_buf[1024], *p = st_buf, *tmp, *term;
-    int ex;
-    string_dictionary_binding *b;
-    int isrealtty = string_Eq(drivername, "tty");
-#ifdef HAVE_TERMIOS_H
-    struct termios tbuf;
-
-    ospeed = (tcgetattr(STDIN_FILENO, &tbuf) == 0) ? cfgetospeed(&tbuf) : 2400;
-#else
-    struct sgttyb sgttyb;
-
-    ospeed = (ioctl(0, TIOCGETP, &sgttyb) == 0) ? sgttyb.sg_ospeed : 2400;
-#endif
-
-    if (termcap_dict == (string_dictionary) NULL)
-      termcap_dict = string_dictionary_Create(7);
-
-    if (!(term = getenv("TERM"))) {    /* Only use termcap if $TERM.   */
-       if (isrealtty && !notfirst)
-           /* only complain if initializing tty mode, and would be first
-              available port */
-           ERROR("$TERM not set.  tty mode will be plain.\n");
-    }
-#ifdef _AIX
-    /* 
-     * This is a temporary KLUDGE to get around the problem where some people
-     * might start zwgc in their ~/.startup.X and it hangs on the RISC/6000.
-     * Apparently, the call to tgetent() with the Athena console window causes
-     * the process to get stopped on tty access.  Since the terminal type is
-     * "dumb" (set by tcsh), we can pretty much assume there isn't anything
-     * to setup from the termcap information.
-     */
-    else if (!strcmp(term, "dumb")) { }
-#endif
-    else {
-       tgetent(tc_buf, term);
-    
-       /* Step 1: get all of {rv,bold,u,bell,blink} that are available. */
-
-       /* We cheat here, and ignore the padding (if any) specified for
-          the mode-change strings (it's a real pain to do "right") */
-
-       tmp = tgetstr("pc", &p);
-       PC = (tmp) ? *tmp : 0;
-       tmp = tgetstr("md", &p);
-       if (tmp) {      /* bold ? */
-           EXPAND("B.bold");
-           tmp = tgetstr("me",&p);
-           EXPAND("E.bold");
-       }
-       tmp = tgetstr("mr", &p);
-       if (tmp) {      /* reverse video? */
-           EXPAND("B.rw");
-           tmp = tgetstr("me", &p);
-           EXPAND("E.rw");
-       }
-       tmp = tgetstr("bl", &p);
-       if (tmp) {      /* Bell ? */
-           EXPAND("B.bell");
-           TD_SET("E.bell", NULL);
-       }
-       tmp = tgetstr("mb", &p);
-       if (tmp) {      /* Blink ? */
-           EXPAND("B.blink");
-           tmp = tgetstr("me", &p);
-           EXPAND("E.blink");
-       }
-       tmp = tgetstr("us", &p);
-       if (tmp) {      /* Underline ? */
-           EXPAND("B.u");
-           tmp = tgetstr("ue", &p);
-           EXPAND("E.u");
-       }
-       tmp = tgetstr("so", &p);
-       if (tmp) {      /* Standout ? */
-           EXPAND("B.so");
-           tmp = tgetstr("se", &p);
-           EXPAND("E.so");
-       }
-    }    
-    /* Step 2: alias others to the nearest substitute */
-    
-    /* Bold = so, else rv, else ul */
-    if (NULL == string_dictionary_Lookup(termcap_dict, "B.bold")) {
-       if((b = string_dictionary_Lookup(termcap_dict, "B.so"))) {
-           TD_SET("B.bold", b->value);
-           TD_SET("E.bold",
-                  string_dictionary_Lookup(termcap_dict, "E.so")->value);
-       } else if ((b = string_dictionary_Lookup(termcap_dict, "B.rv"))) {
-           TD_SET("B.bold", b->value);
-           TD_SET("E.bold",
-                  string_dictionary_Lookup(termcap_dict, "E.rv")->value);
-       } else if ((b = string_dictionary_Lookup(termcap_dict,"B.u"))) {
-           TD_SET("B.bold", b->value);
-           TD_SET("E.bold",
-                  string_dictionary_Lookup(termcap_dict, "E.u")->value);
-       }
-    }
-    
-    /* Bell = ^G */
-    if (NULL == string_dictionary_Lookup(termcap_dict, "B.bell")) {
-       TD_SET("B.bell", "\007");
-       TD_SET("E.bell", NULL);
-    }
-    
-    /* Underline -> nothing */
-    /* Blink -> nothing */
-    
-    return(0);
-}
-
-/***************************************************************************/
-
-
-
-
-static int
-fixed_string_eq(string pattern,
-               char *text,
-               int text_length)
-{
-    while (*pattern && text_length>0 && *pattern == *text) {
-       pattern++;
-       text++;
-       text_length--;
-    }
-
-    return(!*pattern && !text_length);
-}
-
-typedef struct _tty_str_info {
-    struct _tty_str_info *next;
-
-    char *str;
-    int len;
-
-    char alignment; /* 'l', 'c', 'r', or ' ' to indicate newline */
-    unsigned int bold_p : 1;
-    unsigned int italic_p : 1;
-    unsigned int bell_p : 1;
-    unsigned int ignore: 1;
-} tty_str_info;
-
-static void
-free_info(tty_str_info *info)
-{
-    tty_str_info *next_info;
-
-    while (info) {
-       next_info = info->next;
-       free(info);
-       info = next_info;
-    }
-}
-
-static int
-do_mode_change(tty_str_info *current_mode_p,
-              char *text,
-              int text_length)
-{
-    /* alignment commands: */
-    if (fixed_string_eq("left", text, text_length) ||
-       fixed_string_eq("l", text, text_length))
-      current_mode_p->alignment = 'l';
-    else if (fixed_string_eq("center", text, text_length) ||
-       fixed_string_eq("c", text, text_length))
-      current_mode_p->alignment = 'c';
-    else if (fixed_string_eq("right", text, text_length) ||
-       fixed_string_eq("r", text, text_length))
-      current_mode_p->alignment = 'r';
-
-    /* font commands: */
-    else if (fixed_string_eq("bold", text, text_length) ||
-            fixed_string_eq("b", text, text_length))
-      current_mode_p->bold_p = 1;
-    else if (fixed_string_eq("italic", text, text_length) ||
-            fixed_string_eq("i", text, text_length))
-      current_mode_p->italic_p = 1;
-    else if (fixed_string_eq("roman", text, text_length)) {
-       current_mode_p->bold_p = 0;
-       current_mode_p->italic_p = 0;
-    } else if (fixed_string_eq("beep", text, text_length)) {
-       current_mode_p->bell_p = 1;
-       return 1;
-    }
-
-    /* commands ignored in tty mode: */
-    else if (fixed_string_eq("color", text, text_length) ||
-            fixed_string_eq("font", text, text_length)) {
-       current_mode_p->ignore = 1;
-    } 
-    return 0;
-}
-
-static tty_str_info *
-convert_desc_to_tty_str_info(desctype *desc)
-{
-    tty_str_info *temp;
-    tty_str_info *result = NULL;
-    tty_str_info *last_result_block = NULL;
-    int isbeep, did_beep = 0;
-
-#if !defined(SABER) && defined(__STDC__)
-    tty_str_info current_mode = { NULL, "", 0, 'l', 0 , 0, 0, 0};
-#else
-    /* This is needed due to a bug in saber, and lack of pre-ANSI support. */
-    tty_str_info current_mode;
-
-    current_mode.next = NULL;
-    current_mode.str = "";
-    current_mode.len = 0;
-    current_mode.alignment = 'l';
-    current_mode.bold_p = 0;
-    current_mode.italic_p = 0;
-    current_mode.bell_p = 0;
-    current_mode.ignore = 0;
-#endif
-
-    for (; desc->code!=DT_EOF; desc=desc->next) {
-       isbeep = 0;
-       /* Handle environments: */
-       if (desc->code == DT_ENV) {
-           /* PUSH! */
-           temp = (tty_str_info *)malloc(sizeof(struct _tty_str_info));
-           *temp = current_mode;
-           current_mode.next = temp;
-
-           isbeep = do_mode_change(&current_mode, desc->str, desc->len);
-           if (!isbeep || did_beep)
-               continue;       /* process one beep, ignore other envs */
-       } else if (desc->code == DT_END) {
-           /* POP! */
-           temp = current_mode.next;
-           current_mode = *temp;
-           free(temp);
-           continue;
-       }
-
-       /* Add new block (call it temp) to result: */
-       temp = (tty_str_info *)malloc(sizeof(struct _tty_str_info));
-       *temp = current_mode;
-       if (last_result_block) {
-           last_result_block->next = temp;
-           last_result_block = temp;
-       } else {
-           result = temp;
-           last_result_block = temp;
-       }
-
-       if (isbeep) {
-           /* special processing: need to insert a bell */
-           string_dictionary_binding *b;
-           b = string_dictionary_Lookup(termcap_dict,"B.bell");
-           if (b) {
-               temp->str = b->value;
-               temp->len = string_Length(temp->str);
-           } else
-               /* shouldn't get here! */
-               abort();
-           did_beep++;
-           continue;
-       }
-       if (desc->code == DT_STR) {
-           /* just combine string info with current mode: */
-           temp->str = desc->str;
-           temp->len = desc->len;
-       } else if (desc->code == DT_NL) {
-           /* make the new block a ' ' alignment block with an empty string */
-           temp->alignment = ' ';
-           temp->len = 0;
-           temp->ignore = 0;
-       }
-    }
-
-    if (last_result_block)
-      last_result_block->next = NULL;
-
-    return(result);
-}
-
-#define  max(a,b)                ((a)>(b)?(a):(b))
-
-static int
-line_width(int left_width,
-          int center_width,
-          int right_width)
-{
-    if (center_width>0) {
-       if (left_width==0 && right_width==0)
-         return(center_width);
-       return(center_width+2+max(left_width,right_width)*2);
-    } else {
-       if (left_width && right_width)
-         return(1+left_width+right_width);
-       else
-         return(left_width+right_width);
-    }
-}
-
-static int
-calc_max_line_width(tty_str_info *info)
-{
-    int max_line_width = 0;
-    int left = 0;
-    int center = 0;
-    int right = 0;
-
-    for (; info; info=info->next) {
-       if (info->ignore)
-           continue;
-       switch (info->alignment) {
-         case 'l':
-           left += info->len;
-           break;
-
-         case 'c':
-           center += info->len;
-           break;
-
-         case 'r':
-           right += info->len;
-           break;
-
-         case ' ':
-#ifdef DEBUG
-           if (zwgc_debug)
-             printf("width: %d %d %d = %d\n", left, center, right,
-                    line_width(left, center, right));
-#endif
-           max_line_width = max(max_line_width,
-                                line_width(left, center, right));
-           left = center = right = 0;
-           break;
-       }
-    }
-
-#ifdef DEBUG
-    if (zwgc_debug)
-      printf("width: %d %d %d = %d\n", left, center, right,
-            line_width(left, center, right));
-#endif
-    max_line_width = max(max_line_width,
-                        line_width(left, center, right));
-
-    return(max_line_width);
-}
-
-string
-tty_filter(string text,
-          int use_fonts)
-{
-    string text_copy = string_Copy(text);
-    string result_so_far = string_Copy("");
-    desctype *desc;
-    int number_of_strs;
-    int number_of_lines;
-    tty_str_info *info, *info_head;
-    int max_line_width;
-
-    desc = disp_get_cmds(text_copy, &number_of_strs, &number_of_lines);
-    info_head = info = convert_desc_to_tty_str_info(desc);
-    free_desc(desc);
-
-#ifdef DEBUG
-    if (zwgc_debug)
-      { tty_str_info *ptr;
-       for (ptr=info; ptr; ptr=ptr->next) {
-           printf("%c: %s %s %s <%s>\n", ptr->alignment,
-                  ptr->bold_p ? "(bold)" : "",
-                  ptr->italic_p ? "(italic)" : "",
-                  ptr->bell_p ? "(bell)" : "",
-                  string_CreateFromData(ptr->str, ptr->len));
-       }
-    }
-#endif
-
-    max_line_width = calc_max_line_width(info);
-    dprintf1("max width = %d\n", max_line_width);
-
-    while (info) {
-       string left, center, right;
-       int left_width, center_width, right_width;
-       char *temp;
-
-       left_width = center_width = right_width = 0;
-       left = string_Copy("");
-       center = string_Copy("");
-       right = string_Copy("");
-
-       for (; info && info->alignment!=' '; info=info->next) {
-           string item;
-
-           if (info->ignore)
-               continue;
-
-           item = string_Copy("");
-           
-           if (info->bold_p && use_fonts) {
-               temp = string_dictionary_Fetch(termcap_dict, "B.bold");
-               if (temp)
-                 item = string_Concat2(item, temp);
-           } else if (info->italic_p && use_fonts) {
-               temp = string_dictionary_Fetch(termcap_dict, "B.u");
-               if (temp)
-                 item = string_Concat2(item, temp);
-           }
-           temp = string_CreateFromData(info->str, info->len);
-           item = string_Concat2(item, temp);
-           free(temp);
-
-           if (info->bold_p && use_fonts) {
-               temp = string_dictionary_Fetch(termcap_dict, "E.bold");
-               if (temp)
-                 item = string_Concat2(item, temp);
-           } else if (info->italic_p && use_fonts) {
-               temp = string_dictionary_Fetch(termcap_dict, "E.u");
-               if (temp)
-                 item = string_Concat2(item, temp);
-           }
-
-           switch (info->alignment) {
-             default:
-             case 'l':
-               left = string_Concat2(left, item);
-               left_width += info->len;
-               break;
-
-             case 'c':
-               center = string_Concat2(center, item);
-               center_width += info->len;
-               break;
-
-             case 'r':
-               right = string_Concat2(right, item);
-               right_width += info->len;
-               break;
-           }
-           free(item);
-       }
-
-       result_so_far = string_Concat2(result_so_far, left);
-       if (center_width)
-         while (left_width < (max_line_width-center_width)/2 ) {
-             result_so_far = string_Concat2(result_so_far, " ");
-             left_width++;
-         }
-       result_so_far = string_Concat2(result_so_far, center);
-       left_width += center_width;
-
-       if (right_width)
-         while (left_width<max_line_width-right_width) {
-             result_so_far = string_Concat2(result_so_far, " ");
-             left_width++;
-         }
-       result_so_far = string_Concat2(result_so_far, right);
-       free(left);  free(center);  free(right);
-
-       if (info && info->alignment == ' ') {
-           info = info->next;
-           result_so_far = string_Concat2(result_so_far, "\r\n");
-       }
-    }
-
-    free_info(info_head);
-    free(text_copy);
-    if (number_of_lines &&
-       (result_so_far[string_Length(result_so_far)-1] != '\n'))
-       /* CRLF-terminate all results */
-       result_so_far = string_Concat2(result_so_far, "\r\n");
-    return(result_so_far);
-}
diff --git a/zephyr/zwgc/unsigned_long.h b/zephyr/zwgc/unsigned_long.h
deleted file mode 100644 (file)
index eb49a28..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-/* $Id: unsigned_long.h 2091 2007-12-20 01:17:23Z kcr $
- */
-
-#define unsigned_long unsigned long
diff --git a/zephyr/zwgc/variables.c b/zephyr/zwgc/variables.c
deleted file mode 100644 (file)
index d5cfd4a..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: variables.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_variables_c[] = "$Id: variables.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*   Module containing code to deal with description langauge variables:    */
-/*                                                                          */
-/****************************************************************************/
-
-#include "new_memory.h"
-#include "notice.h"
-#include "string_dictionary_aux.h"
-#include "variables.h"
-
-/*
- * fields_data[_length] - these point to the field data that the number
- *                        variables were last set to using 
- *                        var_set_number_variables_to_fields.
- */
-
-static char *fields_data;
-static int fields_data_length = 0;
-
-/*
- * [non_]number_variable_dict - contains the values of all the [non-]number
- *                              variables that have been set since the last
- *                              var_clear_all_variables call or (for numbers
- *                              only) var_set_number_variables_to_fields call.
- */
-
-static string_dictionary non_number_variable_dict = NULL;
-static string_dictionary number_variable_dict = NULL;
-
-/*
- *  Internal Routine:
- *
- *    int is_digits(string text)
- *        Effects: Returns true iff text matches [0-9]*.  ("" matches...)
- */
-
-static int
-is_digits(string text)
-{
-    for (; *text; text++)
-      if (!isdigit(*text))
-       return(0);
-
-    return(1);
-}
-
-/*
- *  Internal Routine:
- *
- *    int is_number_variable(string text)
- *        Effects: Returns true iff text matches [0-9]+.
- */
-
-#define  is_number_variable(x)      (isdigit(*(x)) && is_digits((x)))
-
-/*
- *    void var_clear_all_variables()
- *        Requires: This routine must be called before any other
- *                  var module routine is called.
- *        Modifies: All description language variables
- *        Effects: Sets all description langauge variables to "".
- */
-
-void
-var_clear_all_variables(void)
-{
-    if (non_number_variable_dict) {
-       string_dictionary_SafeDestroy(non_number_variable_dict);
-       string_dictionary_SafeDestroy(number_variable_dict);
-    }
-
-    non_number_variable_dict = string_dictionary_Create(101);
-    number_variable_dict = string_dictionary_Create(11);
-    fields_data_length = 0;
-}
-
-/*
- *    string var_get_variable(string name)
- *        Requires: var_clear_all_variables has been called
- *        Effects: Returns the value of the description langauge variable
- *                 named name.  The returned string is read-only and is
- *                 guarenteed to last only until the next var module
- *                 call.  DO NOT FREE THIS STRING.
- */
-
-string
-var_get_variable(string name)
-{
-    char *result;
-    int field_to_get;
-    static string last_get_field_call_result = NULL;
-
-    if (is_number_variable(name)) {
-       result = string_dictionary_Fetch(number_variable_dict, name);
-       if (result)
-         return(result);
-
-       /*
-        * Convert name to an integer avoiding overflow:
-        */
-       while (*name=='0')
-         name++;
-       if (strlen(name)>12)
-         field_to_get = 0; /* no way we'll have > 1 trillian fields... */
-       else
-         field_to_get = atoi(name);
-
-       if (!field_to_get)
-         return("");
-       if (last_get_field_call_result)
-         free(last_get_field_call_result);
-       last_get_field_call_result = get_field(fields_data,
-                                              fields_data_length,
-                                              field_to_get);
-       return(last_get_field_call_result);
-    }
-
-    if (!(result = string_dictionary_Fetch(non_number_variable_dict, name)))
-      result = "";
-
-    return(result);
-}
-
-/*
- *    void var_set_variable(string name, value)
- *        Requires: var_clear_all_variables has been called
- *        Modifies: The value of description langauge variable
- *                  named name.
- *        Effects: Sets the description langauge variable named name
- *                 to have the value value.
- */
-
-void
-var_set_variable(string name,
-                string value)
-{
-    string_dictionary_Set(is_number_variable(name) ? number_variable_dict
-                         : non_number_variable_dict, name, value);
-}
-
-/*
- *    void var_set_variable_to_number(string name; int number)
- *        Requires: var_clear_all_variables has been called
- *        Modifies: The value of description langauge variable
- *                  named name.
- *        Effects: Sets the description langauge variable named name
- *                 to have as its value number's ascii representation.
- */
-
-void
-var_set_variable_to_number(string name,
-                          int number)
-{
-    char buffer[20];
-
-    sprintf(buffer, "%d", number);
-    var_set_variable(name, buffer);
-}
-
-/*
- *    void var_set_variable_then_free_value(string name, value)
- *        Requires: var_clear_all_variables has been called, value is
- *                  on the heap.
- *        Modifies: The value of description langauge variable
- *                  named name, value
- *        Effects: Sets the description langauge variable named name
- *                 to have the value value then frees value.  This
- *                 routine is slightly faster than calling var_set_variable
- *                 then freeing value.  It is provided mainly for
- *                 convenience reasons.
- */
-
-void
-var_set_variable_then_free_value(string name,
-                                string value)
-{
-    string_dictionary_binding *binding;
-    int exists;
-
-#ifdef DEBUG_MEMORY
-    if (!memory__on_heap_p(value))
-      abort(); /* <<<>>> */
-#endif
-
-    if (is_number_variable(name)) {
-       var_set_variable(name, value);
-       free(value);
-       return;
-    }
-
-    binding = string_dictionary_Define(non_number_variable_dict, name,
-                                      &exists);
-    if (exists)
-      free(binding->value);
-    binding->value = value;
-}
-
-/*
- *    void var_set_number_variables_to_fields(char *data, int length)
- *        Requires: var_clear_all_variables has been called
- *        Modifies: All numeric description language variables
- *        Effects: Treats data[0]..data[length-1] as a series of
- *                 null-seperated fields.  Sets $<number> (<number>
- *                 here means [0-9]+ to field # <number> in data.
- *                 Field 0 is defined to be "" as are all field #'s
- *                 greater than the number of fields in data.
- *                 Data[0]..data[length-1] must not be changed (or freed)
- *                 until either this call is made again with different
- *                 data or var_clear_all_variables is called.
- */
-
-void
-var_set_number_variables_to_fields(char *data,
-                                  int length)
-{
-    fields_data = data;
-    fields_data_length = length;
-
-    string_dictionary_SafeDestroy(number_variable_dict);
-    number_variable_dict = string_dictionary_Create(11);
-}
diff --git a/zephyr/zwgc/variables.h b/zephyr/zwgc/variables.h
deleted file mode 100644 (file)
index 9b09ffc..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: variables.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef var_MODULE
-#define var_MODULE
-
-#include "new_string.h"
-
-/*
- *    void var_clear_all_variables()
- *        Requires: This routine must be called before any other
- *                  var module routine is called.
- *        Modifies: All description language variables
- *        Effects: Sets all description langauge variables to "".
- */
-
-extern void var_clear_all_variables(void);
-
-/*
- *    string var_get_variable(string name)
- *        Requires: var_clear_all_variables has been called
- *        Effects: Returns the value of the description langauge variable
- *                 named name.  The returned string is read-only and is
- *                 guarenteed to last only until the next var module
- *                 call.  DO NOT FREE THIS STRING.
- */
-
-extern string var_get_variable(string);
-
-/*
- *    void var_set_variable(string name, value)
- *        Requires: var_clear_all_variables has been called
- *        Modifies: The value of description langauge variable
- *                  named name.
- *        Effects: Sets the description langauge variable named name
- *                 to have the value value.
- */
-
-extern void var_set_variable(string, string);
-
-/*
- *    void var_set_variable_to_number(string name; int number)
- *        Requires: var_clear_all_variables has been called
- *        Modifies: The value of description langauge variable
- *                  named name.
- *        Effects: Sets the description langauge variable named name
- *                 to have as its value number's ascii representation.
- */
-
-extern void var_set_variable_to_number(string, int);
-
-/*
- *    void var_set_variable_then_free_value(string name, value)
- *        Requires: var_clear_all_variables has been called, value is
- *                  on the heap.
- *        Modifies: The value of description langauge variable
- *                  named name, value
- *        Effects: Sets the description langauge variable named name
- *                 to have the value value then frees value.  This
- *                 routine is slightly faster than calling var_set_variable
- *                 then freeing value.  It is provided mainly for
- *                 convenience reasons.
- */
-
-extern void var_set_variable_then_free_value(string, string);
-
-/*
- *    void var_set_number_variables_to_fields(char *data, int length)
- *        Requires: var_clear_all_variables has been called
- *        Modifies: All numeric description language variables
- *        Effects: Treats data[0]..data[length-1] as a series of
- *                 null-seperated fields.  Sets $<number> (<number>
- *                 here means [0-9]+ to field # <number> in data.
- *                 Field 0 is defined to be "" as are all field #'s
- *                 greater than the number of fields in data.
- *                 Data[0]..data[length-1] must not be changed (or freed)
- *                 until either this call is made again with different
- *                 data or var_clear_all_variables is called.
- */
-
-extern void var_set_number_variables_to_fields(char *, int);
-
-#endif
diff --git a/zephyr/zwgc/xcut.c b/zephyr/zwgc/xcut.c
deleted file mode 100644 (file)
index 8668218..0000000
+++ /dev/null
@@ -1,426 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: xcut.c 2336 2009-03-22 18:59:56Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_xcut_c[] = "$Id: xcut.c 2336 2009-03-22 18:59:56Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*                    Code to deal with handling X events:                  */
-/*                                                                          */
-/****************************************************************************/
-
-#ifndef X_DISPLAY_MISSING
-
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <zephyr/zephyr.h>
-#include "new_memory.h"
-#include "new_string.h"
-#include "X_gram.h"
-#include "zwgc.h"
-#include "xselect.h"
-#include "xmark.h"
-#include "error.h"
-#include "xrevstack.h"
-#include "X_driver.h"
-#include "xcut.h"
-#ifdef CMU_ZWGCPLUS
-#include "plus.h"
-#include "variables.h"
-#endif
-
-/*
- *
- */
-
-extern long ttl;
-
-static char *selected_text=NULL;
-static Window selecting_in = 0;
-
-char *
-getSelectedText(void)
-{
-   return(selected_text);
-}
-
-#ifdef notdef
-static string
-x_gram_to_string(x_gram *gram)
-{
-    int i, index, len;
-    int last_y = -1;
-    string temp;
-    string text_so_far = string_Copy("");
-    char *text;
-
-    text = gram->text;
-    for (i=0; i<gram->numblocks; i++) {
-       if (last_y != -1 && last_y != gram->blocks[i].y)
-         text_so_far = string_Concat2(text_so_far, "\n");
-       index = gram->blocks[i].strindex;
-       len = gram->blocks[i].strlen;
-       temp = string_CreateFromData(text+index, len);
-       text_so_far = string_Concat2(text_so_far, temp);
-       free(temp);
-       last_y = gram->blocks[i].y;
-    }
-
-    text_so_far = string_Concat2(text_so_far, "\n");
-    return(text_so_far);
-}
-#endif
-
-/*
- *
- */
-
-/*ARGSUSED*/
-Bool
-isShiftButton1(Display *dpy,
-              XEvent *event,
-              char *arg)
-{
-   return(event->xbutton.state & (ShiftMask|Button1Mask));
-}
-
-/*ARGSUSED*/
-Bool
-isShiftButton3(Display *dpy,
-              XEvent *event,
-              char *arg)
-{
-   return(event->xbutton.state & (ShiftMask|Button3Mask));
-}
-
-void
-getLastEvent(Display *dpy,
-            unsigned int state,
-            XEvent *event)
-{
-   XEvent xev;
-
-   if (state & Button1Mask) {
-      while(XCheckIfEvent(dpy,&xev,isShiftButton1,NULL))
-        *event=xev;
-   } else if (state & Button3Mask) {
-      while(XCheckIfEvent(dpy,&xev,isShiftButton3,NULL))
-        *event=xev;
-   }
-}
-
-void
-xunmark(Display *dpy,
-       Window w,
-       x_gram *gram,
-       XContext desc_context)
-{
-   if (gram == NULL)
-     if (XFindContext(dpy, w, desc_context, (caddr_t *) &gram))
-       return;
-
-   xmarkClear();
-   xmarkRedraw(dpy,w,gram,XMARK_REDRAW_OLD);
-}
-
-/* This is out here so xdestroygram can get at it */
-
-#define PRESSOP_NONE 0 /* nothing */
-#define PRESSOP_KILL 1 /* normal click */
-#define PRESSOP_SEL  2 /* shift left */
-#define PRESSOP_EXT  3  /* shift right */
-#define PRESSOP_NUKE 4 /* ctrl */
-#define PRESSOP_STOP 5  /* pressop cancelled by moving out of window */
-
-static int current_pressop = PRESSOP_NONE;
-
-void
-xdestroygram(Display *dpy,
-            Window w,
-            XContext desc_context,
-            x_gram *gram)
-{
-    struct timeval now;
-
-    gettimeofday(&now,NULL);
-    if ((gram->can_die.tv_sec == 0) ||
-       (gram->can_die.tv_sec > now.tv_sec) ||
-       ((gram->can_die.tv_sec == now.tv_sec) &&
-        (gram->can_die.tv_usec > now.tv_usec)))
-       return;
-
-    if (w == selecting_in) {
-       selecting_in = 0;
-       xmarkClear();
-    }
-    current_pressop = PRESSOP_NONE;
-    XDeleteContext(dpy, w, desc_context);
-    XDestroyWindow(dpy, w);
-    delete_gram(gram);
-    free(gram->text);
-    free(gram->blocks);
-#ifdef CMU_ZWGCPLUS
-    if (gram->notice)
-      list_del_notice(gram->notice);
-#endif
-    free(gram);
-
-#ifdef CMU_ZWGCPLUS
-    XFlush(dpy);
-#endif
-
-    if (bottom_gram == NULL && unlinked == NULL) {
-       /* flush colormap here */
-    }
-}
-
-void
-xcut(Display *dpy,
-     XEvent *event,
-     XContext desc_context)
-{
-    x_gram *gram;
-    Window w = event->xany.window;
-    int changedbound;
-
-    /*
-     * If event is for a window that's not ours anymore (say we're
-     * in the process of deleting it...), ignore it:
-     */
-    if (XFindContext(dpy, w, desc_context, (caddr_t *) &gram))
-      return;
-
-    /*
-     * Dispatch on the event type:
-     */
-    switch(event->type) {
-#ifdef CMU_ZWGCPLUS
-    case KeyPress:
-      {
-        char c;
-        char *plusvar;
-        int res, metaflag;
-        res = XLookupString(&(event->xkey), &c, 1, NULL, NULL);
-        metaflag = event->xkey.state & Mod1Mask;
-
-        /* Recheck if zwgcplus is turned on;
-         *  Zephyr variables override zwgc variables
-         */
-
-        zwgcplus = 1;
-        plusvar = ZGetVariable("zwgcplus")
-           ? ZGetVariable("zwgcplus") : var_get_variable("zwgcplus");
-
-        if ((plusvar[0]=='\0') || (strcmp(plusvar,"no") == 0))
-          zwgcplus = 0;
-        else {
-          if (strcmp(plusvar,"no") == 0)
-            zwgcplus = 0;
-          if (strcmp(plusvar,"new") == 0)
-            zwgcplus = 2;
-        }
-
-        if (res != 0 && zwgcplus != 0)
-          plus_retry_notice(gram->notice, c, metaflag);
-      }
-      break;
-#endif
-      case ClientMessage:
-       if ((event->xclient.message_type == XA_WM_PROTOCOLS) &&
-           (event->xclient.format == 32) &&
-           (event->xclient.data.l[0] == XA_WM_DELETE_WINDOW))
-           xdestroygram(dpy,w,desc_context,gram);
-       break;
-
-      case MapNotify:
-       /* I don't like using the local time, but MapNotify events don't
-        * come with a timestamp, and there's no way to query the server
-        */
-
-       if (gram->can_die.tv_sec == 0) {
-           gettimeofday(&(gram->can_die),NULL);
-           gram->can_die.tv_sec += (int) (ttl/1000);
-           gram->can_die.tv_usec += (ttl%1000)*1000;
-       }
-       break;
-
-      case UnmapNotify:
-       unlink_gram(gram);
-       break;
-
-      case LeaveNotify:
-       if (current_pressop == PRESSOP_KILL ||
-           current_pressop == PRESSOP_NUKE)
-          current_pressop = PRESSOP_STOP;
-       break;
-
-      case MotionNotify:
-       if (current_pressop == PRESSOP_SEL) {
-          /*     getLastEvent(dpy,Button1Mask,event); */
-          changedbound=xmarkExtendFromFirst(gram,event->xmotion.x,
-                                            event->xmotion.y);
-          xmarkRedraw(dpy,w,gram,changedbound);
-       } else if (current_pressop == PRESSOP_EXT) {
-          /*     getLastEvent(dpy,Button3Mask,event); */
-          changedbound=xmarkExtendFromNearest(gram,event->xmotion.x,
-                                              event->xmotion.y);
-          xmarkRedraw(dpy,w,gram,changedbound);
-       } 
-       break;
-
-      case ButtonPress:
-       if (current_pressop != PRESSOP_NONE) {
-          current_pressop = PRESSOP_STOP;
-       } else if ((event->xbutton.button==Button4 ||
-                   event->xbutton.button==Button5) &&
-                  !get_bool_resource("scrollDelete","ScrollDelete",0)) {
-          /* Ignore scroll wheel movement. */
-          break;
-       } else if ( (event->xbutton.state)&ShiftMask ) {
-          if (event->xbutton.button==Button1) {
-             if (selecting_in)
-                xunmark(dpy,selecting_in,NULL,desc_context);
-             if (selected_text) free(selected_text);
-             selected_text = NULL;
-             if (! xselGetOwnership(dpy,w,event->xbutton.time)) {
-                XBell(dpy,0);
-                ERROR("Unable to get ownership of PRIMARY selection.\n");
-                selecting_in = 0;
-                current_pressop = PRESSOP_STOP;
-             } else {
-                selecting_in = w;
-                xmarkStart(gram,event->xbutton.x,event->xbutton.y);
-                current_pressop = PRESSOP_SEL;
-             }
-          } else if ((event->xbutton.button==Button3) &&
-                     (w == selecting_in)) {
-             if (selected_text) free(selected_text);
-             selected_text = NULL;
-             changedbound=xmarkExtendFromNearest(gram,event->xbutton.x,
-                                                 event->xbutton.y);
-             xmarkRedraw(dpy,w,gram,changedbound);
-             selected_text = xmarkGetText();
-             /* this is ok, since to get here, the selection must be owned */
-             current_pressop = PRESSOP_EXT;
-#ifdef CMU_ZWGCPLUS
-              if (selected_text)
-                XStoreBytes(dpy, selected_text, strlen(selected_text)+1);
-#endif
-          }
-       } else if ( (event->xbutton.state)&ControlMask ) {
-          current_pressop = PRESSOP_NUKE;
-       } else {
-          current_pressop = PRESSOP_KILL;
-       }
-       break;
-
-      case ButtonRelease:
-       if (current_pressop == PRESSOP_KILL) {
-          xdestroygram(dpy,w,desc_context,gram);
-       } else if (current_pressop == PRESSOP_SEL ||
-                  current_pressop == PRESSOP_EXT) {
-          if (selected_text) free(selected_text);
-          selected_text = xmarkGetText();
-#ifdef CMU_ZWGCPLUS
-          if (selected_text)
-            XStoreBytes(dpy, selected_text, strlen(selected_text)+1);
-#endif
-       } else if (current_pressop == PRESSOP_NUKE) {
-          XWindowAttributes wa;
-          int gx,gy;
-          Window temp;
-          x_gram *next;
-
-          for (gram = bottom_gram ; gram ; gram = next) {
-             XGetWindowAttributes(dpy,gram->w,&wa);
-             XTranslateCoordinates(dpy,gram->w,wa.root,0,0,&gx,&gy,
-                                   &temp);
-
-             next = gram->above;
-
-             if ((wa.map_state == IsViewable) &&
-                 (gx <= event->xbutton.x_root) &&
-                 (event->xbutton.x_root < gx+wa.width) &&
-                 (gy <= event->xbutton.y_root) &&
-                 (event->xbutton.y_root < gy+wa.height)) {
-                xdestroygram(dpy,gram->w,desc_context,gram);
-             }
-          }
-          for (gram = unlinked ; gram ; gram = next) {
-             XGetWindowAttributes(dpy,gram->w,&wa);
-             XTranslateCoordinates(dpy,gram->w,wa.root,0,0,&gx,&gy,
-                                   &temp);
-
-             next = gram->above;
-
-             if ((wa.map_state == IsViewable) &&
-                 (gx <= event->xbutton.x_root) &&
-                 (event->xbutton.x_root < gx+wa.width) &&
-                 (gy <= event->xbutton.y_root) &&
-                 (event->xbutton.y_root < gy+wa.height)) {
-                xdestroygram(dpy,gram->w,desc_context,gram);
-             }
-          }
-       }
-       current_pressop = PRESSOP_NONE;
-       break;
-
-     case SelectionRequest:
-       xselProcessSelection(dpy,w,event);
-       break;
-
-     case SelectionClear:
-       xselOwnershipLost(event->xselectionclear.time);
-       if (w == selecting_in) {
-         selecting_in = 0;
-         xunmark(dpy,w,gram,desc_context);
-         if (selected_text) free(selected_text);
-         selected_text = NULL;
-       }
-       break;
-
-#ifdef notdef
-      case ConfigureNotify:
-#ifdef DEBUG
-       if (zwgc_debug)
-         printf("ConfigureNotify received for wid %lx above wid %lx\n",
-                (long) w,(long) event->xconfigure.above);
-#endif
-       if (gram->above==gram) {
-          /* a new zgram.  Straight to the bottom! */
-          add_to_bottom(gram);
-       } else if (event->xconfigure.above)  {
-          /* some zgram was pulled to the top */
-          pull_to_top(gram);
-       } else {
-          /* Some zgram was pushed to the bottom */
-          push_to_bottom(gram);
-       }
-       /* Note that there is no option to configure a zgram to the middle */
-       break;
-#endif
-      default:
-       break;
-    }
-
-    XFlush(dpy);
-}
-
-#endif
-
diff --git a/zephyr/zwgc/xcut.h b/zephyr/zwgc/xcut.h
deleted file mode 100644 (file)
index 4ce8400..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-/* $Id: xcut.h 2331 2009-03-22 18:07:32Z kcr $
- *
- */
-
-void xdestroygram(Display *dpy, Window w, XContext desc_context, x_gram *gram);
diff --git a/zephyr/zwgc/xerror.c b/zephyr/zwgc/xerror.c
deleted file mode 100644 (file)
index 15049c2..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: xerror.c 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_xerror_c[] = "$Id: xerror.c 2133 2008-01-21 03:11:44Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef X_DISPLAY_MISSING
-
-#include <X11/Xlib.h>
-#include "mux.h"
-
-int xerror_happened;
-
-/*ARGSUSED*/
-static int
-xerrortrap(Display *dpy,
-          XErrorEvent *xerrev)
-{
-   xerror_happened = 1;
-   return 0;
-}
-
-/*ARGSUSED*/
-void
-begin_xerror_trap(Display *dpy)
-{
-   xerror_happened = 0;
-   XSetErrorHandler(xerrortrap);
-}
-
-void
-end_xerror_trap(Display *dpy)
-{
-   XSync(dpy,False);
-   XSetErrorHandler(NULL);
-}
-
-#endif
-
diff --git a/zephyr/zwgc/xerror.h b/zephyr/zwgc/xerror.h
deleted file mode 100644 (file)
index 7dccc76..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: xerror.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#ifndef _XERROR_H_
-#define _XERROR_H_
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_xerror_h[] = "$Id: xerror.h 2133 2008-01-21 03:11:44Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-extern int xerror_happened;
-
-void begin_xerror_trap(Display *);
-void end_xerror_trap(Display *);
-
-#endif
diff --git a/zephyr/zwgc/xmark.c b/zephyr/zwgc/xmark.c
deleted file mode 100644 (file)
index 0ab4b38..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: xmark.c 2336 2009-03-22 18:59:56Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_xmark_c[] = "$Id: xmark.c 2336 2009-03-22 18:59:56Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-#include <sysdep.h>
-
-#ifndef X_DISPLAY_MISSING
-
-#include <X11/X.h>
-#include <X11/Xlib.h>
-#include <zephyr/zephyr.h>
-#include "X_gram.h"
-#include "X_fonts.h"
-#include "xmark.h"
-#include "new_string.h"
-
-int markblock[3] = { -1 , -1 , -1 };
-int markchar[3] = { -1 , -1 , -1 };
-int markpixel[3] = { -1 , -1 , -1 };
-x_gram *markgram = NULL;
-
-int oldblock[2] = { -1 , -1 };
-int oldpixel[2] = { -1 , -1 };
-x_gram *oldgram = NULL;
-
-#define xmarkValid() \
-   ((markgram) && \
-   (STARTBLOCK != -1) && (ENDBLOCK != -1) && \
-   (STARTCHAR != -1) && (ENDCHAR != -1) && \
-   (STARTPIXEL != -1) && (ENDPIXEL != -1))
-
-void
-xmarkSetBound(x_gram *gram,
-             int x,
-             int y,
-             int which)
-{
-   int i,xofs,yofs;
-   XFontStruct *font;
-   xblock *xb;
-   unsigned char *s;
-
-#ifdef MARK_DEBUG
-#define RETURN \
-   if ((oldblock[which] != markblock[which]) || \
-       (oldpixel[which] != markpixel[which])) { \
-      printf("----- SetBound:\noldblock[%d]=%d,   oldpixel[%d]=%d\nmarkblock[%d]=%d, markpixel[%d]=%d\n-----", \
-            which,oldblock[which],which,oldpixel[which], \
-            which,markblock[which],which,markpixel[which]); \
-   } \
-   return
-#else
-#define RETURN return
-#endif
-
-   if (markgram != gram) {
-      xmarkClear();
-      markgram = gram;
-   } else if (which < XMARK_TEMP_BOUND) {
-      oldblock[which]=markblock[which];
-      oldpixel[which]=markpixel[which];
-   }
-
-   /* Start at the top, fastforward to first span not too high. */
-   for (i=0,xb=gram->blocks ;
-       (i<gram->numblocks) && (xb->y2 < y) ;
-       i++,xb++) ;
-
-   /* the point is after the end */
-   if (i==gram->numblocks) {
-      markblock[which]=i;
-      markchar[which]=0;
-      markpixel[which]=0;
-      RETURN;
-   }
-
-   /* is the point before the beginning of the line? */
-   if (x <= xb->x1) {
-      markblock[which]=i;
-      markchar[which]=0;
-      markpixel[which]=0;
-      RETURN;
-   }
-
-   /* is the point in the nether space between this line and the last? */
-   if (y < xb->y1) {
-      markblock[which]=i;
-      markchar[which]=0;
-      markpixel[which]=0;
-      RETURN;
-   }
-
-   for (yofs=xb->y1;(i<gram->numblocks) && (xb->y1 == yofs);i++,xb++) {
-
-      if (x <= xb->x2) {
-        markblock[which]=i;
-
-        xofs=xb->x1;
-        if ((x < xofs) || (y < xb->y1)) {
-           markchar[which]=0;
-           RETURN;
-        }
-        font=get_fontst_from_fid(xb->fid);
-        for (i=0,s=(unsigned char *)((gram->text)+(xb->strindex));
-             xofs<x && i<xb->strlen;
-             i++,s++) {
-            /* if font->per_char is NULL, then we should use min_bounds */
-            short usewidth = font->per_char ? font->per_char[*s - font->min_char_or_byte2].width : font->min_bounds.width;
-          if (x <= (xofs+=usewidth)) {
-             markchar[which]=i;
-             markpixel[which]=xofs - xb->x1 - usewidth;
-             RETURN;
-          }
-        }
-      }
-   }
-
-   /* The endpoint is after the end of the block if the loop ends */
-   markblock[which]=i;
-   markchar[which]=0;
-   markpixel[which]=0;
-   RETURN;
-}
-
-/* needs both bounds to be valid (!= -1) */
-static int
-xmarkNearest(int x,
-            int y)
-{
-   int middle;
-
-   xmarkSetBound(markgram,x,y,XMARK_TEMP_BOUND);
-   middle=(ENDBLOCK+STARTBLOCK)/2;
-
-   if (markblock[XMARK_TEMP_BOUND] < middle)
-     return(XMARK_START_BOUND);
-   else if (markblock[XMARK_TEMP_BOUND] > middle)
-     return(XMARK_END_BOUND);
-   else {
-      middle=(ENDCHAR+STARTCHAR)/2;
-      if (markchar[XMARK_TEMP_BOUND] < middle)
-       return(XMARK_START_BOUND);
-      else
-       return(XMARK_END_BOUND);
-   }
-}
-
-void
-xmarkExpose(Display *dpy,
-           Window w,
-           x_gram *gram,
-           unsigned int b1,
-           unsigned int p1,
-           unsigned int b2,
-           unsigned int p2)
-{
-#define swap(x,y) temp=(x); (x)=(y); (y)=temp
-   int i,temp;
-   XEvent event;
-#define expose (event.xexpose)
-
-   if ((b1==-1) || (p1==-1) || (b2==-1) || (p2==-1)) return;
-
-   if ((b1 > b2) || ((b1 == b2) && (p1 > p2))) {
-      swap(b1,b2);
-      swap(p1,p2);
-   }
-
-#if defined(_IBMR2) && !defined(__GNUC__) && defined(RS6000_OPT_BUG)
-   /* A version of the AIX 3.1 RS/6000 C compiler needs this to prevent
-      a core dump in the loop below. */
-   &b1;
-#endif
-
-   expose.type=Expose;
-   expose.display=dpy;
-   expose.window=w;
-
-   for (i=b1;i<=b2;i++) {
-      if (b1==b2) {
-        expose.x=gram->blocks[i].x1+p1;
-        expose.y=gram->blocks[i].y1;
-        expose.width=p2-p1;
-        expose.height=gram->blocks[i].y2-gram->blocks[i].y1;
-        expose.count=0;
-      } else if (i==b1) {
-        expose.x=gram->blocks[i].x1+p1;
-        expose.y=gram->blocks[i].y1;
-        expose.width=gram->blocks[i].x2-p1;
-        expose.height=gram->blocks[i].y2-gram->blocks[i].y1;
-        expose.count=b2-i;
-      } else if (i==b2) {
-        expose.x=gram->blocks[i].x1;
-        expose.y=gram->blocks[i].y1;
-        expose.width=p2;
-        expose.height=gram->blocks[i].y2-gram->blocks[i].y1;
-        expose.count=b2-i;
-      } else {
-        expose.x=gram->blocks[i].x1;
-        expose.y=gram->blocks[i].y1;
-        expose.width=gram->blocks[i].x2-gram->blocks[i].x1;
-        expose.height=gram->blocks[i].y2-gram->blocks[i].y1;
-        expose.count=b2-i;
-      }
-
-#ifdef MARK_DEBUG
-   if (expose.width && expose.height) {
-      printf("---- markExpose:\nb1=%d p1=%d b2=%d p2=%d\n",b1,p1,b2,p2);
-      printf("x=%d y=%d w=%d h=%d\n-----",
-            expose.x,expose.y,expose.width,expose.height);
-   }
-#endif
-      if ((expose.width && expose.height) || (expose.count == 0))
-       XSendEvent(dpy,w,True,ExposureMask,&event);
-   }
-}
-
-/* Public functions: */
-
-void
-xmarkRedraw(Display *dpy,
-           Window w,
-           x_gram *gram,
-           int range)
-{
-#define ob1 ((unsigned int) oldblock[XMARK_START_BOUND])
-#define ob2 ((unsigned int) oldblock[XMARK_END_BOUND])
-#define nb1 ((unsigned int) markblock[XMARK_START_BOUND])
-#define nb2 ((unsigned int) markblock[XMARK_END_BOUND])
-#define op1 ((unsigned int) oldpixel[XMARK_START_BOUND])
-#define op2 ((unsigned int) oldpixel[XMARK_END_BOUND])
-#define np1 ((unsigned int) markpixel[XMARK_START_BOUND])
-#define np2 ((unsigned int) markpixel[XMARK_END_BOUND])
-
-   if (range==XMARK_REDRAW_CURRENT) {
-      if (!markgram) return;
-      xmarkExpose(dpy,w,gram,nb1,np1,nb2,np2);
-   } else if (range==XMARK_REDRAW_OLD) {
-      if (!oldgram) return;
-      xmarkExpose(dpy,w,gram,ob1,op1,ob2,op2);
-   } else if (range==XMARK_REDRAW_START) {
-      if (!markgram) return;
-      xmarkExpose(dpy,w,gram,ob1,op1,nb1,np1);
-   } else if (range==XMARK_REDRAW_END) {
-      if (!markgram) return;
-      xmarkExpose(dpy,w,gram,ob2,op2,nb2,np2);
-   }
-#ifdef DEBUG
-     else {
-       printf("xmarkRedraw:  This shouldn't happen!\n");
-     }
-#endif
-}
-
-/* needs both bounds to be valid (!= -1) */
-int
-xmarkSecond(void)
-{
-   if (STARTBLOCK > ENDBLOCK)
-     return(XMARK_START_BOUND);
-   else if (STARTBLOCK < ENDBLOCK)
-     return(XMARK_END_BOUND);
-   else {
-      if (STARTCHAR > ENDCHAR)
-       return(XMARK_START_BOUND);
-      else if (STARTCHAR < ENDCHAR)
-       return(XMARK_END_BOUND);
-      else
-       return(XMARK_END_BOUND);
-   }
-}
-
-void
-xmarkClear(void)
-{
-   oldblock[0]=markblock[0];
-   oldblock[1]=markblock[1];
-   oldpixel[0]=markpixel[0];
-   oldpixel[1]=markpixel[1];
-   oldgram=markgram;
-
-   markblock[0] = -1;
-   markblock[1] = -1;
-   markchar[0] = -1;
-   markchar[1] = -1;
-   markpixel[0] = -1;
-   markpixel[1] = -1;
-   markgram=NULL;
-}
-
-int
-xmarkExtendFromFirst(x_gram *gram,
-                    int x,
-                    int y)
-{
-   if (markgram != gram) {
-      xmarkClear();
-      markgram = gram;
-   }
-
-   if (STARTBLOCK == -1) {
-      xmarkStart(gram,x,y);
-      xmarkEnd(gram,x,y);
-      return(XMARK_REDRAW_CURRENT);
-   } else if (ENDBLOCK == -1) {
-      xmarkEnd(gram,x,y);
-      return(XMARK_REDRAW_CURRENT);
-   } else {
-      xmarkSetBound(gram,x,y,XMARK_END_BOUND);
-      return(XMARK_REDRAW_END);
-   }
-}
-
-int
-xmarkExtendFromNearest(x_gram *gram,
-                      int x,
-                      int y)
-{
-   int bound;
-
-   if (markgram != gram) {
-      xmarkClear();
-      markgram = gram;
-   }
-
-   if (STARTBLOCK == -1) {
-      xmarkStart(gram,x,y);
-      xmarkEnd(gram,x,y);
-      return(XMARK_REDRAW_CURRENT);
-   } else if (ENDBLOCK == -1) {
-      xmarkEnd(gram,x,y);
-      return(XMARK_REDRAW_CURRENT);
-   } else {
-      xmarkSetBound(gram,x,y,bound=xmarkNearest(x,y));
-      return(bound==XMARK_START_BOUND?XMARK_REDRAW_START:XMARK_REDRAW_END);
-   }
-}
-
-char *
-xmarkGetText(void)
-{
-    int i, index, len;
-    int last_y = -1;
-    string temp;
-    string text_so_far = string_Copy("");
-    char *text = markgram->text;
-    int startblock,endblock,startchar,endchar;
-
-    if (xmarkValid()) {
-       if (xmarkSecond() == XMARK_END_BOUND) {
-         startblock=STARTBLOCK;
-         endblock=ENDBLOCK;
-         startchar=STARTCHAR;
-         endchar=ENDCHAR;
-       } else {
-         startblock=ENDBLOCK;
-         endblock=STARTBLOCK;
-         startchar=ENDCHAR;
-         endchar=STARTCHAR;
-       }
-
-       for (i=startblock; i<=endblock; i++) {
-         if (last_y != -1 && last_y != markgram->blocks[i].y)
-           text_so_far = string_Concat2(text_so_far, "\n");
-         index = markgram->blocks[i].strindex;
-         len = markgram->blocks[i].strlen;
-         if (startblock == endblock)
-           temp = string_CreateFromData(text+index+startchar,
-                                        endchar-startchar);
-         else if (i==startblock)
-           temp = string_CreateFromData(text+index+startchar,len-startchar);
-         else if (i==endblock)
-           temp = string_CreateFromData(text+index,endchar);
-         else
-           temp = string_CreateFromData(text+index,len);
-         text_so_far = string_Concat2(text_so_far, temp);
-         free(temp);
-         last_y = markgram->blocks[i].y;
-       }
-    }
-
-    return(text_so_far);
-}
-
-#endif /* X_DISPLAY_MISSING */
-
diff --git a/zephyr/zwgc/xmark.h b/zephyr/zwgc/xmark.h
deleted file mode 100644 (file)
index 8d49e17..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: xmark.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef _XMARK_H_
-#define _XMARK_H_
-
-#define XMARK_START_BOUND 0
-#define XMARK_END_BOUND 1
-#define XMARK_TEMP_BOUND 2
-
-#define XMARK_REDRAW_CURRENT 1
-#define XMARK_REDRAW_OLD 2
-#define XMARK_REDRAW_START 3
-#define XMARK_REDRAW_END 4
-
-#define xmarkStart(gram,x,y) xmarkSetBound(gram,x,y,XMARK_START_BOUND)
-#define xmarkEnd(gram,x,y) xmarkSetBound(gram,x,y,XMARK_END_BOUND)
-
-extern int markblock[];
-extern int markchar[];
-extern int markpixel[];
-extern x_gram *markgram;
-
-#define STARTBLOCK (markblock[XMARK_START_BOUND])
-#define ENDBLOCK   (markblock[XMARK_END_BOUND])
-#define STARTCHAR  (markchar[XMARK_START_BOUND])
-#define ENDCHAR    (markchar[XMARK_END_BOUND])
-#define STARTPIXEL (markpixel[XMARK_START_BOUND])
-#define ENDPIXEL   (markpixel[XMARK_END_BOUND])
-
-extern void xmarkSetBound(x_gram *, int, int, int);
-extern int xmarkSecond(void);
-extern void xmarkRedraw(Display *, Window, x_gram *, int);
-extern void xmarkClear(void);
-extern int xmarkExtendFromFirst(x_gram *, int, int);
-extern int xmarkExtendFromNearest(x_gram *, int, int);
-extern char *xmarkGetText(void);
-
-#endif
diff --git a/zephyr/zwgc/xrevstack.c b/zephyr/zwgc/xrevstack.c
deleted file mode 100644 (file)
index ed7ffd9..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: xrevstack.c 2336 2009-03-22 18:59:56Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_xrevstack_c[] = "$Id: xrevstack.c 2336 2009-03-22 18:59:56Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef X_DISPLAY_MISSING
-
-#ifndef TRUEREVSTACK
-#include <zephyr/zephyr.h>
-#include "X_gram.h"
-
-x_gram *bottom_gram = NULL;
-x_gram *unlinked = NULL;
-int reverse_stack = 0;
-
-void
-add_to_bottom(x_gram *gram)
-{
-   if (bottom_gram) {
-      bottom_gram->below = gram;
-      gram->below = NULL;
-      gram->above = bottom_gram;
-      bottom_gram = gram;
-   } else {
-      gram->above = NULL;
-      gram->below = NULL;
-      bottom_gram = gram;
-   }
-}
-
-/*ARGSUSED*/
-void
-pull_to_top(x_gram *gram)
-{
-}
-
-/*ARGSUSED*/
-void
-push_to_bottom(x_gram *gram)
-{
-}
-
-void
-delete_gram(x_gram *gram)
-{
-   if (gram == bottom_gram) {
-      if (gram->above) {
-        bottom_gram = gram->above;
-        bottom_gram->below = NULL;
-      } else {
-        bottom_gram = NULL;
-      }
-   } else if (gram == unlinked) {
-      if (gram->above) {
-        unlinked = gram->above;
-        unlinked->below = NULL;
-      } else {
-        unlinked = NULL;
-      }
-   } else {
-      if (gram->above)
-       gram->above->below = gram->below;
-      gram->below->above = gram->above;     
-   }
-
-   /* fix up above & below pointers so that calling delete_gram
-      again is safe */
-   gram->below = gram;
-   gram->above = gram;
-}
-
-void
-unlink_gram(x_gram *gram)
-{
-   delete_gram(gram);
-
-   if (unlinked) {
-      unlinked->below = gram;
-      gram->below = NULL;
-      gram->above = unlinked;
-      unlinked = gram;
-   } else {
-      gram->above = NULL;
-      gram->below = NULL;
-      unlinked = gram;
-   }
-}
-
-#endif
-
-#ifdef TRUEREVSTACK
-
-#include "X_gram.h"
-#include "zwgc.h"
-#include <stdio.h>
-
-x_gram *bottom_gram=NULL;
-static x_gram *top_gram=NULL;
-
-#ifdef DEBUG
-void
-print_gram_list(char *str)
-{
-   x_gram *gram;
-   char buf[80];
-
-   if (zwgc_debug) {
-      printf("----- From function %s: Top of tree\n",str);
-      if (top_gram) 
-       if (top_gram->above) 
-         printf("Tree munged: something above top_gram\n");
-      for (gram=top_gram;gram;gram=gram->below) {
-        strncpy(buf,gram->text,63);
-        buf[63]='\0';
-        printf("wid %lx txt: %s\n",(long) gram->w,buf);
-      }
-      if (bottom_gram) 
-       if (bottom_gram->below) 
-         printf("Tree munged: something below bottom_gram\n");
-      printf("----- Bottom of tree\n");
-   }
-}
-#endif
-
-void
-pull_to_top(x_gram *gram)
-{
-   if (gram==top_gram) {
-      /* already here */
-      return;
-   } else if (top_gram==NULL) {
-      /* no grams at all.  Make gram both top and bottom */
-      top_gram=gram;
-      bottom_gram=gram;
-   } else if (gram==bottom_gram) {
-      /* bottom gram is special case */
-      bottom_gram=bottom_gram->above;
-      bottom_gram->below=NULL;
-      top_gram->above=gram;
-      gram->below=top_gram;
-      top_gram=gram;
-   } else {
-      /* normal case of a gram in the middle */
-      gram->above->below=gram->below;
-      gram->below->above=gram->above;
-      top_gram->above=gram;
-      gram->below=top_gram;
-      gram->above=NULL;
-      top_gram=gram;
-   }
-#ifdef DEBUG
-   print_gram_list("pull_to_top");
-#endif
-}
-
-void
-push_to_bottom(x_gram *gram)
-{
-   if (gram==bottom_gram) {
-      /* already here */
-      return;
-   } else if (bottom_gram==NULL) {
-      /* no grams at all.  Make gram both top and bottom */
-      gram->above=NULL;
-      gram->below=NULL;
-      top_gram=gram;
-      bottom_gram=gram;
-   } else if (gram==top_gram) {
-      /* top gram is special case */
-      top_gram=top_gram->below;
-      top_gram->above=NULL;
-      bottom_gram->below=gram;
-      gram->above=bottom_gram;
-      bottom_gram=gram;
-   } else {
-      /* normal case of a gram in the middle */
-      gram->above->below=gram->below;
-      gram->below->above=gram->above;
-      bottom_gram->below=gram;
-      gram->above=bottom_gram;
-      gram->below=NULL;
-      bottom_gram=gram;
-   }
-#ifdef DEBUG
-   print_gram_list("push_to_bottom");
-#endif
-}
-
-void
-unlink_gram(x_gram *gram)
-{
-   if (top_gram==bottom_gram) {
-      /* the only gram in the stack */
-      top_gram=NULL;
-      bottom_gram=NULL;
-   } else if (gram==top_gram) {
-      top_gram=gram->below;
-      top_gram->above=NULL;
-   } else if (gram==bottom_gram) {
-      bottom_gram=gram->above;
-      bottom_gram->below=NULL;
-   } else {
-      gram->above->below=gram->below;
-      gram->below->above=gram->above;
-   }
-#ifdef DEBUG
-   print_gram_list("unlink_gram");
-#endif
-}
-
-#ifdef notdef
-void
-add_to_top(x_gram *gram)
-{
-   if (top_gram==NULL) {
-      gram->above=NULL;
-      gram->below=NULL;
-      top_gram=gram;
-      bottom_gram=gram;
-   } else {
-      top_gram->above=gram;
-      gram->above=NULL;
-      gram->below=top_gram;
-      top_gram=gram;
-   }
-#ifdef DEBUG
-   print_gram_list("add_to_top");
-#endif
-}
-#endif
-
-void
-add_to_bottom(x_gram *gram)
-{
-   if (bottom_gram==NULL) {
-      gram->above=NULL;
-      gram->below=NULL;
-      top_gram=gram;
-      bottom_gram=gram;
-   } else {
-      bottom_gram->below=gram;
-      gram->above=bottom_gram;
-      gram->below=NULL;
-      bottom_gram=gram;
-   }
-#ifdef DEBUG
-   print_gram_list("add_to_bottom");
-#endif
-}
-
-#endif /* TRUEREVSTACK */
-
-#endif /* X_DISPLAY_MISSING */
-
diff --git a/zephyr/zwgc/xrevstack.h b/zephyr/zwgc/xrevstack.h
deleted file mode 100644 (file)
index 7fb324e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: xrevstack.h 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#ifndef _XREVSTACK_H_
-#define _XREVSTACK_H_
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_xrevstack_h[] = "$Id: xrevstack.h 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-extern x_gram *bottom_gram; /* for testing against NULL */
-extern x_gram *unlinked;
-extern int reverse_stack; /* is reverse stack on? */
-
-extern void add_to_bottom(x_gram *);
-extern void delete_gram(x_gram *);
-extern void unlink_gram(x_gram *);
-extern void pull_to_top(x_gram *);
-extern void push_to_bottom(x_gram *);
-
-#endif /* _XREVSTACK_H_ */
diff --git a/zephyr/zwgc/xselect.c b/zephyr/zwgc/xselect.c
deleted file mode 100644 (file)
index 5f99640..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: xselect.c 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_xselect_c[] = "$Id: xselect.c 2144 2008-01-21 07:57:32Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/* xselect.c - ICCCM compliant cut-and-paste */
-/* also includes some other ICCCMisms, such as the WM_PROTOCOL handling */
-
-#ifndef X_DISPLAY_MISSING
-
-#include <X11/Xlib.h>
-#include <X11/Xproto.h>
-#include <X11/Xatom.h>
-#include "new_string.h"
-#include "xselect.h"
-
-extern char *getSelectedText(void);
-
-static Time ownership_start = CurrentTime;
-static Time ownership_end = CurrentTime;
-Atom XA_WM_PROTOCOLS,XA_WM_DELETE_WINDOW;
-static Atom ZA_TARGETS,ZA_MULTIPLE,ZA_TIMESTAMP,ZA_ATOM_PAIR;
-
-static struct _ZAtom {
-   Atom *patom;
-   char *name;
-} ZAtom[] = {
-   {&XA_WM_PROTOCOLS,"WM_PROTOCOLS"},
-   {&XA_WM_DELETE_WINDOW,"WM_DELETE_WINDOW"},
-   {&ZA_TARGETS,"TARGETS"},
-   {&ZA_MULTIPLE,"MULTIPLE"},
-   {&ZA_TIMESTAMP,"TIMESTAMP"},
-   {&ZA_ATOM_PAIR,"ATOM_PAIR"}
-};
-#define NumZAtoms (sizeof(ZAtom)/sizeof(struct _ZAtom))
-
-/* internal static functions */
-
-static void
-xselNotify(Display *dpy,
-          XSelectionRequestEvent *selreq,
-          Atom property)
-{
-   XSelectionEvent ev;
-
-   ev.type=SelectionNotify;
-   ev.requestor=selreq->requestor;
-   ev.selection=selreq->selection;
-   ev.target=selreq->target;
-   ev.property=property;
-   ev.time=selreq->time;
-
-   XSendEvent(dpy,ev.requestor,False,0,(XEvent *) &ev);
-}
-
-/* pRequestAtoms and RequestAtoms should have the same size. */
-static Atom *pRequestAtoms[] = {
-   &ZA_TARGETS,&ZA_MULTIPLE,&ZA_TIMESTAMP,NULL
-};
-static Atom RequestAtoms[] = {
-   None,None,None,XA_STRING
-};
-#define NumRequestAtoms (sizeof(RequestAtoms)/sizeof(Atom))
-#define PROP(prop,targ) ((prop)!=None?(prop):(targ))
-#define ChangeProp(type,format,data,size) \
-  XChangeProperty(dpy,w,PROP(property,target),(type),(format), \
-                 PropModeReplace, (unsigned char *) (data),(size))
-
-static void
-xselSetProperties(Display *dpy,
-                 Window w,
-                 Atom property,
-                 Atom target,
-                 XSelectionRequestEvent *selreq)
-{
-   if (target==ZA_TARGETS) {
-
-      ChangeProp(XA_ATOM,32,RequestAtoms,NumRequestAtoms);
-      XSync(dpy,0);
-   } else if (target==ZA_MULTIPLE) {
-      Atom atype;
-      int aformat;
-      Atom *alist;
-      unsigned long alistsize,i;
-
-      XGetWindowProperty(dpy,w,property,0L,0L,False,ZA_ATOM_PAIR,&atype,
-                        &aformat,&i,&alistsize,(unsigned char **) &alist);
-
-      if (alistsize)
-       XGetWindowProperty(dpy,w,property,0L,alistsize/sizeof(Atom),False,
-                          ZA_ATOM_PAIR,&atype,&aformat,&alistsize,&i,
-                          (unsigned char **) &alist);
-
-      alistsize/=(sizeof(Atom)/4);
-      for (i=0;i<alistsize;i+=2)
-       xselSetProperties(dpy,w,alist[i+1],alist[i],selreq);
-
-      XFree((char *) alist);
-   } else if (target==ZA_TIMESTAMP) {
-      ChangeProp(XA_INTEGER,32,&ownership_start,1);
-      XSync(dpy,0);
-   } else if (target==XA_STRING) {
-      char *selected;
-
-      selected = getSelectedText();
-      if (selected) {
-        ChangeProp(XA_STRING,8,selected,string_Length(selected));
-      } else {
-        /* This should only happen if the pasting client is out of
-           spec (or if this program is buggy), but it could happen */
-#ifdef DEBUG
-        fprintf(stderr,
-                "SelectionRequest event received for unowned selection: requestor wid=0x%x", w);
-#endif
-        ChangeProp(XA_STRING,8,"",0);
-      }
-      XSync(dpy,0);
-   }
-
-   xselNotify(dpy,selreq,property);
-}
-
-/* global functions */
-
-void
-xicccmInitAtoms(Display *dpy)
-{
-   int i;
-
-   for (i=0;i<NumZAtoms;i++)
-     *(ZAtom[i].patom)=XInternAtom(dpy,ZAtom[i].name,False);
-   for (i=0;i<NumRequestAtoms;i++)
-     if (pRequestAtoms[i]) 
-       RequestAtoms[i] = *(pRequestAtoms[i]);
-}
-
-int
-xselGetOwnership(Display *dpy,
-                Window w,
-                Time time)
-{
-   int temp;
-
-   XSetSelectionOwner(dpy,XA_PRIMARY,w,time);
-   temp=(w == XGetSelectionOwner(dpy,XA_PRIMARY));
-
-   if (temp)
-     ownership_start = time;
-
-   return(temp);
-}
-
-/* Get the selection.  Return !0 if success, 0 if fail */
-int
-xselProcessSelection(Display *dpy,
-                    Window w,
-                    XEvent *event)
-{
-   XSelectionRequestEvent *selreq = &(event->xselectionrequest);
-
-#ifdef DEBUG
-   if ((selreq->owner != w) || (selreq->selection != XA_PRIMARY))
-      fprintf(stderr,"SelectionRequest event has bogus field values\n");
-#endif
-
-   if ((ownership_start == CurrentTime) ||
-       (((selreq->time != CurrentTime) &&
-        (selreq->time < ownership_start)) ||
-       ((ownership_end != CurrentTime) &&
-        (ownership_end > ownership_start) &&
-        (selreq->time > ownership_end))))
-       xselNotify(dpy,selreq,None);
-   else
-       xselSetProperties(dpy,selreq->requestor,selreq->property,selreq->target,
-                        selreq);
-
-   return(1);
-}
-
-void
-xselOwnershipLost(Time time)
-{
-   ownership_end = time;
-}
-
-/*ARGSUSED*/
-void
-xselGiveUpOwnership(Display *dpy,
-                   Window w)
-{
-   XSetSelectionOwner(dpy,XA_PRIMARY,None,ownership_start);
-
-   ownership_end=ownership_start;  /* Is this right?  what should I use? */
-}
-
-#endif /* X_DISPLAY_MISSING */
-
diff --git a/zephyr/zwgc/xselect.h b/zephyr/zwgc/xselect.h
deleted file mode 100644 (file)
index ba8874a..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: xselect.h 2133 2008-01-21 03:11:44Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef _XSELECT_H_
-#define _XSELECT_H_
-
-extern void xicccmInitAtoms(Display *);
-extern int xselGetOwnership(Display *, Window, Time);
-extern int xselProcessSelection(Display *, Window, XEvent *);
-extern void xselOwnershipLost(Time);
-extern void xselGiveUpOwnership(Display *, Window);
-
-extern Atom XA_WM_PROTOCOLS, XA_WM_DELETE_WINDOW;
-
-#endif
diff --git a/zephyr/zwgc/xshow.c b/zephyr/zwgc/xshow.c
deleted file mode 100644 (file)
index eace3f8..0000000
+++ /dev/null
@@ -1,780 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: xshow.c 2336 2009-03-22 18:59:56Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_xshow_c[] = "$Id: xshow.c 2336 2009-03-22 18:59:56Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef X_DISPLAY_MISSING
-
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/Xresource.h>
-#include <zephyr/zephyr.h>
-#include "pointer_dictionary.h"
-#include "new_memory.h"
-#include "new_string.h"
-#include "formatter.h"
-#include "variables.h"
-#include "zwgc.h"
-#include "X_driver.h"
-#include "X_fonts.h"
-#include "X_gram.h"
-#include "xmode_stack.h"
-#ifdef CMU_ZWGCPLUS
-#include <zephyr/zephyr.h>
-#include "xrevstack.h"
-#include "plus.h"
-#include "xcut.h"
-#endif
-
-#define max(a,b)   ((a)>(b)?(a):(b))
-
-XContext desc_context;
-
-extern int internal_border_width;
-extern unsigned long default_bgcolor;
-extern unsigned long default_fgcolor;
-
-void
-xshowinit(void)
-{
-    desc_context = XUniqueContext();
-}
-
-struct res_dict_type {
-    pointer_dictionary dict;
-    char *             resname_suffix;
-    char *             resclass;
-};
-
-static char *
-xres_get_resource(struct res_dict_type *restype,
-                 char *style)
-{
-   char *desc;
-   pointer_dictionary_binding *binding;
-   int exists;
-   char *value;
-
-   desc=string_Concat("style.", style);
-   desc=string_Concat2(desc, restype->resname_suffix);
-
-   if (!restype->dict)
-      restype->dict = pointer_dictionary_Create(37);
-   binding = pointer_dictionary_Define(restype->dict, desc, &exists);
-
-   if (exists) {
-      free(desc);
-      return((string) binding->value);
-   } else {
-      value=get_string_resource(desc, restype->resclass);
-      free(desc);
-      if (value==NULL)
-        pointer_dictionary_Delete(restype->dict, binding);
-      else
-        binding->value=(pointer) value;
-      return value;  /* If resource returns NULL, return NULL also */
-   }
-}
-
-static struct res_dict_type geometry_resources = {
-    NULL, ".geometry", "StyleKey.Style1.Style2.Style3.GeometryKey",
-};
-
-static struct res_dict_type bgcolor_resources = {
-    NULL, ".background", "StyleKey.Style1.Style2.Style3.BackgroundKey",
-};
-
-#define xres_get_geometry(style) xres_get_resource(&geometry_resources,style)
-#define xres_get_bgcolor(style)  xres_get_resource(&bgcolor_resources,style)
-
-static struct res_dict_type fgcolor_resources = {
-    NULL, ".foreground",
-    "StyleKey.Style1.Style2.Style3.SubstyleKey.Substyle.ForegroundKey",
-};
-
-/*ARGSUSED*/
-char *
-mode_to_colorname (Display *dpy,
-                  char *style,
-                  xmode *mode)
-{
-    char *desc, *result;
-
-    desc = string_Concat (style, ".substyle.");
-    desc = string_Concat2 (desc, mode->substyle);
-    result = xres_get_resource (&fgcolor_resources, desc);
-    free (desc);
-    return result;
-}
-
-void
-fixup_and_draw(Display *dpy,
-              char *style,
-              xauxblock *auxblocks,
-              xblock *blocks,
-              int num,
-              xlinedesc *lines,
-              int numlines,
-              int beepcount)
-{
-    int gram_xalign = 1;
-    int gram_yalign = 1;
-    int gram_xpos, gram_ypos, gram_xsize, gram_ysize;
-
-    x_gram *gram;
-    int strindex = 0;
-
-    int line, block=0;
-    int maxwidth=0, chars=0, maxascent, maxdescent;
-    int ssize,  lsize,csize, rsize, width = 0;
-    int i, ascent, descent;
-
-    int yofs = internal_border_width;
-    int lofs, cofs, rofs;
-    int ystart,yend;
-
-    char *bgstr, *geometry, xpos[10], ypos[10], xfrom, yfrom;
-
-    gram = (x_gram *)malloc(sizeof(x_gram));
-
-    /* Find total lengths of left, center, and right parts.  Also find the
-       length of the longest line and the total number of characters. */
-
-    for (line=0; line<numlines; line++) {
-       lsize = csize = rsize = 0;
-       maxascent = maxdescent = 0;
-       
-       /* add up sizes for each block, get max ascent and descent */
-       
-       for (i=0; i<lines[line].numblock; i++,block++) {
-           chars += auxblocks[block].len;
-           ssize = XTextWidth(auxblocks[block].font, auxblocks[block].str,
-                              auxblocks[block].len);
-           auxblocks[block].width = ssize;
-           ascent = auxblocks[block].font->ascent;
-           descent = auxblocks[block].font->descent;
-           if (ascent>maxascent)
-             maxascent = ascent;
-           if (descent>maxdescent)
-             maxdescent = descent;
-           switch (auxblocks[block].align) {
-             case LEFTALIGN:
-               lsize += ssize;
-               break;
-               
-             case CENTERALIGN:
-               csize += ssize;
-               break;
-               
-             case RIGHTALIGN:
-               rsize += ssize;
-               break;
-           }
-       }
-       
-       /* save what we need to do size fixups */
-       
-       if (maxascent>lines[line].ascent)
-         lines[line].ascent = maxascent;
-       if (maxdescent>lines[line].descent)
-         lines[line].descent = maxdescent;
-       lines[line].lsize = lsize;
-       lines[line].csize = csize;
-       lines[line].rsize = rsize;
-       
-       /* get width of line and see if it is bigger than the max width */
-
-       switch ((lsize?1:0)+(csize?2:0)+(rsize?4:0)) {
-#ifdef DEBUG
-         default:
-           abort();
-#endif
-           
-         case 0:
-           width = 0;
-           break;
-           
-         case 1:
-           width = lsize;
-           break;
-           
-         case 2:
-           width = csize;
-           break;
-           
-         case 3:
-           /* in all these cases, we just want to add the width of *any*
-              space, so the first font will do just fine. */
-           /* XXX implicit assumption that a line must have at least one
-              block, so that there is indeed a reasonable font in
-              auxblocks[0].font */
-           width = lsize*2+csize+XTextWidth(auxblocks[0].font," ",1);
-           break;
-           
-         case 4:
-           width = rsize;
-           break;
-           
-         case 5:
-           width = lsize+rsize+XTextWidth(auxblocks[0].font, " ", 1);
-           break;
-           
-         case 6:
-           width = csize+rsize*2+XTextWidth(auxblocks[0].font, " ", 1);
-           break;
-           
-         case 7:
-           width = max(lsize,rsize)*2+csize+
-             XTextWidth(auxblocks[0].font," ",1)*2;
-           break;
-       }
-       if (width>maxwidth)
-         maxwidth = width;
-    }
-
-    /* fixup x,y for each block, create big string and indices into it */
-    /* set x1,y1,x2,y2 of each block also. */
-
-    gram->text = (char *)malloc(chars);
-    block = 0;
-
-    for (line=0; line<numlines; line++) {
-       lofs = internal_border_width;
-       cofs = ((maxwidth-lines[line].csize)>>1) + internal_border_width;
-       rofs = maxwidth-lines[line].rsize + internal_border_width;
-       ystart = yofs;
-       yofs += lines[line].ascent;
-       yend = yofs+lines[line].descent+1;   /* +1 because lines look scrunched
-                                               without it. */
-
-       for (i=0; i<lines[line].numblock; i++,block++) {
-           blocks[block].fid = auxblocks[block].font->fid;
-           switch (auxblocks[block].align) {
-             case LEFTALIGN:
-               blocks[block].x = lofs;
-               blocks[block].x1 = lofs;
-               lofs += auxblocks[block].width;
-               blocks[block].x2 = lofs;
-               break;
-               
-             case CENTERALIGN:
-               blocks[block].x = cofs;
-               blocks[block].x1 = cofs;
-               cofs += auxblocks[block].width;
-               blocks[block].x2 = cofs;
-               break;
-
-             case RIGHTALIGN:
-               blocks[block].x = rofs;
-               blocks[block].x1 = rofs;
-               rofs += auxblocks[block].width;
-               blocks[block].x2 = rofs;
-               break;
-           }
-           blocks[block].y = yofs;
-           blocks[block].y1 = ystart;
-           blocks[block].y2 = yend;
-           blocks[block].strindex = strindex;
-           blocks[block].strlen = auxblocks[block].len;
-           strncpy(gram->text+strindex, auxblocks[block].str,
-                   auxblocks[block].len);
-           strindex += blocks[block].strlen;
-       }
-
-       yofs = yend;
-
-    }
-
-    if ((geometry = var_get_variable("X_geometry")),(geometry[0]=='\0')) 
-      if ((geometry = xres_get_geometry(style))==NULL)
-       if ((geometry = var_get_variable("default_X_geometry")),
-           (geometry[0]=='\0'))
-         geometry = "+0+0";
-    sscanf(geometry, "%c%[0123456789c]%c%[0123456789c]", &xfrom, xpos,
-          &yfrom, ypos);
-
-    if (xpos[0]=='c') {
-      gram_xalign = 0;
-      gram_xpos = 0;
-    } else
-      gram_xpos = atoi(xpos);
-    if (xfrom=='-')
-      gram_xalign *= -1;
-
-    if (ypos[0]=='c') {
-      gram_yalign = 0;
-      gram_ypos = 0;
-    } else
-      gram_ypos = atoi(ypos);
-    if (yfrom=='-')
-      gram_yalign *= -1;
-
-    if ((bgstr = var_get_variable("X_background")),(bgstr[0]=='\0'))
-      if ((bgstr = xres_get_bgcolor(style))==NULL)
-       if ((bgstr = var_get_variable("default_X_background")),
-           (bgstr[0]=='\0'))
-         gram->bgcolor = default_bgcolor;
-    if (bgstr && bgstr[0])
-      gram->bgcolor = x_string_to_color(bgstr,default_bgcolor);
-
-    
-    gram_xsize = maxwidth+(internal_border_width<<1);
-    gram_ysize = yofs+internal_border_width;
-    gram->numblocks = num;
-    gram->blocks = blocks;
-#ifdef CMU_ZWGCPLUS
-    gram->notice = get_stored_notice();
-#endif
-    
-    x_gram_create(dpy, gram, gram_xalign, gram_yalign, gram_xpos,
-                 gram_ypos, gram_xsize, gram_ysize, beepcount);
-}
-
-/* Silly almost-but-not-quite-useless helper function */
-char *
-no_dots_downcase_var(char *str)
-{
-   register char *var, *var2;
-
-   var = string_Downcase(var_get_variable(str));
-   var2 = var;
-   while (*var++)
-      if (*var == '.')
-        *var = '_';
-   return(var2);
-}
-
-#define MODE_TO_FONT(dpy,style,mode) \
-  get_font((dpy),(style),(mode)->font?(mode)->font:(mode)->substyle, \
-          (mode)->size, (mode)->bold+(mode)->italic*2)
-void
-xshow(Display *dpy,
-      desctype *desc,
-      int numstr,
-      int numnl)
-{
-    XFontStruct *font;
-    xmode_stack modes = xmode_stack_create();
-    xmode curmode;
-    xlinedesc *lines;
-    xblock *blocks;
-    xauxblock *auxblocks;
-    int nextblock=0;
-    int line=0,linestart=0;
-    char *style;
-    int free_style = 0;
-    int beepcount = 0;
-
-    lines = (xlinedesc *)malloc(sizeof(xlinedesc)*(numnl+1));
-
-    blocks = (xblock *)malloc(sizeof(xblock)*numstr);
-    auxblocks = (xauxblock *)malloc(sizeof(xauxblock)*numstr);
-
-    curmode.bold = 0;
-    curmode.italic = 0;
-    curmode.size = MEDIUM_SIZE;
-    curmode.align = LEFTALIGN;
-    curmode.expcolor = 0;
-    curmode.substyle = string_Copy("default");
-    curmode.font = NULL;
-
-    style = var_get_variable("style");
-    if (style[0] == '\0') {
-       style = string_Concat(no_dots_downcase_var("class"),".");
-       style = string_Concat2(style,no_dots_downcase_var("instance"));
-       style = string_Concat2(style,".");
-       style = string_Concat2(style,no_dots_downcase_var("sender"));
-       string_Downcase(style);
-       free_style = 1;
-    }
-
-    for (; desc->code!=DT_EOF; desc=desc->next) {
-       switch (desc->code) {
-         case DT_ENV:
-           xmode_stack_push(modes, curmode);
-           curmode.substyle = string_Copy(curmode.substyle);
-           if (curmode.font)
-             curmode.font = string_Copy(curmode.font);
-           
-#define envmatch(string,length) ((desc->len==(length)) && (strncasecmp(desc->str,(string),(length))==0))
-
-           if (envmatch("roman",5)) {
-               curmode.bold = 0;
-               curmode.italic = 0;
-           } else if (envmatch("bold",4) || envmatch("b",1))
-             curmode.bold = 1;
-           else if (envmatch("italic",6)||envmatch("i",1))
-             curmode.italic = 1;
-           else if (envmatch("large",5))
-             curmode.size = LARGE_SIZE;
-           else if (envmatch("medium",6))
-             curmode.size = MEDIUM_SIZE;
-           else if (envmatch("small",5))
-             curmode.size = SMALL_SIZE;
-           else if (envmatch("left",4)||envmatch("l",1))
-             curmode.align = LEFTALIGN;
-           else if (envmatch("center",6)||envmatch("c",1))
-             curmode.align = CENTERALIGN;
-           else if (envmatch("right",5)||envmatch("r",1))
-             curmode.align = RIGHTALIGN;
-           else if (envmatch("beep",4))
-             beepcount++;
-           else if (envmatch("font",4)) {
-              /* lookahead needed.  desc->next->str should be the
-                 font name, and desc->next->next->code should be
-                 a DT_END*/
-              if ((desc->next) &&
-                  (desc->next->next) &&
-                  (desc->next->code == DT_STR) &&
-                  (desc->next->next->code==DT_END)) {
-
-                 /* Since @font mutates the current environment, we have
-                    to pop the environment that this case usually pushes */
-                 free(curmode.substyle);
-                 curmode = xmode_stack_top(modes);
-                 xmode_stack_pop(modes);
-
-                 /* mutating... */
-                 curmode.size=SPECIAL_SIZE; /* This is an @font() */
-                 curmode.font=string_CreateFromData(desc->next->str,
-                                                    desc->next->len);
-                 /* skip over the rest of the @font */
-                 desc=desc->next->next;
-              }
-           } else if (envmatch("color",5)) {
-              /* lookahead needed.  desc->next->str should be the
-                 font name, and desc->next->next->code should be
-                 a DT_END*/
-              if ((desc->next) &&
-                  (desc->next->next) &&
-                  (desc->next->code == DT_STR) &&
-                  (desc->next->next->code==DT_END)) {
-                 char *colorname;
-
-                 /* Since @font mutates the current environment, we have
-                    to pop the environment that this case usually pushes */
-                 free(curmode.substyle);
-                 curmode = xmode_stack_top(modes);
-                 xmode_stack_pop(modes);
-
-                 /* mutating... */
-                 colorname=string_CreateFromData(desc->next->str,
-                                                 desc->next->len);
-                 curmode.color = x_string_to_color(colorname,default_fgcolor);
-                 free(colorname);
-                 curmode.expcolor = 1;
-                 /* skip over the rest of the @font */
-                 desc=desc->next->next;
-              }
-           } else if (desc->len > 0) { /* avoid @{...} */
-              free(curmode.substyle);
-              if (curmode.font) {
-                 free(curmode.font);
-                 curmode.font = NULL;
-              }
-              curmode.substyle = string_CreateFromData(desc->str, desc->len);
-           }
-           break;
-
-         case DT_STR:
-           auxblocks[nextblock].align = curmode.align;
-           auxblocks[nextblock].font = MODE_TO_FONT(dpy,style,&curmode);
-           auxblocks[nextblock].str = desc->str;
-           auxblocks[nextblock].len = desc->len;
-           if (curmode.expcolor)
-              blocks[nextblock].fgcolor = curmode.color;
-           else
-              blocks[nextblock].fgcolor =
-                x_string_to_color(mode_to_colorname(dpy,style,&curmode),
-                                  default_fgcolor);
-           nextblock++;
-           break;
-
-         case DT_END:
-           free(curmode.substyle);
-           curmode = xmode_stack_top(modes);
-           xmode_stack_pop(modes);
-           break;
-
-         case DT_NL:
-           lines[line].startblock = linestart;
-           lines[line].numblock = nextblock-linestart;
-           font = MODE_TO_FONT(dpy,style,&curmode);
-           lines[line].ascent = font->ascent;
-           lines[line].descent = font->descent;
-           line++;
-           linestart = nextblock;
-           break;
-       }
-    }
-
-    /* case DT_EOF:    will drop through to here. */
-
-    if (linestart != nextblock) {
-       lines[line].startblock = linestart;
-       lines[line].numblock = nextblock-linestart;
-       font = MODE_TO_FONT(dpy,style,&curmode);
-       lines[line].ascent = 0;
-       lines[line].descent = 0;
-       line++;
-    }
-    
-    free(curmode.substyle);
-    fixup_and_draw(dpy, style, auxblocks, blocks, nextblock, lines, line,
-                  beepcount);
-    free(lines);
-    free(auxblocks);
-    if (free_style)
-      free(style);
-}
-
-static void
-xhandleevent(Display *dpy,
-            Window w,
-            XEvent *event)
-{
-    x_gram *gram;
-    
-    if (XFindContext(dpy, w, desc_context, (caddr_t *)&gram))
-      return;
-
-    if (event->type == Expose)
-      x_gram_expose(dpy, w, gram,&(event->xexpose));
-    else
-      xcut(dpy, event, desc_context);
-
-    XFlush(dpy);
-}
-
-void
-x_get_input(Display *dpy)
-{
-    XEvent event;
-    
-    dprintf1("Entering x_get_input(%x).\n",dpy);
-
-    /*
-     * Kludge to get around lossage in XPending:
-     *
-     * (the problem: XPending on a partial packet returns 0 without
-     *  reading in the packet.  This causes a problem when the X server
-     *  dies in the middle of sending a packet.)
-     */
-    if (XPending(dpy)==0)
-      XNoOp(dpy);  /* Ensure server is still with us... */
-    
-    while (XPending(dpy)) {
-       XNextEvent(dpy,&event);
-       xhandleevent(dpy, event.xany.window, &event);
-    }
-}
-
-#ifdef CMU_ZWGCPLUS
-void 
-plus_window_deletions(ZNotice_t *notice)
-{
-  x_gram *tmp, *fry;
-  char *val;
-  int done;
-  static char class_nm[NAMESIZE], instance_nm[NAMESIZE], recip_nm[NAMESIZE];
-  
-  if (!dpy)
-    return;
-
-  val = var_get_variable("delete_window");
-  
-#ifdef DEBUG_DELETION
-  fprintf(stderr, "delete_window(%s)\n", val);
-#endif
-  if (val) {
-    if (!strcmp(val, "this")) {
-      do {
-       done = 1;
-       tmp = bottom_gram;
-       while (tmp) {
-         if (tmp->notice == notice) {
-           fry = tmp;
-           tmp = tmp->above;
-           xdestroygram(dpy, fry->w, desc_context, fry);
-           done = 0;
-         } else {
-           tmp = tmp->above;
-         }
-       }
-      } while (!done);
-    }
-    else if (!strcmp(val, "s")) {
-      /* I cheated. This is really sender, not class */
-      strcpy(class_nm, notice->z_sender);
-      do {
-       done = 1;
-       tmp = bottom_gram;
-       while (tmp) {
-         if (!strcasecmp(((ZNotice_t *)(tmp->notice))->z_sender, class_nm)) {
-           fry = tmp;
-           tmp = tmp->above;
-           xdestroygram(dpy, fry->w, desc_context, fry);
-           done = 0;
-         } else {
-           tmp = tmp->above;
-         }
-       }
-      } while (!done);
-    }
-    else if (!strcmp(val, "ns")) {
-      /* I cheated. This is really sender, not class */
-      strcpy(class_nm, notice->z_sender);
-      do {
-       done = 1;
-       tmp = bottom_gram;
-       while (tmp) {
-         if (!!strcasecmp(((ZNotice_t *)(tmp->notice))->z_sender, class_nm)) {
-           fry = tmp;
-           tmp = tmp->above;
-           xdestroygram(dpy, fry->w, desc_context, fry);
-           done = 0;
-         } else {
-           tmp = tmp->above;
-         }
-       }
-      } while (!done);
-    }
-    else if (!strcmp(val, "r")) {
-      strcpy(recip_nm, notice->z_recipient);
-      do {
-       done = 1;
-       tmp = bottom_gram;
-       while (tmp) {
-         if (!strcasecmp(((ZNotice_t *)(tmp->notice))->z_recipient, recip_nm)) {
-           fry = tmp;
-           tmp = tmp->above;
-           xdestroygram(dpy, fry->w, desc_context, fry);
-           done = 0;
-         } else {
-           tmp = tmp->above;
-         }
-       }
-      } while (!done);
-    }
-    else if (!strcmp(val, "nr")) {
-      strcpy(recip_nm, notice->z_recipient);
-      do {
-       done = 1;
-       tmp = bottom_gram;
-       while (tmp) {
-         if (!!strcasecmp(((ZNotice_t *)(tmp->notice))->z_recipient, recip_nm)) {
-           fry = tmp;
-           tmp = tmp->above;
-           xdestroygram(dpy, fry->w, desc_context, fry);
-           done = 0;
-         } else {
-           tmp = tmp->above;
-         }
-       }
-      } while (!done);
-    }
-    else if (!strcmp(val, "cir")) {
-      strcpy(class_nm, notice->z_class);
-      strcpy(instance_nm, notice->z_class_inst);
-      strcpy(recip_nm, notice->z_recipient);
-      do {
-       done = 1;
-       tmp = bottom_gram;
-       while (tmp) {
-         if (!strcasecmp(((ZNotice_t *)(tmp->notice))->z_class_inst, instance_nm)
-             && !strcasecmp(((ZNotice_t *)(tmp->notice))->z_class, class_nm)
-             && !strcasecmp(((ZNotice_t *)(tmp->notice))->z_recipient, recip_nm))
-           {
-             fry = tmp;
-             tmp = tmp->above;
-             xdestroygram(dpy, fry->w, desc_context, fry);
-             done = 0;
-           } else {
-             tmp = tmp->above;
-           }
-       }
-      } while (!done);
-    }
-    else if (!strcmp(val, "ci")) {
-      strcpy(class_nm, notice->z_class);
-      strcpy(instance_nm, notice->z_class_inst);
-      do {
-       done = 1;
-       tmp = bottom_gram;
-       while (tmp) {
-         if (!strcasecmp(((ZNotice_t *)(tmp->notice))->z_class_inst, instance_nm)
-             && !strcasecmp(((ZNotice_t *)(tmp->notice))->z_class, class_nm)) 
-           {
-             fry = tmp;
-             tmp = tmp->above;
-             xdestroygram(dpy, fry->w, desc_context, fry);
-             done = 0;
-           } else {
-             tmp = tmp->above;
-           }
-       }
-      } while (!done);
-    }
-    else if (!strcmp(val, "cr")) {
-      strcpy(class_nm, notice->z_class);
-      strcpy(recip_nm, notice->z_recipient);
-      do {
-       done = 1;
-       tmp = bottom_gram;
-       while (tmp) {
-         if (!strcasecmp(((ZNotice_t *)(tmp->notice))->z_class, class_nm) &&
-             !strcasecmp(((ZNotice_t *)(tmp->notice))->z_recipient, recip_nm)) 
-           {
-             fry = tmp;
-             tmp = tmp->above;
-             xdestroygram(dpy, fry->w, desc_context, fry);
-             done = 0;
-           } else {
-             tmp = tmp->above;
-           }
-       }
-      } while (!done);
-    }
-    else if (!strcmp(val, "c")) {
-      strcpy(class_nm, notice->z_class);
-      do {
-       done = 1;
-       tmp = bottom_gram;
-       while (tmp) {
-         if (!strcasecmp(((ZNotice_t *)(tmp->notice))->z_class, class_nm)) {
-           fry = tmp;
-           tmp = tmp->above;
-           xdestroygram(dpy, fry->w, desc_context, fry);
-           done = 0;
-         } else {
-           tmp = tmp->above;
-         }
-       }
-      } while (!done);
-    }
-    else if (!strcmp(val, "all")) {
-      while (bottom_gram) {
-       xdestroygram(dpy, bottom_gram->w, desc_context, bottom_gram);
-      }
-    }
-  }
-}
-#endif
-#endif /* X_DISPLAY_MISSING */
-
diff --git a/zephyr/zwgc/xshow.h b/zephyr/zwgc/xshow.h
deleted file mode 100644 (file)
index cd4d34a..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: xshow.h 2091 2007-12-20 01:17:23Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef _ZWGC_XSHOW_H_
-#define _ZWGC_XSHOW_H_
-
-#include <X11/Xlib.h>
-
-typedef struct _xblock {
-   unsigned long fgcolor;
-   Font fid;
-   int x,y;
-   int x1,y1,x2,y2; /* bounds of block.  used for cut and paste. */
-   int strindex;
-   int strlen;
-} xblock;
-
-typedef struct _xwin {
-   unsigned long bgcolor;
-   int xpos,ypos,xsize,ysize;
-   int numblocks;
-   xblock *blocks;
-   char *text;
-} xwin;
-
-typedef struct _xauxblock {
-   int align;
-   XFontStruct *font;
-   char *str;
-   int len;
-   int width;
-} xauxblock;
-
-typedef struct _xmode {
-   int bold;
-   int italic;
-   int size;
-   int align;
-   char *substyle;
-} xmode;
-
-typedef struct _xlinedesc {
-   int startblock;
-   int numblock;
-   int lsize;
-   int csize;
-   int rsize;
-   int ascent;
-   int descent;
-} xlinedesc;
-
-/* alignment values: */
-#define LEFTALIGN   0
-#define CENTERALIGN 1
-#define RIGHTALIGN  2
-
-#endif /* _ZWGC_XSHOW_H_ */
diff --git a/zephyr/zwgc/zephyr.c b/zephyr/zwgc/zephyr.c
deleted file mode 100644 (file)
index df00d00..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: zephyr.c 2295 2009-03-15 22:13:16Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-#include <sysdep.h>
-
-#if (!defined(lint) && !defined(SABER))
-static const char rcsid_zephyr_c[] = "$Id: zephyr.c 2295 2009-03-15 22:13:16Z kcr $";
-#endif
-
-#include <zephyr/mit-copyright.h>
-
-/****************************************************************************/
-/*                                                                          */
-/*               Module containing code dealing with zephyr:                */
-/*                                                                          */
-/****************************************************************************/
-
-#include <zephyr/zephyr.h>
-#include <sys/socket.h>
-#include "new_string.h"
-#include "zephyr.h"
-#include "error.h"
-#include "mux.h"
-#include "subscriptions.h"
-#include "variables.h"
-#include "pointer.h"
-#include "main.h"
-#ifndef X_DISPLAY_MISSING
-#include "X_driver.h"
-#endif
-#ifdef CMU_ZWGCPLUS
-#include "plus.h"
-#endif
-
-#ifdef DEBUG
-extern int zwgc_debug;
-#endif /* DEBUG */
-
-static int zephyr_inited = 0;
-static unsigned short zephyr_port = 0;
-    
-/*
- *  Internal Routine:
- *
- *    string get_zwgc_port_number_filename()
- *        Effects: Returns the filename that the zwgc port # is/should be
- *                 stored in, based on the user's uid & the environment
- *                 variable WGFILE.  The returned string points into a
- *                 static buffer that may change on further calls to this
- *                 routine or getenv.  The returned string should not be
- *                 modified in any way.
- */
-
-static string
-get_zwgc_port_number_filename(void)
-{
-    static char buffer[40];
-    char *temp;
-
-    temp = getenv("WGFILE");
-    if (temp)
-      return(temp);
-    else {
-       sprintf(buffer, "/tmp/wg.%d", getuid());
-       return(buffer);
-    }
-}
-
-/*
- *  Write out the port number to the wg file.
- */
-
-void
-write_wgfile(void)
-{
-    char *name = get_zwgc_port_number_filename();
-    FILE *port_file;
-
-    port_file = fopen(name, "w");
-    if (port_file) {
-       fprintf(port_file, "%d\n", zephyr_port);
-       fclose(port_file);
-    } else {
-       fprintf(stderr, "zwgc: error while opening %s for writing: ", name);
-       perror("");
-    }
-}
-
-/*
- *
- */
-
-static void
-handle_zephyr_input(void (*notice_handler)(ZNotice_t *))
-{
-    ZNotice_t *notice;
-    struct sockaddr_in from;
-    int complete_packets_ready;
-
-    for (;;) {
-       errno = 0;
-       if ( (complete_packets_ready=ZPending()) < 0 )
-         FATAL_TRAP( errno, "while calling ZPending()" );
-    
-       if (complete_packets_ready==0)
-         return;
-
-       notice = malloc(sizeof(ZNotice_t));
-
-       TRAP( ZReceiveNotice(notice, &from), "while getting zephyr notice" );
-       if (!error_code) {
-           notice->z_auth = ZCheckAuthentication(notice, &from);
-           notice_handler(notice);
-       }
-#ifdef CMU_ZWGCPLUS
-       if (get_list_refcount(notice) <= 0) {
-           /* no windows created */
-           if (!get_notice_fake(notice))
-               list_del_notice(notice);
-       }
-#endif
-    }
-}
-
-/*
- *
- */
-
-void zephyr_init(void (*notice_handler)(ZNotice_t *))
-{
-    char *temp;
-    char *exposure;
-    char *tty = NULL;
-    FILE *port_file;
-
-    /*
-     * Initialize zephyr.  If error, print error message & exit.
-     */
-    FATAL_TRAP( ZInitialize(), "while initializing Zephyr" );
-    FATAL_TRAP( ZOpenPort(&zephyr_port), "while opening Zephyr port" );
-
-    /*
-     * Save away our port number in a special place so that zctl and
-     * other clients can send us control messages: <<<>>>
-     */
-    temp = get_zwgc_port_number_filename();
-    port_file = fopen(temp, "r");
-    if (port_file) {
-       fprintf(stderr, "zwgc: windowgram file already exists.  If you are\n");
-       fprintf(stderr, "zwgc: not already running zwgc, delete %s\n", temp);
-       fprintf(stderr, "zwgc: and try again.\n");
-       exit(1);
-    }
-    write_wgfile();
-
-    /* Set hostname and tty for locations.  If we support X, use the
-     * display string for the default tty name. */
-    if (location_override)
-       tty = location_override;
-#ifndef X_DISPLAY_MISSING
-    else if (dpy)
-       tty = DisplayString(dpy);
-#endif
-    error_code = ZInitLocationInfo(NULL, tty);
-    TRAP( error_code, "while initializing location information" );
-
-    /*
-     * Retrieve the user's desired exposure level (from the zephyr variable
-     * "exposure"), convert it to the proper internal form then 
-     * set the user's location using it.  If the exposure level is
-     * not one of the allowed ones, print an error and treat it as
-     * EXPOSE_NONE.
-     */
-    temp = ZGetVariable("exposure");
-    if (temp) {
-       if (!(exposure = ZParseExposureLevel(temp))) {
-           ERROR2("invalid exposure level %s, using exposure level none instead.\n", temp);
-           exposure = EXPOSE_NONE;
-       }
-    } else
-      exposure = EXPOSE_OPSTAFF;
-    error_code = ZSetLocation(exposure); /* <<<>>> */
-    if (error_code != ZERR_LOGINFAIL)
-      TRAP( error_code, "while setting location" );
-
-    /*
-     * If the exposure level isn't EXPOSE_NONE, turn on recieving notices.
-     * (this involves reading in the subscription file, etc.)
-     */
-    if (string_Neq(exposure, EXPOSE_NONE))
-      zwgc_startup();
-
-    /*
-     * Set $realm to our realm and $user to our zephyr username:
-     */
-    var_set_variable("realm", (char *)ZGetRealm()); /* XXX should propagate the
-                                                    * const */
-    var_set_variable("user", ZGetSender());
-
-    /*
-     * <<<>>>
-     */
-    mux_add_input_source(ZGetFD(), (void (*)(void *))handle_zephyr_input,
-                        notice_handler);
-    zephyr_inited = 1;
-    return;
-}
-
-/*
- *
- */
-
-void finalize_zephyr(void) /* <<<>>> */
-{
-    string temp;
-
-    if (zephyr_inited) {
-       /*
-        * Remove the file containing our port # since it is no longer needed:
-        */
-       errno = 0;
-       temp = get_zwgc_port_number_filename();
-       unlink(temp);
-       if (errno) {
-           fprintf(stderr, "zwgc: error while trying to delete %s: ", temp);
-           perror("");
-       }
-
-       /*
-        * Cancel our subscriptions, unset our location, and close our zephyr
-        * connection:
-        */
-#ifdef DEBUG
-       if (zwgc_debug) {
-           TRAP( ZUnsetLocation(), "while unsetting location" );
-           TRAP( ZCancelSubscriptions(0), "while canceling subscriptions" );
-       } else {
-#endif /* DEBUG */
-           (void) ZUnsetLocation();
-           (void) ZCancelSubscriptions(0);
-#ifdef DEBUG
-       }
-#endif /* DEBUG */
-       ZClosePort();
-    }
-    return;
-}
diff --git a/zephyr/zwgc/zephyr.h b/zephyr/zwgc/zephyr.h
deleted file mode 100644 (file)
index 0871035..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: zephyr.h 2144 2008-01-21 07:57:32Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifndef zephyr_MODULE
-#define zephyr_MODULE
-
-#include <zephyr/zephyr.h>
-
-extern void zephyr_init(void(*)(ZNotice_t *));
-extern void finalize_zephyr(void);
-extern void write_wgfile(void);
-
-#endif
diff --git a/zephyr/zwgc/zwgc.1 b/zephyr/zwgc/zwgc.1
deleted file mode 100644 (file)
index 13ca4cc..0000000
+++ /dev/null
@@ -1,1070 +0,0 @@
-.\"    $Id: zwgc.1 2304 2009-03-17 13:22:22Z kcr $
-.\"    # end of TP (cf }N below)
-.\"    # copied here, since we use @ in some of our tags, and that
-.\"    # messes up \w and \h
-.de }1
-.ds ]X \&\\*(]B\\
-.nr )E 0
-.if !"\\$1"" .nr )I \\$1n
-.}f
-.ll \\n(LLu
-.in \\n()Ru+\\n(INu+\\n()Iu
-.ti \\n(INu
-.ie !\\n()Iu+\\n()Ru-\w'\\*(]X'u-3p \{\\*(]X
-.br\}
-.el \\*(]X\h@|\\n()Iu+\\n()Ru@\c
-.}f
-..
-.de }N
-.if \\n()E .br
-.di
-.if "\\n()E"0" .}f
-.if "\\n()E"1" .}1
-.if "\\n()E"2" .}2
-.nr )E 0
-..
-.\"    # tagged paragraph (paragraph with hanging label, but no para spacing)
-.de TQ
-.if !"\\$1"" .nr )I \\$1n
-.ne 1.1v
-.in \\n()Ru
-.nr )E 1
-.ns
-.it 1 }N
-.di ]B
-..
-.TH ZWGC 1 "November 30, 1989" "MIT Project Athena"
-.SH NAME
-zwgc \- Zephyr Windowgram Client program
-.SH SYNOPSIS
-.B zwgc
-[ \-reenter ] [ \-nofork ] [ \-ttymode ] [ \-f
-.I filename
-] [ \-subfile
-.I filename
-] [ \-loc
-.I text
-] [ \-default
-.I portname
-] [ \-disable 
-.I portname
-] ... [ output driver options ]
-[ X Toolkit options... ]
-.SH DESCRIPTION
-.I Zwgc
-is the main
-.I zephyr(1)
-client.  It is responsible for receiving selected zephyr notices on
-behalf of the user, formatting them, and displaying them using
-one or more of the output devices.
-
-.SS "Selection of Zephyr Notices"
-.PP 
-.I Zwgc
-subscribes to various notice classes and instances on behalf of the
-user.  Only notices in the subscription list will be received.  The
-subscription list is composed of the default subscriptions (stored on
-the server), the user's subscriptions file, and any subscriptions made
-using
-.IR zctl (1).
-The user's subscription file defaults to
-.IR $HOME/.zephyr.subs ,
-or it can be specified with the \-subfile
-option.  If "\-" is specified as the subscription filename, the
-subscriptions will be read from standard input.
-
-.PP
-The
-.I zctl
-command is used to manipulate and change subscriptions.  See the
-.IR zctl (1)
-man page for details.
-
-.SS "Zephyr Description Files"
-.PP
-.I Zwgc
-formats its output messages according to the commands in its
-description file.  The user's description file 
-.RI ( $HOME/.zwgc.desc
-by default, or whatever is specified by -f) is read, or the system file
-is read if the user's does not exist.
-.PP
-Every time a notice is received, 
-.I zwgc
-runs through the description file, and executes the appropriate commands.
-
-.SS "Zephyr Description File Syntax"
-.PP
-A description file is simply a list of commands.  Whitespace (spaces,
-tabs, and line breaks) is used
-to separate tokens.  The type and amount of whitespace separating tokens
-is irrelevant.
-Comments can be delimited by # and newline (for line-oriented comments,
-e.g. "# this is a comment" on a line by itself) or by /* and */ (e.g. "/*
-this is a comment */").
-
-.SH "DESCRIPTION LANGUAGE"
-.SS Expressions
-Expressions are used by certain commands.
-They are composed from string literals, variable references,
-function calls, and operators.  Parentheses can be used anywhere in an
-expression to group expressions or increase readability.
-.PP
-String literals are specified by putting the contents in "double quotes".
-.PP
-Variables are set using the
-.B set
-command (see "COMMANDS", below).  They are
-referenced in an expression by using the form
-.IR $varname .
-Some variables are set by default for each notice.
-All other variables retain their values between notice interpretations,
-so that if you set a variable, it retains that value until later
-modified.
-.PP
-Functions are called using a C-like syntax,
-\fBfname\fR(\fIexpr1\fR,\fIexpr2\fR), where
-.B fname
-is the
-function name and
-.IB expr n
-are the arguments.
-.PP
-Binary operators use infix notation, such as "a == b".
-.PP
-Some commands use an expression list (exprlist), which is simply a set
-of expressions separated by whitespace (e.g. $var1 "lit1" $var2).
-
-.SS "Default variables"
-.PP
-The following variables are always available:
-.TP 5
-.B 1, ...
-Numeric variables are assigned values corresponding to that field in the
-notice (the body of each notice is conceptually an array of fields, each
-terminated with a null character).  If the number is greater than the
-number of fields actually in the notice, the value is "".  For example,
-the standard zwrite messages have two fields: $1 is the signature, and
-$2 is the text of the message.
-.TP 5
-.B auth
-An indication of the authenticity of the notice.  ``yes'' means the
-notice is authentic, ``no'' means it is not, and ``forged'' means that
-the message claimed to be authentic but the verification of the claim
-failed.  The ``forged'' indication usually appears when a user has
-changed his Kerberos tickets with
-.IR kinit (1)
-but has not run ``zctl sub'' to
-register this change with the Zephyr servers.
-.TP
-.B class
-The class of the current notice.
-.TP
-.B date
-The date on which the notice was sent.
-.TP
-.B default
-The default output format for the current notice
-.TP
-.B error
-An error message from the port read/write commands.
-.TP
-.B fromhost
-The full name of the host from which the notice appears to have been
-sent.  
-.I This is not fully reliable,
-as the information used to determine this hostname is not guaranteed to
-be correct (even for authentic messages).
-.TP
-.B fullsender
-The notice sender's name, including the zephyr realm name.
-.TP
-.B instance
-The instance of the current notice.
-.TP
-.B kind
-The kind of notice.
-.TP
-.B message
-The full text of the message, with nulls converted to newlines.
-.TP
-.B number_of_fields
-The number of fields in the message (a string representation of a
-decimal number).
-.TP
-.B opcode
-The opcode of the current notice.
-.TP
-.B output_driver
-The name of the output driver in use.
-.TP
-.B port
-The port from which the notice was sent.
-.TP
-.B realm
-The local zephyr realm.
-.TP
-.B recipient
-The recipient for the current notice.  If the notice is a multicast
-(sent to several people), the recipient is set to ``*''.
-.TP
-.B sender
-Usually a shortened version of fullsender.  If the realm of the sender
-is equal to the realm of the recipient,
-.I sender
-omits the realm name.
-.TP
-.B time
-The time of day at which the notice was sent.
-.TP
-.B user
-The full zephyr name of the user (e.g. marc@ATHENA.MIT.EDU).
-.TP
-.B version
-The current version of 
-.IR zwgc .
-.TP
-.B zephyr_version
-The protocol version of the notice.
-.PP
-All of these variables (except for error, output_driver, and version)
-are re-set before each notice is processed.
-
-.SS Functions
-.PP
-Following is a list of functions available for use in the description
-file.
-.TP 5
-.BI buffer ()
-The contents of the current output buffer.
-.TP
-.BI downcase (expr)
-Returns the value of \fIexpr\fR, converted to lower case.
-.TP
-.BI get (expr)
-Returns a line from the port named \fIexpr\fR.  If there is no text
-waiting on the port (e.g. the program connected to the port has not
-printed any output), this function will wait until it can read a line of
-text from the port.
-.TP
-.BI getenv (expr)
-Returns the value of the environment variable \fIexpr\fR, or the empty
-string if it does not exist.
-
-.TP
-.BI lany "(expr1, expr2), " rany "(expr1, expr2)"
-Return a number of characters equal to the length of
-.I expr2
-from the beginning
-.RB ( lany )
-or end 
-.RB ( rany )
-of
-.I expr1
-(e.g. lany("1234567890","foo") would return "123").
-If
-.I expr1
-is a variable reference, the variable
-is modified to remove the characters returned.
-If
-.I expr2
-is longer than
-.IR expr1 ,
-the value of
-.I expr1
-is returned (and 
-.I expr1
-is set to "", if a variable).
-.TP
-.BI lbreak "(expr1, expr2), " rbreak "(expr1, expr2)"
-.I Expr2
-defines a set of characters.  The function returns the longest
-initial
-.RB ( lbreak )
-or final 
-.RB ( rbreak )
-string from
-.I expr1
-composed of characters
-.I not
-in this set (e.g. lbreak("characters", "tuv") would return "charac").  If
-.I expr1
-is a variable reference, the variable
-is modified to remove the characters returned.  If no characters
-in
-.IR expr2 " are in " "expr1, " then " expr1 "
-is returned (and 
-.I expr1
-is set to "", if a variable).
-.TP
-.BI lspan "(expr1, expr2), " rspan "(expr1, expr2)"
-These functions are the negation of the 
-.B break
-functions; the returned string consists of characters 
-.I in 
-the set defined by
-.I expr2
-.TP
-.BI protect (expr)
-Returns a string which will be evaluated identically to \fIexpr\fR,
-but will not affect any surrounding environments.  That is, any
-characters which could close outside environments are quoted, and any
-environments in \fIexpr\fR which are not closed at the end are closed.
-.TP
-.BI substitute (expr)
-Evaluates variable references of the form \fI$variable\fR in expr and
-converts $$ to $.
-.TP
-.BI upcase (expr)
-Returns the value of \fIexpr\fR, converted to upper case.
-.TP
-.BI verbatim (expr)
-Returns a string that will be displayed exactly as \fIexpr\fR looks.
-Anything which could be mistaken for an environment is quoted.
-.TP
-.BI stylestrip (expr)
-Returns \fIexpr\fR with all environments stripped out.
-.TP
-.BI zvar (expr)
-Returns the value of the zephyr variable \fIexpr\fR,
-or the empty
-string if it does not exist.  [Zephyr variables
-can be set and examined with 
-.IR zctl (1).]
-
-.SS Operators
-.PP
-Following is a list of operators which can be used in the description
-file to compose expressions:
-.TP
-.IB expr1 " + " expr2
-String concatenation of
-.IR expr1 " and " expr2
-.TP
-.IB expr1 " == " expr2
-True if the two expressions are equal, false otherwise.
-.TP
-.IB expr1 " =~ " expr2
-True if the regular expression pattern
-.IR expr2 " matches " expr1.
-.TP
-.IB expr1 " !~ " expr2
-Negation of "=~".
-.TP
-.IB expr1 " != " expr2
-Negation of "=="
-.TP
-\fIexpr1\fB and \fIexpr2\fR, \fIexpr1\fB & \fIexpr2\fR
-True if
-.IR expr1 " and " expr2
-are both true.
-.TP
-\fIexpr1\fB or \fIexpr2\fR, \fIexpr1\fB | \fIexpr2\fR
-True if either of
-.IR expr1 " or " expr2
-are true.
-.TP
-\fB! \fIexpr1\fR, \fBnot \fIexpr1\fR
-The logical negation of
-.I expr1.
-
-.SS Commands
-.PP
-Following is a list of the commands usable in the description
-language:
-.TP 5
-.BI appendport " expr1 expr2"
-Creates a port called \fIexpr1\fR.  All output to the port will be
-appended to the file \fIexpr2\fR.  There is no input.  If the file is
-created, its mode is set to read-write, owner only (no access for others).
-.TP
-.B break
-Exits the innermost if, case, or while block.
-.TP
-\fBcase \fIexpr1\fR [ ((\fBmatch \fIexpr\fR [,\fIexpr ...\fR]) | \fBdefault\fR)\fI commands \fR] ... \fBendcase\fR
-Evaluates \fIexpr1\fR.  Then, each of the match expressions is
-evaluated in order.  The first time an expression matches \fIexpr1\fR,
-then the body of commands under it is executed, and the rest of the case
-statement is skipped.  This compare is case-insensitive.  default always
-matches, so it should always appear as the last set of commands.  See
-the default description file for an example of use.
-.TP
-.B clearbuf
-Clears the output buffer (see below for details on buffering).
-.TP
-.BI closeinput " expr"
-Closes the file associated with \fIexpr\fR.
-.TP
-.BI closeoutput " expr"
-Sends an EOF (end-of-file) to the process if \fIexpr\fR was a port created by
-execport, or closes the file if it was created by outputport or
-appendport.
-.TP
-.BI closeport " expr"
-Closes both input and output of \fIexpr\fR as defined above.
-.TP
-.BI fields " variable1 ..."
-sets the list of variables to be equal to the fields in the
-notice.  If there are more variables than fields, the extra
-variables are left empty.
-.TP
-.BI exec " exprlist"
-Executes a program without any input or output.  A command named by
-\fIexprlist\fR is executed.  Each expression is used as an argument to
-the program; the first expression names the program (it may be either an
-absolute pathname, or a program name; the user's PATH is searched to
-find simple program names).
-.TP
-.BI execport " expr1 exprlist"
-Creates a port called \fIexpr1\fR.  A command named by \fIexprlist\fR
-is executed, as described above for \fBexec\fR.
-All output to the port is sent to the standard input
-of the process.  Reading from the port will return the standard output
-of the process.
-.TP
-.B exit
-Completes processing of the current notice.  The remainder of the
-description file is ignored after execution of this command.
-.\" hack because the following line otherwise breaks because it is too long.
-.TP
-\fBif \fIexpr1 \fBthen \fIcommands1\fR [\fBelseif \fIexpr2 \fBthen \fIcommands2\fR] ... [\fBelse \fIcommandsn\fR] \fBendif\fR
-If \fIexpr1\fR evaluates to true, execute \fIcommands1\fI, etc. [A conditional
-construct, similar to the constructs in the C shell (csh).]
-.TP
-.BI inputport " expr1 expr2"
-Creates a port called \fIexpr1\fR.  All input from the port comes from
-the file \fIexpr2\fR.  There is no output.
-.TP
-.B noop
-does nothing
-.TP
-.BI outputport " expr1 expr2"
-Creates a port called \fIexpr1\fR.  The file \fIexpr2\fR will be
-truncated, or created if it does not exist.  All output to the port
-will be appended to the file \fIexpr2\fR.  There is no input.  If the file is
-created, its mode is set to read-write, owner only (no access for others).
-.TP
-.BI print " expr1 ..."
-adds the values of the expressions to the current output buffer.  The
-values of the expressions are separated by spaces in the output.
-.TP
-.B put \fR[\fIexpr \fR[\fIexprlist\fR]]
-Sends data to a port.  If \fIexpr\fR is provided, then it is used as the
-port, otherwise the port used is the
-port corresponding to the default output device.
-If \fIexprlist\fR is provided, the expressions in the list are sent to
-the port, separated by spaces.  If it is omitted, then the contents
-of the output buffer are sent as the data.
-.TP
-.BI set " variable " = " expr"
-sets
-.I variable
-equal to
-.IR expr .
-Variable can later be
-referenced by 
-.IR $variable .
-.TP
-.BI show " text " endshow
-Appends text to the output buffer.  This command is special, because
-the string does not need to be quoted.  Whitespace at the beginning or
-end of the lines of text is ignored.  The \fIendshow\fR must appear as
-the first token on a line (it may only be preceded on that line by whitespace).
-Variable substitutions and formatting commands
-(but not expressions or functions) are processed in the text.  Example:
-.nf
-show
-   this is some text
-   from: $sender
-endshow
-.fi
-.TP
-.BI while " expr " do " statements " endwhile
-Executes \fIstatements\fR until \fIexpr\fR is false.
-
-.SH PORTS
-.PP
-Ports are an abstraction encompassing all I/O forms of which
-zwgc is capable.  There are pre-existing output ports corresponding to each
-of the output devices, and more ports can be created with the
-port commands described above.
-
-.SH OUTPUT
-The output is usually collected in the
-.I "output buffer"
-and saved until a
-.I put
-command sends the output to an output device (such as an X display or a
-terminal).  The output buffer is implicitly cleared after each notice is
-completely processed.
-
-.PP
-Output devices are implemented as output ports.  A message is
-displayed in a device-dependent manner when a string is output to the
-port corresponding to the output device.  Formatting commands are
-embedded in the text as @ commands of the form @command(text).
-Command names are case-insensitive and consist of alphanumeric
-characters and underscores.  Valid brackets are () [] {} and <>.
-If the command name is empty (such as in
-.RB `` @(foo) ''),
-then a new
-environment with no changes is created (This is useful to temporarily
-change some parameter of the output, such as the font).
-.PP
-The following output devices are supported:
-.TP 5
-stdout
-Sends the string to standard output exactly as is.
-.TP
-stderr
-Sends the string to standard error exactly as is.
-.TP
-plain
-Sends the string with all formatting environments removed to standard
-output.
-.TP
-tty
-Does formatting on the message according to @ commands embedded in the
-text.  The output,
-with appropriate mode-changing sequences, is sent to the standard output.
-The appropriate characteristics of the display are taken from
-the TERMCAP entry (see
-.IR termcap (5)) 
-for the terminal named by the TERM environment variable.
-Supported @ commands are:
-.RS 10
-.TP 15
-@roman
-Roman (plain) letters (turns off all special modes).
-.TP
-@b or @bold
-Bold letters.  If not available, reverse video, else underline.
-.TP
-@i or @italic
-Italic letters (underlining, if available).
-.TP
-@beep
-"bl" termcap entry, else "^G" (beep the terminal); limited to once per
-message.
-.TP
-@l or @left
-left aligned
-.TP
-@c or @center
-center aligned
-.TP
-@r or @right
-right aligned
-.RE
-.IP "" 5
-Other @-commands are silently ignored.
-.TP 5
-X
-Displays one window per string output to the port.  The output is
-formatted according to @ commands embedded in the string.  Supported
-@ commands are:
-.RS 10
-.TP 15
-@roman
-turns off @italic and @bold
-.TP
-@b or @bold
-turns on boldface
-.TP
-@i or @italic
-turns on italics
-.TP
-@l or @left
-left aligned
-.TP
-@c or @center
-center aligned
-.TP
-@r or @right
-right aligned
-.TP
-@large
-large type size
-.TP
-@medium
-medium type size
-.TP
-@small
-small type size
-.TP
-@beep
-Ring the X bell (limited to once per message)
-.TP
-@font
-sets the current font to the font specified in the contents of the
-environment (e.g. @font(fixed)).  This will remain in effect for the
-rest of the environment (a temporary change can be achieved by enclosing the
-font-change in an @(...) environment).  If the named font is not
-available, the font ``fixed'' is used instead.
-.TP
-@color
-sets the color to the color specified in the contents of the
-environment.  The color name should appear in the X color name database.
-This color will remain in effect for the rest of the environment.  If
-the named color is not available, the default foreground color is used.
-.RE
-.IP "" 5
-Any other environment name not corresponding to the above environment
-names will set the current ``substyle.''
-.IP
-The attributes of a given block of text are determined by any active
-environments, evaluated in the context of the current style and
-substyle.
-.IP
-The style is specific to each window.  Its name has three dot
-(``.'') separated fields, which are by default the values of the class,
-instance, and recipient variables, with all dots changed to underscores
-(``_'') and all letters converted to lowercase.  The style can be
-altered by setting the
-.I style
-variable.  Note that it \fBmust always\fR have exactly two ``.''
-characters in it.
-.IP
-The substyle is determined by @ commands in the message text.
-.IP
-Zwgc variables which the X output device reads are:
-.RS 10
-.TP 15
-default_X_geometry
-default geometry for notices, set from resources
-.TP
-X_geometry
-overrides geometry in resource file, if set
-.TP
-default_X_background
-default background color for notices, set from resources
-.TP
-X_background
-overrides bgcolor in resource file, if set
-.TP
-style
-style, as described above
-.RE
-.IP "" 5
-The expected geometry values are described below.
-.IP
-The fonts and color for a piece of text are determined by the styles
-defined in the X resources file.  The following resources relating to
-text style are used by zwgc:
-.RS 10
-.TP 10
-zwgc.style.\fIstylenames\fR.geometry
-geometry for messages of the specified style
-.TP
-zwgc.style.\fIstylenames\fR.background
-background color for messages of the specified style
-.TP
-zwgc.style.\fIstylenames\fR.substyle.\fIsubstylename\fR.fontfamily
-fontfamily name for the specified style and substyle
-.TP
-zwgc.style.\fIstylenames\fR.substyle.\fIsubstylename\fR.foreground
-foreground color for the specified style and substyle
-.TP
-zwgc.fontfamily.\fIfontfamilyname\fR.\fIsize\fR.\fIface\fR
-specifies the fonts for a given fontfamily.  \fIsize\fR is one
-of small, medium, or large, and \fIface\fR is one of roman,
-bold, italic, or bolditalic.
-.RE
-.IP "" 5
-The best way to get started in customizing X resources for
-.I zwgc
-is to examine the default application resources and other users'
-resources to understand how they specify the default appearance.
-
-.SH "X RESOURCES"
-Other X resources used by
-.I zwgc
-are listed below.
-Entries like
-.sp
-.nf
-.in +5
-zwgc*option: value
-Zwgc*option: value
-zwgc.option: value
-*option: value
-\&.option: value
-.in -5
-.fi
-.sp
-will work.
-.PP
-An entry labeled with zwgc*option in any of the sources takes precedence
-over Zwgc*option, which takes precedence over *option entries.
-The following sources are searched in order:
-.nf
-.in +5
-command-line arguments (-xrm)
-contents of file named by XENVIRONMENT environment variable
-X server resource database (see \fIxrdb\fR(1))
-application resources file
-.in -5
-.fi
-.PP
-Logical values can be ( Yes On True T ) or ( No Off False nil ).
-.TP 15
-\fBOPTION:\fR
-\fBMEANING [default]:\fR
-.TP
-cursorCode
-number of a code from the cursorfont (should be an even integer, see
-\fI<X11/cursorfont.h>\fR) to use for the windows.
-.TP
-foreground
-Primary foreground color
-.TP
-Foreground
-Secondary foreground color (if foreground not set) [BlackPixel is the default if neither is set]
-.TP
-background
-Primary background color
-.TP
-Background
-Secondary background color (if background not set) [WhitePixel is the
-default if neither is set]
-.TP
-borderColor
-Primary border color
-.TP
-BorderColor
-Secondary border color (if borderColor not set) [BlackPixel is the
-default if neither is set]
-.TP
-pointerColor
-Primary mouse pointer color [foreground color is the default if not set]
-.TP
-reverseVideo
-(logical) Toggles foreground and background (and border, if it matches
-foreground or background). 
-.TP
-ReverseVideo
-Secondary toggle, if reverseVideo is not set. [off is the default if
-neither is set]
-.TP
-borderWidth
-Primary border width selector
-.TP
-BorderWidth
-Secondary border width selector (if borderWidth is not set) [1 is the
-default value if neither is set]
-.TP
-internalBorder
-Primary border between edge and text
-.TP
-InternalBorder
-Secondary selector (if internalBorder not set) [2 is the default value
-if neither is set]
-.TP
-geometry
-Primary POSITION (not size) geometry specifier.
-The geometry should be of the form "{+|\-}x{+|\-}y", specifying an (x,y)
-coordinate for a corner of the window displaying the notice.  The
-interpretation of positive and negative location specifications follows
-the X conventions.  A special location of `c' for either x or y
-indicates that the window should be centered along that axis.  Example:
-a geometry of "+0+c" specifies the window should be at the top of the
-screen, centered horizontally.
-.TP
-Geometry
-Secondary position specifer. [+0+0 is the default if neither is set.]
-.TP
-resetSaver
-(logical) Primary value to force screen to unsave when a message first
-appears.
-.TP
-ResetSaver
-(logical) Secondary value to force screen to unsave. [default True] 
-.TP
-reverseStack
-(logical) Primary value to specify that zwgc should attempt to stack
-WindowGram windows such that the oldest messages
-normally show on top.  Some X window managers may silently ignore
-.IR zwgc 's
-attempts to restack its windows.  This option can cause some unusual
-interactions with other windows if the user manually restacks either the
-other windows or the WindowGram windows.
-.TP
-ReverseStack
-Secondary value to enable reverse stacking. [default False] 
-.TP
-title
-(string) Primary window title
-.TP
-Title
-Secondary window title [defaults to the last pathname component
-of the program name, usually "zwgc"]
-.TP
-transient
-(logical) Primary value which determines if zephyrgram windows will be
-created with the \fBWM_TRANSIENT_FOR\fR property set.  If this
-resource is true, the property will be set, telling certain
-windowmanagers to treat zephyrgram windows specially.  For instance,
-\fItwm\fR will not put decorations on transient windows, \fImwm\fR
-will not let you iconify them, and \fIuwm\fR ignores the resource
-entirely.
-.TP
-Transient
-Secondary transient determining value [default False]
-.TP
-allDesktops
-(logical) Primary value which determines if zephyrgram windows should
-appear on all desktops, for those window managers which support multiple
-desktops (sometimes referred to as workspaces).  When this resource is
-true (the default),
-.I zwgc
-sets the \fB_NET_WM_DESKTOP\fR property to 0xFFFFFFFF for each zephyrgram
-window, indicating that it should appear on all desktops.
-.TP
-AllDesktops
-Secondary value determining whether zephyrgram windows should appear
-on all desktops.
-.TP
-scrollDelete 
-(logical) If true, scrolling over a zgram will cause it
-to be deleted
-.TP
-ScrollDelete
-Secondary value to enable deletion of a zgram by scrolling over it
-[default False]
-.TP
-enableDelete
-(logical) If true, zwgc creates a WM_PROTOCOLS property on all zgrams, with
-WM_DELETE_WINDOW as contents.
-.TP
-EnableDelete
-Secondary value to enable WM_DELETE_WINDOW protocol on zgrams [default False]
-.TP
-minTimeToLive
-Primary value which specifies the minimum amount of time (``minimum time to
-live'') a WindowGram must be on-screen (in milliseconds) until it can
-be destroyed.  This feature is useful to avoid accidentally clicking
-on new WindowGrams when trying to delete old ones.
-.TP
-MinTimeToLive
-Secondary value of ``minimum time to live.''
-.TP
-iconName
-(string) Primary icon name
-.TP
-IconName
-Secondary icon name [defaults to the last pathname component
-of the program name, usually "zwgc"]
-.TP
-name
-(string) Primary window class name
-.TP
-name
-Secondary window class name [defaults to the last pathname component
-of the program name, usually "zwgc"]
-.TP
-synchronous
-(logical) Primary X synchronous mode specifier.  On means to put the X
-library into synchronous mode.
-.TP
-Synchronous
-Secondary X synchronous mode specifier.  [default is `off']
-.PP
-The window class is always "Zwgc".
-.SH X BUTTONS
-.PP
-Clicking and releasing any button without the shift key depressed while
-the pointer remains inside a WindowGram window will cause it to
-disappear. If the pointer leaves the window
-while the button is depressed, the window does not disappear; this
-provides a way to avoid accidentally losing messages.
-.PP
-If the control button is held down while clicking on a WindowGram,
-then that WindowGram and all windowgrams under the point where the
-button is released will be erased.
-.PP
-.B WARNING:
-If you do this with too many WindowGrams under the mouse, it is
-possible for your subscriptions to be lost.  If \fIzctl retrieve\fR
-returns nothing, then issue a \fIzctl load\fR command to re-subscribe
-to your default set of subscriptions.  If you use znol, then \fIznol
--q &\fR will restore the subscriptions you need for \fIznol\fR.
-.PP
-Portions of the text of a message may be selected for "pasting" into other X
-applications by using the shift key in cooperation with the pointer
-buttons.
-Holding the Shift key while depressing Button1 (usually the left button)
-will set a marker at the
-text under the pointer.  Dragging the pointer with Shift-Button1 still
-depressed extends the selection from the start point, until the button
-is released.  The end of the selection may also be
-indicated by releasing Button1, holding down the Shift key, and pressing
-Button3 (usually the right button) at the desired endpoint of the selection.
-The selection will appear with the text and background colors reversed.
-
-.SH ADDITIONAL X FEATURES
-If
-.I zwgc
-receives a WM_DELETE_WINDOW, it destroys the zephyrgram as if it were
-clicked on.
-.PP
-If a zephyrgram is unmapped, it is removed from the stacking order
-used by reverseStack.
-
-.SH COMMAND LINE
-.I zwgc
-is normally invoked from 
-.IR /usr/athena/lib/init/login ,
-.IR $HOME/.xsession ,
-or 
-.I /usr/athena/lib/init/xsession
-in the foreground. When it has successfully set your location and
-obtained subscriptions, it will put itself into the background (unless
-the \-nofork option has been specified). At this point it is safe to
-invoke additional zephyr commands, such as
-.IR znol (1).
-(You can also put these commands in the
-.I initprogs
-Zephyr variable; the value of this variable is passed as the argument to
-the
-.IR system (3)
-library call during initialization.)
-.I zwgc
-will exit with an exit
-status of 0 if it was able to open the X display successfully or 1 if it
-couldn't open the display and the Zephyr variable
-.I fallback
-was set to ``false''. If
-.I fallback
-is set to ``true'',
-.I zwgc
-will fall back to ``ttymode'' (making the tty driver the default output
-device) if it can't open the X display.  If
-.I fallback
-is not set and the display cannot be opened,
-.I zwgc
-prints an explanatory message and exits with a status of 1.
-.PP
-If the
-.I \-ttymode
-option is specified,
-.I zwgc
-will ignore any X display and use the terminal as its primary output
-device.  This flag overrides any setting of the fallback variable.
-.PP
-If the
-.I \-loc
-option is specified,
-.I zwgc
-will use the specified string as the tty field for the location it
-sets.  This allows users to potentially specify more useful auxiliary
-information than their ttys or display names.
-.PP
-The
-.I \-reenter
-option is provided for compatibility with the previous version of
-.IR zwgc .
-.PP
-.I zwgc
-will exit cleanly (unset location and cancel subscriptions) on:
-.nf
-       SIGTERM
-       SIGHUP
-       XIOError (with a message to stderr)
-.fi
-SIGHUP is what it expects to get upon logout.  Also, the signals
-SIGINT, SIGQUIT, and SIGTSTP are ignored because they can be sent
-inadvertently, and bizarre side-effects can result.  If you want them
-to be acted on, then run
-.I zwgc -nofork &
-.PP
-If
-.I zwgc
-receives a SIGUSR1, it will rewrite the file used to store the
-WindowGram port number ($WGFILE or /tmp/wg.\fIuid\fR), in the event
-that the file has been lost.
-.SH CONTROL MESSAGES
-In order to allow some special user controls over the behavior of
-.IR zwgc ,
-certain Zephyr control notices can be sent directly to
-.I zwgc
-using the
-.IR zctl (1)
-program. Currently implemented controls are
-.TP 15
-wg_read
-tell
-.I zwgc
-to re-read the current description file.
-.TP
-wg_shutdown
-tell 
-.I zwgc
-to cancel all subscriptions and stop acting on incoming notices. 
-.I zwgc
-saves the subscriptions that were in effect at the time of the shutdown
-so that it can restore them later if needed.
-.TP
-wg_startup
-tell 
-.I zwgc
-to restart from being shutdown and reinstall the saved subscriptions.
-.PP
-Other control messages may be implemented in the future.
-
-.SH EXAMPLES
-For an example of a description file, see
-.IR /usr/athena/share/zephyr/zwgc.desc .
-For an example of X resources, see
-.IR /usr/athena/share/zephyr/zwgc_resources .
-
-.SH BUGS
-The X selection code can highlight the wrong portions of messages
-containing formatted text placed with the @center() or @right()
-directives.
-.PP
-If you are using Kerberos support and get new tickets (using
-``kinit''), you must send a subscription notice to the server (using a
-command such as ``zctl load /dev/null'') or all received Zephyr
-notices will appear to be unauthentic.  (If all received Zephyr
-notices appear to be forged, your tickets have probably expired, in
-which case you must get new tickets and then run ``zctl load
-/dev/null''.)
-.SH FILES
-.TP 15
-$HOME/.zwgc.desc
-Default location of user's description file
-.TP
-/usr/athena/share/zephyr/zwgc.desc
-System-wide description file
-.TP
-/usr/athena/share/zephyr/zwgc_resources
-Default X application resources.
-.TP
-$ZEPHYR_VARS or $HOME/.zephyr.vars
-File containing variable definitions
-.TP
-$HOME/.zephyr.subs
-Supplementary subscription file
-.TP
-$HOME/.Xresources
-Standard X resources file
-.TP
-$WGFILE or /tmp/wg.\fIuid\fR
-File used to store WindowGram port number for other clients
-.SH SEE ALSO
-csh(1), kinit(1), xrdb(1), zctl(1), zephyr(1), znol(1), X(1), getenv(3),
-system(3), termcap(5), zephyrd(8), zhm(8)
-.br
-Project Athena Technical Plan Section E.4.1, `Zephyr Notification Service'
-.SH AUTHORS
-.nf
-John Carr (MIT/Project Athena) <jfc@athena.mit.edu>
-Marc Horowitz (MIT/Project Athena) <marc@athena.mit.edu>
-Mark Lillibridge (MIT/Project Athena) <mdl@CS.CMU.EDU>
-.fi
-.SH RESTRICTIONS
-Copyright (c) 1989 by the Massachusetts Institute of Technology.
-All Rights Reserved.
-.br
-.I zephyr(1)
-specifies the terms and conditions for redistribution.
diff --git a/zephyr/zwgc/zwgc.desc b/zephyr/zwgc/zwgc.desc
deleted file mode 100644 (file)
index 7a649c3..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-#      Copyright 1989, 1990 Massachusetts Institute of Technology
-#
-#      For copying and distribution information, see the file
-#      "mit-copyright.h".
-# 
-#      $Id: zwgc.desc 2091 2007-12-20 01:17:23Z kcr $
-#
-#
-# Default WindowGram description file
-#
-
-# Opcode "ping" is used by sender programs to see if the message would
-# really get sent, or if the recipient has logged out.  No useful
-# information is normally contained in these messages, so we discard them.
-if (upcase($opcode) == "PING") then exit endif
-
-#
-# AUTHENTICATION information
-#
-# $auth can be either Yes, No, or Forged
-#
-# "Yes" means that the sender field present in the notice was verified by
-# Kerberos authentication
-#
-# "No" means that either the sender did not include any authentication
-# information, or the authentication information was not verified by the
-# Zephyr Server before the notice was sent to you.
-#
-# "Forged" means that the Server claims that the sender of the notice
-# was verified by Kerberos authentication, but your WindowGram client
-# could not verify this.  This stage of verification is done by a cryptographic
-# checksum.  The most probable cause of the failure of the checksum
-# provided by the Server to match the checksum generated by your
-# WindowGram client is that you changed Kerberos tickets, and the Server
-# was using an old value to compute the cryptographic checksum.  You can
-# update the Server's value by typing 'zctl load' to your prompt.
-#
-# By default, notices which appear forged are labeled as 'UNAUTHENTIC'
-# to avoid confusion as to what 'Forged' really means.
-# To change this display, change the last word in the line following
-# 'match "forged" to something other than "UNAUTHENTIC".
-case $auth
-match "yes"
-  set aval = "Authentic"
-match "no","forged"
-  set aval = "@b(@large(UNAUTHENTIC))"
-endcase
-
-case $class
-match "WG_CTL_CLASS"
-  exit
-match "message"
-  if (downcase($recipient) == downcase($user)) then
-    case $instance
-    match "PERSONAL"
-      set type = "Personal"
-    match "URGENT"
-      set type = "Urgent"
-    default
-      set type = $instance
-    endcase
-  else
-    set type = "Instance "+$instance
-  endif
-
-  if ($number_of_fields == "1") then
-    fields body
-    set signature = ""
-  else
-    fields signature body
-  endif
-  if ($signature =~ "^[Ff]rom: .*") then
-    set dummy = lany($signature,"From: ")
-  endif
-  if ($signature =~ "\n$") then
-    set dummy = rany($signature,"\n")
-  endif
-  if ($signature == "") then
-    set ftext = "From: @bold("+protect($sender)+")"
-  else
-    set ftext = "From: @bold(@{"+protect($signature)+"} <"+
-      protect($sender)+">)"
-  endif
-
-  print "@center(@bold("+$aval+") "+$type+" message at "+$time+
-    " on "+$date+"\n"+$ftext+" on "+$fromhost+"\nTo: "+
-    $recipient+")\n\n"
-  print $body
-  put
-  exit
-
-match "login"
-  case $opcode 
-  match "USER_LOGIN"
-    set log = "logged in"
-  match "USER_LOGOUT"
-    set log = "logged out"
-  default
-    set log = "unknown opcode"
-  endcase
-
-  fields host when tty
-  print "@center(@bold("+$sender+") "+$log+")\n"
-  print "@center(on @bold("+$host+") on "+$tty+")\n"
-  print "@center(at "+$when+")"
-  put
-  exit
-
-default
-  if (downcase($class) == "filsys" and downcase($opcode) == "shutdown") then
-    set format = "From $sender:\n@bold(Shutdown message from $1 at $time)\n"+
-      "@center(System going down, message is:)\n\n$2\n\n@center(@bold($3))"
-  elseif (downcase($class) == "filsys") then
-    set format = "@bold(Filesystem Operation Message for $instance:)\n"+
-      "From: @bold($sender) at $time $date\n$message"
-  elseif (downcase($class) == "mail" and downcase($instance) == "popret") then
-    set format = "You have new mail:\n\nFrom: $1\nTo: $2\nSubject: $3"
-  elseif (downcase($class) == "mail") then
-    set format = "From Post Office $1:\n$2"
-  elseif (downcase($class) == "syslog") then
-    set format = "From $sender:\nSyslog message from $instance, level "+
-      "$opcode:\n$message"
-  elseif ($number_of_fields == "1") then
-    set format = "Class $class, Instance $instance:\nTo: @bold($recipient) "+
-      "at $time $date\nFrom: @bold($sender)\n\n$message"
-  else
-    set format = "Class $class, Instance $instance:\nTo: @bold($recipient) "+
-      "at $time $date\nFrom: @bold($1) <$sender>\n\n$2"
-  endif
-
-  print "(Authentication: @bold("+$aval+") from host: "+$fromhost+")\n"
-  print substitute($format)
-  put
-  exit
-
-endcase
diff --git a/zephyr/zwgc/zwgc.el b/zephyr/zwgc/zwgc.el
deleted file mode 100644 (file)
index f966da3..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-; zwgc.el
-;
-; This file is part of the Project Athena Zephyr Notification System.
-; Created by: Mark W. Eichin <eichin@athena.mit.edu>
-; $Id: zwgc.el 2091 2007-12-20 01:17:23Z kcr $
-; Copyright (c) 1988 by the Massachusetts Institute of Technology.
-; For copying and distribution information, see the file
-; "mit-copyright.h". 
-;
-; Emacs mode for running zwgc in a sub process of emacs. It pops up a
-; window for every new message; if you make bells appear between each
-; message, it will be able to seperate them. If you move the mouse
-; into the message window and hit `delete' it will delete the current
-; message; if there are other messages, it will show them, if not, it
-; will make the window go away.
-;
-; Invoke with M-x zwgc.
-; 
-; Also included is M-x zsend, which prompts for a user name and a
-; message to send to them. If the message is blank, a buffer is popped
-; up to edit the message in. If a prefix argument is given, zsend
-; prompts for an instance instead. If the user name is blank, the last
-; one is reused.
-; 
-; The following should be added to your .zephyr.desc file if you want
-; to take advantage of the zwgc message seperation features:
-;      does $mode
-;      match tty
-;              beep
-;      endmatch
-;      enddoes
-;
-(defvar zwgc_el-RCS-id)
-(setq zwgc_el-RCS-id "$Id: zwgc.el 2091 2007-12-20 01:17:23Z kcr $")
-;
-;
-
-(defun narrow-to-string (str)
-  "narrow and put up a string..."
-  (interactive "sString: ")
-  (narrow-to-region (point) (point))
-  (insert str))
-
-(defvar zwgc-prog "/usr/etc/zwgc" 
-  "*Program to run as the zwgc process. Should set it for the machine type.")
-
-(defun zwgc-wakeup (proc string)
-  "Procedure called when zwgc spits something out"
-  (let (start-limit)
-    (save-excursion (set-buffer (get-buffer "*zwgc*"))
-                   (setq start-limit (point))
-                   (goto-char (point-max))
-                   (if (= 7 (string-to-char string))
-                       (progn
-                         (ding 1)
-                         (message "got one!")
-                         (narrow-to-string string))
-                     (insert string))
-                   (search-backward "\007" start-limit t)
-                   (while (search-forward "\015" (point-max) t) ;flush ^M's
-                     (delete-backward-char 1)))
-    (Special-pop-up-window (get-buffer "*zwgc*"))
-    ))
-
-(defun zwgc ()
-  "emacs mode for running zwgc in a sub process of emacs. It pops up a
-window for every new message; if you make bells appear between each
-message, it will be able to seperate them. If you move the mouse into
-the message window and hit `delete' it will delete the current
-message; if there are other messages, it will show them, if not, it
-will make the window go away."
-  (interactive)
-  (require 'shell)
-  (let ((buffer (get-buffer-create "*zwgc*")) proc status)
-    (setq proc (get-buffer-process buffer))
-    (if proc
-       (setq status (process-status proc)))
-    (save-excursion
-      (set-buffer buffer)
-      (if (memq status '(run stop))
-         nil
-       (if proc (delete-process proc))
-       (setq proc (start-process "Zwgc" buffer 
-                                 zwgc-prog "-disable" "X"
-                                 "-default" "plain" "-nofork"))
-       (set-process-filter proc 'zwgc-wakeup))
-      (shell-mode)
-      (local-set-key "\177" 'zwgc-punt)
-      )
-    ))
-
-
-(defun Special-pop-up-window (buffer &optional max-height)
-  "Pop up a window that is just big enough to hold the current buffer."
-  (interactive "bBuffer to pop: ")
-  (let* ((retwin (selected-window))
-        (pop-up-windows t)
-        (window-min-height 1))
-    (pop-to-buffer buffer)
-    (setq lines (1+ (count-lines (point-min) (point-max))))
-    (enlarge-window (- lines (window-height (selected-window))))
-    (goto-char (point-min))
-    (other-window 1)
-    ))
-
-(defun zwgc-punt ()
-  "Delete the current ZephyrGram from the *zwgc* buffer."
-  (interactive)
-  (let ((window-min-height 1))
-    (display-buffer (get-buffer "*zwgc*"))
-    (delete-region (point-min) (point-max))
-    (widen)
-    (if (not (search-backward "\007" nil t))
-       (delete-windows-on "*zwgc*")
-      (narrow-to-region (point) (point-max))
-      (enlarge-window (- (1+ (count-lines (point-min) (point-max)))
-                        (window-height (selected-window))))
-      (goto-char (point-min))
-      )))
-;;
-;; [eichin:19880309.2005EST]
-;; zsend.el
-;; Send zephyrgrams from emacs...
-;;
-
-(defvar *who* "" "last user sent to with zsend")
-
-(defun zsend (&optional who message)
-  "zsend prompts for a user name and a message to send to them as a
-ZephyrGram. If the message is blank, a buffer is popped up to edit the
-message in. If a prefix argument is given, zsend prompts for an
-instance instead. If the user name is blank, the last one is reused."
-  (interactive
-   (list (if current-prefix-arg                ; is this portable???
-            (cons 'instance (read-input "Instance:"))
-          (cons 'who (read-input "Who:")))
-;       (select-window (minibuffer-window))
-;       (enlarge-window 4)
-        (read-input "Message:")))
-  (save-excursion
-    (let ((tempbuf (get-buffer-create " *zephyr*send*")))
-      (switch-to-buffer tempbuf)
-      (local-set-key "\C-c\C-c" 'exit-recursive-edit)
-      (erase-buffer)
-      (if (and (equal (cdr who) "")
-              (equal *who* ""))
-         (message "Please specify user at least once.")
-       (if (not (equal (cdr who) ""))
-           (setq *who* who)            ; save *who* for next time
-         (setq who *who*))             ; or, use the old value
-       (if (not (equal message ""))
-           (progn
-             (insert message)
-             (zwrite who))
-         (progn
-           (recursive-edit)
-           (zwrite who)))))))
-
-
-(defun zwrite (who)
-  "Send a ZephyrGram to user WHO, zsend is the user interface to this."
-  (if (eq 'who (car who))
-      (call-process-region (point-min) (point-max) ;range
-                          "/usr/athena/zwrite" ;process
-                          t            ;delete-p
-                          t            ;output-p
-                          nil          ;redisplay-p
-                          "-q"         ;args -- ignore server responses.
-                          (cdr who))
-    (call-process-region (point-min) (point-max) ;range
-                          "/usr/athena/zwrite" ;process
-                          t            ;delete-p
-                          t            ;output-p
-                          nil          ;redisplay-p
-                          "-q"         ;args -- ignore server responses.
-                          "-i"         ;[eichin:19880312.0015EST]
-                          (cdr who)))
-  (if (not (equal (point-max) 1))
-      (message (buffer-substring 1 (1- (point-max))))))
-
-; suggested binding (control-meta-z)
-;(global-set-key "\M-\C-z" 'zsend)
-
-
diff --git a/zephyr/zwgc/zwgc.h b/zephyr/zwgc/zwgc.h
deleted file mode 100644 (file)
index 6a93a9e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/* This file is part of the Project Athena Zephyr Notification System.
- * It is one of the source files comprising zwgc, the Zephyr WindowGram
- * client.
- *
- *      Created by:     Marc Horowitz <marc@athena.mit.edu>
- *
- *      $Id: zwgc.h 2091 2007-12-20 01:17:23Z kcr $
- *
- *      Copyright (c) 1989 by the Massachusetts Institute of Technology.
- *      For copying and distribution information, see the file
- *      "mit-copyright.h".
- */
-
-
-#include <zephyr/mit-copyright.h>
-
-#ifdef DEBUG
-
-extern int zwgc_debug;
-#define dprintf(x)     if (zwgc_debug) printf(x)
-#define dprintf1(x,y)     if (zwgc_debug) printf(x,y)
-
-#else
-
-#define dprintf(x)     
-#define dprintf1(x,y)     
-
-#endif
diff --git a/zephyr/zwgc/zwgc_resources b/zephyr/zwgc/zwgc_resources
deleted file mode 100644 (file)
index 061502d..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-!      Copyright 1989 Massachusetts Institute of Technology
-!
-!      For copying and distribution information, see the file
-!      "mit-copyright.h".
-! 
-!      $Id: zwgc_resources 2091 2007-12-20 01:17:23Z kcr $
-!
-!
-! Zwgc application specific global resources:
-!
-
-*style*substyle.default.fontfamily:                    default
-*style.message.personal*substyle.title.fontfamily:     huge
-
-*style*geometry:                                       +0+0
-
-!
-! The following is the adobe-courier font family.  Availiable sizes are
-! 80, 100, 120, 140, 180, and 240.  This family used to be courier.
-!
-
-*fontfamily.default.small.roman:       -adobe-courier-medium-r-*-80-*-m-*
-*fontfamily.default.small.bold:                -adobe-courier-bold-r-*-80-*-m-*
-*fontfamily.default.small.italic:      -adobe-courier-medium-o-*-80-*-m-*
-*fontfamily.default.small.bolditalic:  -adobe-courier-bold-o-*-80-*-m-*
-
-*fontfamily.default.medium.roman:      -adobe-courier-medium-r-*-120-*-m-*
-*fontfamily.default.medium.bold:       -adobe-courier-bold-r-*-120-*-m-*
-*fontfamily.default.medium.italic:     -adobe-courier-medium-o-*-120-*-m-*
-*fontfamily.default.medium.bolditalic: -adobe-courier-bold-o-*-120-*-m-*
-
-*fontfamily.default.large.roman:       -adobe-courier-medium-r-*-240-*-m-*
-*fontfamily.default.large.bold:                -adobe-courier-bold-r-*-240-*-m-*
-*fontfamily.default.large.italic:      -adobe-courier-medium-o-*-240-*-m-*
-*fontfamily.default.large.bolditalic:  -adobe-courier-bold-o-*-240-*-m-*
-
-!
-! The following is the adobe-courier font family.  Availiable sizes are
-! 80, 100, 120, 140, 180, and 240.  This family used to be courier.
-!
-
-*fontfamily.courier.small.roman:       *adobe-courier-medium-r-*-80-*-m-*
-*fontfamily.courier.small.bold:                *adobe-courier-bold-r-*-80-*-m-*
-*fontfamily.courier.small.italic:      *adobe-courier-medium-o-*-80-*-m-*
-*fontfamily.courier.small.bolditalic:  *adobe-courier-bold-o-*-80-*-m-*
-
-*fontfamily.courier.medium.roman:      *adobe-courier-medium-r-*-120-*-m-*
-*fontfamily.courier.medium.bold:       *adobe-courier-bold-r-*-120-*-m-*
-*fontfamily.courier.medium.italic:     *adobe-courier-medium-o-*-120-*-m-*
-*fontfamily.courier.medium.bolditalic: *adobe-courier-bold-o-*-120-*-m-*
-
-*fontfamily.courier.large.roman:       *adobe-courier-medium-r-*-240-*-m-*
-*fontfamily.courier.large.bold:                *adobe-courier-bold-r-*-240-*-m-*
-*fontfamily.courier.large.italic:      *adobe-courier-medium-o-*-240-*-m-*
-*fontfamily.courier.large.bolditalic:  *adobe-courier-bold-o-*-240-*-m-*
-
-!
-! The following is the adobe-times font family.  Availiable sizes are
-! 80, 100, 120, 140, 180, and 240.  This family used to be times-roman.
-!
-*fontfamily.times.small.roman:         *adobe-times-medium-r-*-80-*-p-*
-*fontfamily.times.small.bold:          *adobe-times-bold-r-*-80-*-p-*
-*fontfamily.times.small.italic:                *adobe-times-medium-i-*-80-*-p-*
-*fontfamily.times.small.bolditalic:    *adobe-times-bold-i-*-80-*-p-*
-
-*fontfamily.times.medium.roman:                *adobe-times-medium-r-*-120-*-p-*
-*fontfamily.times.medium.bold:         *adobe-times-bold-r-*-120-*-p-*
-*fontfamily.times.medium.italic:       *adobe-times-medium-i-*-120-*-p-*
-*fontfamily.times.medium.bolditalic:   *adobe-times-bold-i-*-120-*-p-*
-
-*fontfamily.times.large.roman:         *adobe-times-medium-r-*-240-*-p-*
-*fontfamily.times.large.bold:          *adobe-times-bold-r-*-240-*-p-*
-*fontfamily.times.large.italic:                *adobe-times-medium-i-*-240-*-p-*
-*fontfamily.times.large.bolditalic:    *adobe-times-bold-i-*-240-*-p-*
-
-!
-! The following is the adobe-helvetica font family.  Availiable sizes are
-! 80, 100, 120, 140, 180, and 240.  This family used to be helvetica.
-!
-*fontfamily.helvetica.small.roman:     *adobe-helvetica-medium-r-*-80-*-p-*
-*fontfamily.helvetica.small.bold:      *adobe-helvetica-bold-r-*-80-*-p-*
-*fontfamily.helvetica.small.italic:    *adobe-helvetica-medium-o-*-80-*-p-*
-*fontfamily.helvetica.small.bolditalic:        *adobe-helvetica-bold-o-*-80-*-p-*
-
-*fontfamily.helvetica.medium.roman:    *adobe-helvetica-medium-r-*-120-*-p-*
-*fontfamily.helvetica.medium.bold:     *adobe-helvetica-bold-r-*-120-*-p-*
-*fontfamily.helvetica.medium.italic:   *adobe-helvetica-medium-o-*-120-*-p-*
-*fontfamily.helvetica.medium.bolditalic:*adobe-helvetica-bold-o-*-120-*-p-*
-
-*fontfamily.helvetica.large.roman:     *adobe-helvetica-medium-r-*-240-*-p-*
-*fontfamily.helvetica.large.bold:      *adobe-helvetica-bold-r-*-240-*-p-*
-*fontfamily.helvetica.large.italic:    *adobe-helvetica-medium-o-*-240-*-p-*
-*fontfamily.helvetica.large.bolditalic:        *adobe-helvetica-bold-o-*-240-*-p-*
-
-!
-! Quick hack...
-!
-
-*fontfamily.huge*roman:                *bitstream-charter-medium-r-*-33-*-p-*
-*fontfamily.huge*bold:         *bitstream-charter-bold-r-*-33-*-p-*
-*fontfamily.huge*italic:       *bitstream-charter-medium-i-*-33-*-p-*
-*fontfamily.huge*bolditalic:   *bitstream-charter-bold-i-*-33-*-p-*