diff options
author | Karl Berry <karl@freefriends.org> | 2009-05-19 00:42:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-05-19 00:42:35 +0000 |
commit | 136f54b7dc95964f3db31da84ba3f1961967babe (patch) | |
tree | 2050345bf4d6396bce5b756842aea46626c7d53b /Build | |
parent | 53241b23b422addce6dd1145dfa1d334a940c45d (diff) |
update to http://project.ktug.or.kr/dvipdfmx/snapshot/latest/dvipdfmx-20090506.tar.gz
git-svn-id: svn://tug.org/texlive/trunk@13221 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
50 files changed, 8608 insertions, 1277 deletions
diff --git a/Build/source/texk/dvipdfmx/ChangeLog b/Build/source/texk/dvipdfmx/ChangeLog index 7726d83e96a..76cc7803ad9 100644 --- a/Build/source/texk/dvipdfmx/ChangeLog +++ b/Build/source/texk/dvipdfmx/ChangeLog @@ -1,8 +1,162 @@ -$Header: /home/cvsroot/dvipdfmx/ChangeLog,v 1.234 2009/01/15 21:09:29 chofchof Exp $ +$Header: /home/cvsroot/dvipdfmx/ChangeLog,v 1.256 2009/05/06 06:09:05 chofchof Exp $ ChangeLog: Changes for DVIPDFMx =============================== +2009-05-06 Jin-Hwan Cho + + * dvipdfmx.c, pdflimits.h, pdfobj.c: + Improved PDF version handling. + + * cmap_read.c: + Fixed a silly bug; reported by Fumihito YOSHIDA. + +2009-05-06 Matthias Franz + + * cid.c, dvipdfmx.c, pdflimits.h, pdfobj.c: + Fixed minor issues with PDF version handling, following + a question by Akira Kakuto. The minimal and maximal + PDF versions allowed are now defined in pdflimits.h. + +2009-05-03 Matthias Franz + + * dvipdfmx.c, epdf.c, epdf.h, pdfdoc.c, pdfdoc.h, pdfobj.c, pdfobj.h, pdfximage.c, pdfximage.h, xbb.c: + Improved PDF version handling. A "Version" entry in the + document catalog is now honored. Moreover, dvipdfmx accepts + to write PDF 1.7, and extractbb doesn't complain about PDF + versions any more. Encryption keys too long for PDF 1.3 now + lead to an error instead of a silent change of PDF version. + +2009-05-02 Jin-Hwan Cho + + * tt_table.c: + Fixed a bug of reading numOfExSideBearings; reported by + Tomas Janousek. + +2009-04-30 Matthias Franz + + * dvipdfmx.cfg: + Use ps2pdf for PS-to-PDF conversion on all platforms. + +2009-04-29 Jin-Hwan Cho + + * spc_color.c, spc_pdfm.c, spc_util.c, spc_util.h: + Allow changing strokecolor or fillcolor only; for example, + "pdf:scolor Red []" changes fillcolor only and + "pdf:scolor [] Red" changes strokecolor only, but + "pdf:scolor Red" changes both fillcolor and strokecolor. + + * pdfparse.c: + Parse stream objects in a strict way as DVIPDFM because + DVIPDFMx already has another specials for stream objects. + +2009-04-26 Matthias Franz + + * pdfobj.c: + Don't print unnecessary newlines in PDF dictionaries. + + * pdfobj.c, pdfobj.h, xbb.c: + Added "%%HiResBoundingBox" and "%%PDFVersion" lines to + extractbb output. + + * dpxutil.c, dpxutil.h, dvipdfmx.c, pdfdoc.c,pdfdoc.h, pdfnames.c, pdfnames.h, pdfobj.c, pdfobj.h, spc_pdfm.c, specials.c, dvipdfmx.cfg: + Rename PDF destinations to shorter names (in order to save + space). Together with the removal of unused PDF destinations + implemented previously, this is more or less equivalent to + Heiko Oberdiek's LaTeX package "hypdestopt". + +2009-04-20 Jin-Hwan Cho + + * pdfdoc.c: + Bug fix: \special{pdf:bann} ... \special{pdf:eann} (e.g., \hyperlink) + cause a problem when it was surrounded by the pair + \special{pdf:bcontent} ... \special{\special{pdf:econtent}. + +2009-04-19 Jin-Hwan Cho + + * generic/pgf-doc-diff.texlive2008, generic/pgf-generic-diff.texlive2008: + Patches and a new dvipdfmx driver for PGF, Version 2.00 + included in texlive 2008. + + * generic/pgfsys-dvipdfmx.def.version2, generic/pgfsys-dvipdfmx-patch.tex.version2: + Removed contributed files because of new patch files + pgf-doc-diff.texlive2008 and pgf-generic-diff.texlive2008. + +2009-04-18 Jin-Hwan Cho + + * generic/pgf-doc-diff.version2cvs, generic/pgf-generic-diff.version2cvs: + Patches and a new dvipdfmx driver for PGF, Version 2.00-cvs 20090418. + + * contrib/context/spec-dpx.tex, contrib/latex/animate.sty.sample, color.sty.sample, dvipdfmx.def.sample, graphics.sty.sample, movie15.sty.sample, sample-imagemask.tex: + Removed contributed files already applied to texlive 2008. + +2009-04-08 Jin-Hwan Cho + + * t1_load.c: + Ignores the second /Subrs dicts and /CharStrings not followed + by dict; Adobe's OPO_____.PFB and OPBO____.PFB had those problems. + +2009-04-07 Matthias Franz + + * xbb.c: + Removed binary mode option "-b". In ebb, just ignore it. + +2009-03-30 Jin-Hwan Cho + + * pdfdoc.c: + Fixed the bug: bbox->llx is not extracted for PDF images. + +2009-03-29 Matthias Franz + + * xbb.c: + Changed output-to-stdout option to "-O". + +2009-03-24 Jin-Hwan Cho + + * cff.c, dpxutil.c, pdfencoding.c, pdfencrypt.c, mem.c: + Revive system.h to work with TeXLive. + +2009-03-23 Matthias Franz + + * dvipdfmx.c, jpegimage.c, jpegimage.h, pngimage.c, pngimage.h, xbb.c: + Several changes related to xbb/extractbb: + Combined code with jpegimage.c and pngimage.c, added number + of pages to xbb output for PDF files, introduced quiet mode + (option "-q") and output to stdout (option "-s"), improved test + of filename check in dvipdfmx.c (now uses >libgen.h>), new + version numbering for xbb (same as dvipdfmx version) + +2009-03-15 Jin-Hwan Cho + + * data/Makefile.am, data/Makefile.in, data/EUC-UCS2: + Revive the cmap EUC-UCS2; suggested by Nobuyuki Tsuchimura. + +2009-03-16 Matthias Franz + + * pdfdev.c, pdfdraw.c, spc_html.c, spc_pdfm.c, spc_tpic.c: + Added comments to show the PDF operators inserted by each + call of pdf_doc_add_page_content. This makes it easier to + find out which part of the source is responsible for a PDF + operator in the output. Example: + + pdf_doc_add_page_content(work_buffer, len); /* op: q cm * + +2009-03-12 Matthias Franz + + * dvipdfmx.c: + Don't print messages in quiet mode. + + * dpxfile.c, dpxfile.h, pdfximage.c, data/dvipdfmx.cfg: + Added conversion specifier "%v" (PDF version) to PS-to-PDF + conversion template. Also changed default template for + GhostScript to use the script ps2pdf instead of calling gs + directly. (This works for all platforms.) + + * pdfobj.c: + Fixed a bug concerning empty PDF strings: Empty PDF strings + were reduced to NULL, which could lead to errors when calling + string functions. + 2009-01-15 Jin-Hwan Cho * specials.c: diff --git a/Build/source/texk/dvipdfmx/Makefile.in b/Build/source/texk/dvipdfmx/Makefile.in index 97f37995235..ad98a955948 100644 --- a/Build/source/texk/dvipdfmx/Makefile.in +++ b/Build/source/texk/dvipdfmx/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,8 +16,9 @@ @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -37,14 +39,15 @@ DIST_COMMON = README $(am__configure_deps) \ $(srcdir)/../../build-aux/config.sub \ $(srcdir)/../../build-aux/install-sh \ $(srcdir)/../../build-aux/ltmain.sh \ - $(srcdir)/../../build-aux/missing $(srcdir)/Makefile.am \ + $(srcdir)/../../build-aux/missing \ + $(srcdir)/../../build-aux/mkinstalldirs $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure ../../build-aux/config.guess \ ../../build-aux/config.sub ../../build-aux/depcomp \ ../../build-aux/install-sh ../../build-aux/ltmain.sh \ - ../../build-aux/missing ../../build-aux/texinfo.tex \ - ../../build-aux/ylwrap AUTHORS COPYING ChangeLog INSTALL NEWS \ - TODO + ../../build-aux/missing ../../build-aux/mkinstalldirs \ + ../../build-aux/texinfo.tex ../../build-aux/ylwrap AUTHORS \ + COPYING ChangeLog INSTALL NEWS TODO ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../m4/cho-kpse.m4 \ $(top_srcdir)/../../m4/cho-libs.m4 \ @@ -62,9 +65,10 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d +mkinstalldirs = $(SHELL) $(top_srcdir)/../../build-aux/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -76,6 +80,9 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -83,9 +90,34 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } + { test ! -d "$(distdir)" \ + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr "$(distdir)"; }; } +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print @@ -223,15 +255,15 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ - cd $(srcdir) && $(AUTOMAKE) --foreign \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -247,9 +279,10 @@ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENC $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(srcdir) && $(AUTOCONF) + $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ @@ -261,7 +294,7 @@ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_srcdir) && $(AUTOHEADER) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ @@ -301,7 +334,7 @@ $(RECURSIVE_TARGETS): else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ @@ -335,16 +368,16 @@ $(RECURSIVE_CLEAN_TARGETS): else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) @@ -359,7 +392,7 @@ tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ @@ -371,7 +404,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ @@ -380,36 +413,41 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) - test -d $(distdir) || mkdir $(distdir) + test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -425,38 +463,54 @@ distdir: $(DISTFILES) if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ + am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) + || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) @@ -468,6 +522,10 @@ dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + $(am__remove_distdir) + dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) @@ -497,6 +555,8 @@ distcheck: dist bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ @@ -508,9 +568,11 @@ distcheck: dist mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ @@ -532,13 +594,15 @@ distcheck: dist && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: - @cd $(distuninstallcheck_dir) \ + @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ @@ -580,6 +644,7 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -600,6 +665,8 @@ dvi-am: html: html-recursive +html-am: + info: info-recursive info-am: @@ -608,18 +675,28 @@ install-data-am: install-dvi: install-dvi-recursive +install-dvi-am: + install-exec-am: install-html: install-html-recursive +install-html-am: + install-info: install-info-recursive +install-info-am: + install-man: install-pdf: install-pdf-recursive +install-pdf-am: + install-ps: install-ps-recursive +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-recursive @@ -642,24 +719,25 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ + ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \ - distclean distclean-generic distclean-hdr distclean-libtool \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am + dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-recursive uninstall uninstall-am + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/Build/source/texk/dvipdfmx/aclocal.m4 b/Build/source/texk/dvipdfmx/aclocal.m4 index e7df4725fd5..e5b40dc5feb 100644 --- a/Build/source/texk/dvipdfmx/aclocal.m4 +++ b/Build/source/texk/dvipdfmx/aclocal.m4 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.10.2 -*- Autoconf -*- +# generated automatically by aclocal 1.11 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -31,10 +31,10 @@ To do so, use the procedure documented by the package, typically `autoreconf'.]) # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.10' +[am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.10.2], [], +m4_if([$1], [1.11], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -50,7 +50,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.10.2])dnl +[AM_AUTOMAKE_VERSION([1.11])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) @@ -110,14 +110,14 @@ am_aux_dir=`cd $ac_aux_dir && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 8 +# serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- @@ -130,6 +130,7 @@ AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' @@ -143,14 +144,14 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 9 +# serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, @@ -207,6 +208,16 @@ AC_CACHE_CHECK([dependency style of $depcc], if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and @@ -224,7 +235,17 @@ AC_CACHE_CHECK([dependency style of $depcc], done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested @@ -234,19 +255,23 @@ AC_CACHE_CHECK([dependency style of $depcc], break fi ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; none) break ;; esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message @@ -310,59 +335,61 @@ _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -#serial 4 +#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[# Autoconf 2.62 quotes --file arguments for eval, but not when files -# are listed without --file. Let's play safe and only enable the eval -# if we detect the quoting. -case $CONFIG_FILES in -*\'*) eval set x "$CONFIG_FILES" ;; -*) set x $CONFIG_FILES ;; -esac -shift -for mf -do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done done -done +} ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -382,13 +409,13 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008 Free Software Foundation, Inc. +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 13 +# serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. @@ -405,7 +432,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.60])dnl +[AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl @@ -456,8 +483,8 @@ AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. @@ -465,24 +492,37 @@ AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header @@ -505,7 +545,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -516,7 +556,14 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. @@ -543,27 +590,38 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 +# serial 5 +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless `enable' is passed literally. +# For symmetry, `disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], +[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl + AC_SUBST([MAINT])dnl ] ) @@ -571,13 +629,13 @@ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 3 +# serial 4 # AM_MAKE_INCLUDE() # ----------------- @@ -586,7 +644,7 @@ AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: - @echo done + @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. @@ -596,24 +654,24 @@ am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) @@ -623,14 +681,14 @@ rm -f confinc confmf # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 +# serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ @@ -647,7 +705,14 @@ AC_SUBST($1)]) AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " @@ -718,14 +783,14 @@ AC_DEFUN([_AM_IF_OPTION], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 +# serial 5 # AM_SANITY_CHECK # --------------- @@ -734,16 +799,29 @@ AC_DEFUN([AM_SANITY_CHECK], # Just in case sleep 1 echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` + set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ @@ -796,18 +874,25 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 2 + # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) +# AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. diff --git a/Build/source/texk/dvipdfmx/configure b/Build/source/texk/dvipdfmx/configure index 5c26f7c6f0a..561e5f1cfd2 100755 --- a/Build/source/texk/dvipdfmx/configure +++ b/Build/source/texk/dvipdfmx/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for dvipdfmx 20090115. +# Generated by GNU Autoconf 2.63 for dvipdfmx 20090506. # # Report bugs to <dvipdfmx@project.ktug.or.kr>. # @@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='dvipdfmx' PACKAGE_TARNAME='dvipdfmx' -PACKAGE_VERSION='20090115' -PACKAGE_STRING='dvipdfmx 20090115' +PACKAGE_VERSION='20090506' +PACKAGE_STRING='dvipdfmx 20090506' PACKAGE_BUGREPORT='dvipdfmx@project.ktug.or.kr' ac_unique_file="src/dvipdfmx.c" @@ -786,7 +786,9 @@ ac_includes_default="\ # include <unistd.h> #endif" -ac_subst_vars='LTLIBOBJS +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS TDS_VERSION_11_FALSE TDS_VERSION_11_TRUE LIBPNG_RULE @@ -1493,7 +1495,7 @@ 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 dvipdfmx 20090115 to adapt to many kinds of systems. +\`configure' configures dvipdfmx 20090506 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1563,7 +1565,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dvipdfmx 20090115:";; + short | recursive ) echo "Configuration of dvipdfmx 20090506:";; esac cat <<\_ACEOF @@ -1680,7 +1682,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dvipdfmx configure 20090115 +dvipdfmx configure 20090506 generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1694,7 +1696,7 @@ 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 dvipdfmx $as_me 20090115, which was +It was created by dvipdfmx $as_me 20090506, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -2097,7 +2099,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. -am__api_version='1.10' +am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2197,16 +2199,33 @@ $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5 +$as_echo "$as_me: error: unsafe absolute working directory name" >&2;} + { (exit 1); exit 1; }; };; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5 +$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;} + { (exit 1); exit 1; }; };; +esac + # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` + set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ @@ -2250,7 +2269,14 @@ program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " @@ -2260,6 +2286,115 @@ else $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + 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 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + $as_echo_n "(cached) " >&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" + $as_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 + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "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 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + $as_echo_n "(cached) " >&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" + $as_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 + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then @@ -2506,7 +2641,7 @@ ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: - @echo done + @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. @@ -2517,24 +2652,24 @@ am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac fi @@ -3523,6 +3658,11 @@ else if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and @@ -3540,7 +3680,17 @@ else done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested @@ -3550,19 +3700,23 @@ else break fi ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; none) break ;; esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message @@ -4195,13 +4349,13 @@ if test "${lt_cv_nm_interface+set}" = set; then else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:4198: $ac_compile\"" >&5) + (eval echo "\"\$as_me:4352: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:4201: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:4355: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:4204: output\"" >&5) + (eval echo "\"\$as_me:4358: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -5407,7 +5561,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5410 "configure"' > conftest.$ac_ext + echo '#line 5564 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -6787,7 +6941,7 @@ fi # Define the identity of the package. PACKAGE='dvipdfmx' - VERSION='20090115' + VERSION='20090506' cat >>confdefs.h <<_ACEOF @@ -6815,108 +6969,6 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then - $as_echo_n "(cached) " >&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" - $as_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 - { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - $as_echo_n "(cached) " >&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" - $as_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 - { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. @@ -6929,6 +6981,7 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + { $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. @@ -7454,11 +7507,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7457: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7510: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7461: \$? = $ac_status" >&5 + echo "$as_me:7514: \$? = $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 other than the usual output. @@ -7793,11 +7846,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7796: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7849: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7800: \$? = $ac_status" >&5 + echo "$as_me:7853: \$? = $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 other than the usual output. @@ -7898,11 +7951,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7901: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7954: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7905: \$? = $ac_status" >&5 + echo "$as_me:7958: \$? = $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 @@ -7953,11 +8006,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7956: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8009: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7960: \$? = $ac_status" >&5 + echo "$as_me:8013: \$? = $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 @@ -10753,7 +10806,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10756 "configure" +#line 10809 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10849,7 +10902,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10852 "configure" +#line 10905 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -16255,7 +16308,7 @@ Usage: $0 [OPTIONS] Report bugs to <bug-libtool@gnu.org>." lt_cl_version="\ -dvipdfmx config.lt 20090115 +dvipdfmx config.lt 20090506 configured by $0, generated by GNU Autoconf 2.63. Copyright (C) 2008 Free Software Foundation, Inc. @@ -18301,6 +18354,14 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -18652,7 +18713,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dvipdfmx $as_me 20090115, which was +This file was extended by dvipdfmx $as_me 20090506, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18715,7 +18776,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -dvipdfmx config.status 20090115 +dvipdfmx config.status 20090506 configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" @@ -19754,27 +19815,28 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || # Autoconf 2.62 quotes --file arguments for eval, but not when files -# are listed without --file. Let's play safe and only enable the eval -# if we detect the quoting. -case $CONFIG_FILES in -*\'*) eval set x "$CONFIG_FILES" ;; -*) set x $CONFIG_FILES ;; -esac -shift -for mf -do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ @@ -19797,28 +19859,28 @@ $as_echo X"$mf" | q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ @@ -19841,7 +19903,7 @@ $as_echo X"$file" | q } s/.*/./; q'` - { as_dir=$dirpart/$fdir + { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac @@ -19882,10 +19944,11 @@ $as_echo X"$as_dir" | } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done done -done +} ;; "libtool":C) diff --git a/Build/source/texk/dvipdfmx/configure.ac b/Build/source/texk/dvipdfmx/configure.ac index dbe7f5f91f2..b8809ae3df5 100644 --- a/Build/source/texk/dvipdfmx/configure.ac +++ b/Build/source/texk/dvipdfmx/configure.ac @@ -6,7 +6,7 @@ dnl This file is free software; the copyright holder dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl -AC_INIT([dvipdfmx], [20090115], [dvipdfmx@project.ktug.or.kr]) +AC_INIT([dvipdfmx], [20090506], [dvipdfmx@project.ktug.or.kr]) AC_PREREQ([2.63]) AC_CONFIG_SRCDIR([src/dvipdfmx.c]) AC_CONFIG_AUX_DIR([../../build-aux]) diff --git a/Build/source/texk/dvipdfmx/data/EUC-UCS2 b/Build/source/texk/dvipdfmx/data/EUC-UCS2 new file mode 100644 index 00000000000..d7a91685ad5 --- /dev/null +++ b/Build/source/texk/dvipdfmx/data/EUC-UCS2 @@ -0,0 +1,6800 @@ +%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (EUC-UCS2)
+%%Title: (EUC-UCS2)
+%%Version: 1.0
+%%Copyright:
+%% Copyright (C) 2002 by Jin-Hwan Cho <chofchof@ktug.or.kr>
+%%
+%% 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.
+%%EndComments
+
+/CIDInit /ProcSet findresource begin
+
+12 dict begin
+
+begincmap
+
+/CIDSystemInfo 3 dict dup begin
+ /Registry (Adobe) def
+ /Ordering (EUC_UCS2) def
+ /Supplement 1 def
+end def
+
+/CMapName /EUC-UCS2 def
+/CMapVersion 1.0 def
+/CMapType 1 def
+/WMode 0 def
+
+3 begincodespacerange
+<00> <7E>
+<8EA0> <8EDF>
+<A1A1> <FEFE>
+endcodespacerange
+
+17 beginbfrange
+<00> <5B> <0000>
+<5D> <7D> <005D>
+<8EA0> <8EDF> <FF60>
+<A1D2> <A1DB> <3008>
+<A3B0> <A3B9> <FF10>
+<A3C1> <A3DA> <FF21>
+<A3E1> <A3FA> <FF41>
+<A4A1> <A4F3> <3041>
+<A5A1> <A5F6> <30A1>
+<A6A1> <A6B1> <0391>
+<A6B2> <A6B8> <03A3>
+<A6C1> <A6D1> <03B1>
+<A6D2> <A6D8> <03C3>
+<A7A1> <A7A6> <0410>
+<A7A8> <A7C1> <0416>
+<A7D1> <A7D6> <0430>
+<A7D8> <A7F1> <0436>
+endbfrange
+
+99 beginbfchar
+<5C> <00A5>
+<7E> <203E>
+<A1A1> <3000>
+<A1A2> <3001>
+<A1A3> <3002>
+<A1A4> <FF0C>
+<A1A5> <FF0E>
+<A1A6> <30FB>
+<A1A7> <FF1A>
+<A1A8> <FF1B>
+<A1A9> <FF1F>
+<A1AA> <FF01>
+<A1AB> <309B>
+<A1AC> <309C>
+<A1AD> <00B4>
+<A1AE> <FF40>
+<A1AF> <00A8>
+<A1B0> <FF3E>
+<A1B1> <203E>
+<A1B2> <FF3F>
+<A1B3> <30FD>
+<A1B4> <30FE>
+<A1B5> <309D>
+<A1B6> <309E>
+<A1B7> <3003>
+<A1B8> <4EDD>
+<A1B9> <3005>
+<A1BA> <3006>
+<A1BB> <3007>
+<A1BC> <30FC>
+<A1BD> <2015>
+<A1BE> <2010>
+<A1BF> <FF0F>
+<A1C0> <FF3C>
+<A1C1> <FF5E>
+<A1C2> <2016>
+<A1C3> <FF5C>
+<A1C4> <2026>
+<A1C5> <2025>
+<A1C6> <2018>
+<A1C7> <2019>
+<A1C8> <201C>
+<A1C9> <201D>
+<A1CA> <FF08>
+<A1CB> <FF09>
+<A1CC> <3014>
+<A1CD> <3015>
+<A1CE> <FF3B>
+<A1CF> <FF3D>
+<A1D0> <FF5B>
+<A1D1> <FF5D>
+<A1DC> <FF0B>
+<A1DD> <FF0D>
+<A1DE> <00B1>
+<A1DF> <00D7>
+<A1E0> <00F7>
+<A1E1> <FF1D>
+<A1E2> <2260>
+<A1E3> <FF1C>
+<A1E4> <FF1E>
+<A1E5> <2266>
+<A1E6> <2267>
+<A1E7> <221E>
+<A1E8> <2234>
+<A1E9> <2642>
+<A1EA> <2640>
+<A1EB> <00B0>
+<A1EC> <2032>
+<A1ED> <2033>
+<A1EE> <2103>
+<A1EF> <FFE5>
+<A1F0> <FF04>
+<A1F1> <00A2>
+<A1F2> <00A3>
+<A1F3> <FF05>
+<A1F4> <FF03>
+<A1F5> <FF06>
+<A1F6> <FF0A>
+<A1F7> <FF20>
+<A1F8> <00A7>
+<A1F9> <2606>
+<A1FA> <2605>
+<A1FB> <25CB>
+<A1FC> <25CF>
+<A1FD> <25CE>
+<A1FE> <25C7>
+<A2A1> <25C6>
+<A2A2> <25A1>
+<A2A3> <25A0>
+<A2A4> <25B3>
+<A2A5> <25B2>
+<A2A6> <25BD>
+<A2A7> <25BC>
+<A2A8> <203B>
+<A2A9> <3012>
+<A2AA> <2192>
+<A2AB> <2190>
+<A2AC> <2191>
+<A2AD> <2193>
+endbfchar
+
+100 beginbfchar
+<A2AE> <3013>
+<A2BA> <2208>
+<A2BB> <220B>
+<A2BC> <2286>
+<A2BD> <2287>
+<A2BE> <2282>
+<A2BF> <2283>
+<A2C0> <222A>
+<A2C1> <2229>
+<A2CA> <2227>
+<A2CB> <2228>
+<A2CC> <00AC>
+<A2CD> <21D2>
+<A2CE> <21D4>
+<A2CF> <2200>
+<A2D0> <2203>
+<A2DC> <2220>
+<A2DD> <22A5>
+<A2DE> <2312>
+<A2DF> <2202>
+<A2E0> <2207>
+<A2E1> <2261>
+<A2E2> <2252>
+<A2E3> <226A>
+<A2E4> <226B>
+<A2E5> <221A>
+<A2E6> <223D>
+<A2E7> <221D>
+<A2E8> <2235>
+<A2E9> <222B>
+<A2EA> <222C>
+<A2F2> <212B>
+<A2F3> <2030>
+<A2F4> <266F>
+<A2F5> <266D>
+<A2F6> <266A>
+<A2F7> <2020>
+<A2F8> <2021>
+<A2F9> <00B6>
+<A2FE> <25EF>
+<A7A7> <0401>
+<A7D7> <0451>
+<A8A1> <2500>
+<A8A2> <2502>
+<A8A3> <250C>
+<A8A4> <2510>
+<A8A5> <2518>
+<A8A6> <2514>
+<A8A7> <251C>
+<A8A8> <252C>
+<A8A9> <2524>
+<A8AA> <2534>
+<A8AB> <253C>
+<A8AC> <2501>
+<A8AD> <2503>
+<A8AE> <250F>
+<A8AF> <2513>
+<A8B0> <251B>
+<A8B1> <2517>
+<A8B2> <2523>
+<A8B3> <2533>
+<A8B4> <252B>
+<A8B5> <253B>
+<A8B6> <254B>
+<A8B7> <2520>
+<A8B8> <252F>
+<A8B9> <2528>
+<A8BA> <2537>
+<A8BB> <253F>
+<A8BC> <251D>
+<A8BD> <2530>
+<A8BE> <2525>
+<A8BF> <2538>
+<A8C0> <2542>
+<B0A1> <4E9C>
+<B0A2> <5516>
+<B0A3> <5A03>
+<B0A4> <963F>
+<B0A5> <54C0>
+<B0A6> <611B>
+<B0A7> <6328>
+<B0A8> <59F6>
+<B0A9> <9022>
+<B0AA> <8475>
+<B0AB> <831C>
+<B0AC> <7A50>
+<B0AD> <60AA>
+<B0AE> <63E1>
+<B0AF> <6E25>
+<B0B0> <65ED>
+<B0B1> <8466>
+<B0B2> <82A6>
+<B0B3> <9BF5>
+<B0B4> <6893>
+<B0B5> <5727>
+<B0B6> <65A1>
+<B0B7> <6271>
+<B0B8> <5B9B>
+<B0B9> <59D0>
+<B0BA> <867B>
+endbfchar
+
+100 beginbfchar
+<B0BB> <98F4>
+<B0BC> <7D62>
+<B0BD> <7DBE>
+<B0BE> <9B8E>
+<B0BF> <6216>
+<B0C0> <7C9F>
+<B0C1> <88B7>
+<B0C2> <5B89>
+<B0C3> <5EB5>
+<B0C4> <6309>
+<B0C5> <6697>
+<B0C6> <6848>
+<B0C7> <95C7>
+<B0C8> <978D>
+<B0C9> <674F>
+<B0CA> <4EE5>
+<B0CB> <4F0A>
+<B0CC> <4F4D>
+<B0CD> <4F9D>
+<B0CE> <5049>
+<B0CF> <56F2>
+<B0D0> <5937>
+<B0D1> <59D4>
+<B0D2> <5A01>
+<B0D3> <5C09>
+<B0D4> <60DF>
+<B0D5> <610F>
+<B0D6> <6170>
+<B0D7> <6613>
+<B0D8> <6905>
+<B0D9> <70BA>
+<B0DA> <754F>
+<B0DB> <7570>
+<B0DC> <79FB>
+<B0DD> <7DAD>
+<B0DE> <7DEF>
+<B0DF> <80C3>
+<B0E0> <840E>
+<B0E1> <8863>
+<B0E2> <8B02>
+<B0E3> <9055>
+<B0E4> <907A>
+<B0E5> <533B>
+<B0E6> <4E95>
+<B0E7> <4EA5>
+<B0E8> <57DF>
+<B0E9> <80B2>
+<B0EA> <90C1>
+<B0EB> <78EF>
+<B0EC> <4E00>
+<B0ED> <58F1>
+<B0EE> <6EA2>
+<B0EF> <9038>
+<B0F0> <7A32>
+<B0F1> <8328>
+<B0F2> <828B>
+<B0F3> <9C2F>
+<B0F4> <5141>
+<B0F5> <5370>
+<B0F6> <54BD>
+<B0F7> <54E1>
+<B0F8> <56E0>
+<B0F9> <59FB>
+<B0FA> <5F15>
+<B0FB> <98F2>
+<B0FC> <6DEB>
+<B0FD> <80E4>
+<B0FE> <852D>
+<B1A1> <9662>
+<B1A2> <9670>
+<B1A3> <96A0>
+<B1A4> <97FB>
+<B1A5> <540B>
+<B1A6> <53F3>
+<B1A7> <5B87>
+<B1A8> <70CF>
+<B1A9> <7FBD>
+<B1AA> <8FC2>
+<B1AB> <96E8>
+<B1AC> <536F>
+<B1AD> <9D5C>
+<B1AE> <7ABA>
+<B1AF> <4E11>
+<B1B0> <7893>
+<B1B1> <81FC>
+<B1B2> <6E26>
+<B1B3> <5618>
+<B1B4> <5504>
+<B1B5> <6B1D>
+<B1B6> <851A>
+<B1B7> <9C3B>
+<B1B8> <59E5>
+<B1B9> <53A9>
+<B1BA> <6D66>
+<B1BB> <74DC>
+<B1BC> <958F>
+<B1BD> <5642>
+<B1BE> <4E91>
+<B1BF> <904B>
+<B1C0> <96F2>
+endbfchar
+
+100 beginbfchar
+<B1C1> <834F>
+<B1C2> <990C>
+<B1C3> <53E1>
+<B1C4> <55B6>
+<B1C5> <5B30>
+<B1C6> <5F71>
+<B1C7> <6620>
+<B1C8> <66F3>
+<B1C9> <6804>
+<B1CA> <6C38>
+<B1CB> <6CF3>
+<B1CC> <6D29>
+<B1CD> <745B>
+<B1CE> <76C8>
+<B1CF> <7A4E>
+<B1D0> <9834>
+<B1D1> <82F1>
+<B1D2> <885B>
+<B1D3> <8A60>
+<B1D4> <92ED>
+<B1D5> <6DB2>
+<B1D6> <75AB>
+<B1D7> <76CA>
+<B1D8> <99C5>
+<B1D9> <60A6>
+<B1DA> <8B01>
+<B1DB> <8D8A>
+<B1DC> <95B2>
+<B1DD> <698E>
+<B1DE> <53AD>
+<B1DF> <5186>
+<B1E0> <5712>
+<B1E1> <5830>
+<B1E2> <5944>
+<B1E3> <5BB4>
+<B1E4> <5EF6>
+<B1E5> <6028>
+<B1E6> <63A9>
+<B1E7> <63F4>
+<B1E8> <6CBF>
+<B1E9> <6F14>
+<B1EA> <708E>
+<B1EB> <7114>
+<B1EC> <7159>
+<B1ED> <71D5>
+<B1EE> <733F>
+<B1EF> <7E01>
+<B1F0> <8276>
+<B1F1> <82D1>
+<B1F2> <8597>
+<B1F3> <9060>
+<B1F4> <925B>
+<B1F5> <9D1B>
+<B1F6> <5869>
+<B1F7> <65BC>
+<B1F8> <6C5A>
+<B1F9> <7525>
+<B1FA> <51F9>
+<B1FB> <592E>
+<B1FC> <5965>
+<B1FD> <5F80>
+<B1FE> <5FDC>
+<B2A1> <62BC>
+<B2A2> <65FA>
+<B2A3> <6A2A>
+<B2A4> <6B27>
+<B2A5> <6BB4>
+<B2A6> <738B>
+<B2A7> <7FC1>
+<B2A8> <8956>
+<B2A9> <9D2C>
+<B2AA> <9D0E>
+<B2AB> <9EC4>
+<B2AC> <5CA1>
+<B2AD> <6C96>
+<B2AE> <837B>
+<B2AF> <5104>
+<B2B0> <5C4B>
+<B2B1> <61B6>
+<B2B2> <81C6>
+<B2B3> <6876>
+<B2B4> <7261>
+<B2B5> <4E59>
+<B2B6> <4FFA>
+<B2B7> <5378>
+<B2B8> <6069>
+<B2B9> <6E29>
+<B2BA> <7A4F>
+<B2BB> <97F3>
+<B2BC> <4E0B>
+<B2BD> <5316>
+<B2BE> <4EEE>
+<B2BF> <4F55>
+<B2C0> <4F3D>
+<B2C1> <4FA1>
+<B2C2> <4F73>
+<B2C3> <52A0>
+<B2C4> <53EF>
+<B2C5> <5609>
+<B2C6> <590F>
+endbfchar
+
+100 beginbfchar
+<B2C7> <5AC1>
+<B2C8> <5BB6>
+<B2C9> <5BE1>
+<B2CA> <79D1>
+<B2CB> <6687>
+<B2CC> <679C>
+<B2CD> <67B6>
+<B2CE> <6B4C>
+<B2CF> <6CB3>
+<B2D0> <706B>
+<B2D1> <73C2>
+<B2D2> <798D>
+<B2D3> <79BE>
+<B2D4> <7A3C>
+<B2D5> <7B87>
+<B2D6> <82B1>
+<B2D7> <82DB>
+<B2D8> <8304>
+<B2D9> <8377>
+<B2DA> <83EF>
+<B2DB> <83D3>
+<B2DC> <8766>
+<B2DD> <8AB2>
+<B2DE> <5629>
+<B2DF> <8CA8>
+<B2E0> <8FE6>
+<B2E1> <904E>
+<B2E2> <971E>
+<B2E3> <868A>
+<B2E4> <4FC4>
+<B2E5> <5CE8>
+<B2E6> <6211>
+<B2E7> <7259>
+<B2E8> <753B>
+<B2E9> <81E5>
+<B2EA> <82BD>
+<B2EB> <86FE>
+<B2EC> <8CC0>
+<B2ED> <96C5>
+<B2EE> <9913>
+<B2EF> <99D5>
+<B2F0> <4ECB>
+<B2F1> <4F1A>
+<B2F2> <89E3>
+<B2F3> <56DE>
+<B2F4> <584A>
+<B2F5> <58CA>
+<B2F6> <5EFB>
+<B2F7> <5FEB>
+<B2F8> <602A>
+<B2F9> <6094>
+<B2FA> <6062>
+<B2FB> <61D0>
+<B2FC> <6212>
+<B2FD> <62D0>
+<B2FE> <6539>
+<B3A1> <9B41>
+<B3A2> <6666>
+<B3A3> <68B0>
+<B3A4> <6D77>
+<B3A5> <7070>
+<B3A6> <754C>
+<B3A7> <7686>
+<B3A8> <7D75>
+<B3A9> <82A5>
+<B3AA> <87F9>
+<B3AB> <958B>
+<B3AC> <968E>
+<B3AD> <8C9D>
+<B3AE> <51F1>
+<B3AF> <52BE>
+<B3B0> <5916>
+<B3B1> <54B3>
+<B3B2> <5BB3>
+<B3B3> <5D16>
+<B3B4> <6168>
+<B3B5> <6982>
+<B3B6> <6DAF>
+<B3B7> <788D>
+<B3B8> <84CB>
+<B3B9> <8857>
+<B3BA> <8A72>
+<B3BB> <93A7>
+<B3BC> <9AB8>
+<B3BD> <6D6C>
+<B3BE> <99A8>
+<B3BF> <86D9>
+<B3C0> <57A3>
+<B3C1> <67FF>
+<B3C2> <86CE>
+<B3C3> <920E>
+<B3C4> <5283>
+<B3C5> <5687>
+<B3C6> <5404>
+<B3C7> <5ED3>
+<B3C8> <62E1>
+<B3C9> <64B9>
+<B3CA> <683C>
+<B3CB> <6838>
+<B3CC> <6BBB>
+endbfchar
+
+100 beginbfchar
+<B3CD> <7372>
+<B3CE> <78BA>
+<B3CF> <7A6B>
+<B3D0> <899A>
+<B3D1> <89D2>
+<B3D2> <8D6B>
+<B3D3> <8F03>
+<B3D4> <90ED>
+<B3D5> <95A3>
+<B3D6> <9694>
+<B3D7> <9769>
+<B3D8> <5B66>
+<B3D9> <5CB3>
+<B3DA> <697D>
+<B3DB> <984D>
+<B3DC> <984E>
+<B3DD> <639B>
+<B3DE> <7B20>
+<B3DF> <6A2B>
+<B3E0> <6A7F>
+<B3E1> <68B6>
+<B3E2> <9C0D>
+<B3E3> <6F5F>
+<B3E4> <5272>
+<B3E5> <559D>
+<B3E6> <6070>
+<B3E7> <62EC>
+<B3E8> <6D3B>
+<B3E9> <6E07>
+<B3EA> <6ED1>
+<B3EB> <845B>
+<B3EC> <8910>
+<B3ED> <8F44>
+<B3EE> <4E14>
+<B3EF> <9C39>
+<B3F0> <53F6>
+<B3F1> <691B>
+<B3F2> <6A3A>
+<B3F3> <9784>
+<B3F4> <682A>
+<B3F5> <515C>
+<B3F6> <7AC3>
+<B3F7> <84B2>
+<B3F8> <91DC>
+<B3F9> <938C>
+<B3FA> <565B>
+<B3FB> <9D28>
+<B3FC> <6822>
+<B3FD> <8305>
+<B3FE> <8431>
+<B4A1> <7CA5>
+<B4A2> <5208>
+<B4A3> <82C5>
+<B4A4> <74E6>
+<B4A5> <4E7E>
+<B4A6> <4F83>
+<B4A7> <51A0>
+<B4A8> <5BD2>
+<B4A9> <520A>
+<B4AA> <52D8>
+<B4AB> <52E7>
+<B4AC> <5DFB>
+<B4AD> <559A>
+<B4AE> <582A>
+<B4AF> <59E6>
+<B4B0> <5B8C>
+<B4B1> <5B98>
+<B4B2> <5BDB>
+<B4B3> <5E72>
+<B4B4> <5E79>
+<B4B5> <60A3>
+<B4B6> <611F>
+<B4B7> <6163>
+<B4B8> <61BE>
+<B4B9> <63DB>
+<B4BA> <6562>
+<B4BB> <67D1>
+<B4BC> <6853>
+<B4BD> <68FA>
+<B4BE> <6B3E>
+<B4BF> <6B53>
+<B4C0> <6C57>
+<B4C1> <6F22>
+<B4C2> <6F97>
+<B4C3> <6F45>
+<B4C4> <74B0>
+<B4C5> <7518>
+<B4C6> <76E3>
+<B4C7> <770B>
+<B4C8> <7AFF>
+<B4C9> <7BA1>
+<B4CA> <7C21>
+<B4CB> <7DE9>
+<B4CC> <7F36>
+<B4CD> <7FF0>
+<B4CE> <809D>
+<B4CF> <8266>
+<B4D0> <839E>
+<B4D1> <89B3>
+<B4D2> <8ACC>
+endbfchar
+
+100 beginbfchar
+<B4D3> <8CAB>
+<B4D4> <9084>
+<B4D5> <9451>
+<B4D6> <9593>
+<B4D7> <9591>
+<B4D8> <95A2>
+<B4D9> <9665>
+<B4DA> <97D3>
+<B4DB> <9928>
+<B4DC> <8218>
+<B4DD> <4E38>
+<B4DE> <542B>
+<B4DF> <5CB8>
+<B4E0> <5DCC>
+<B4E1> <73A9>
+<B4E2> <764C>
+<B4E3> <773C>
+<B4E4> <5CA9>
+<B4E5> <7FEB>
+<B4E6> <8D0B>
+<B4E7> <96C1>
+<B4E8> <9811>
+<B4E9> <9854>
+<B4EA> <9858>
+<B4EB> <4F01>
+<B4EC> <4F0E>
+<B4ED> <5371>
+<B4EE> <559C>
+<B4EF> <5668>
+<B4F0> <57FA>
+<B4F1> <5947>
+<B4F2> <5B09>
+<B4F3> <5BC4>
+<B4F4> <5C90>
+<B4F5> <5E0C>
+<B4F6> <5E7E>
+<B4F7> <5FCC>
+<B4F8> <63EE>
+<B4F9> <673A>
+<B4FA> <65D7>
+<B4FB> <65E2>
+<B4FC> <671F>
+<B4FD> <68CB>
+<B4FE> <68C4>
+<B5A1> <6A5F>
+<B5A2> <5E30>
+<B5A3> <6BC5>
+<B5A4> <6C17>
+<B5A5> <6C7D>
+<B5A6> <757F>
+<B5A7> <7948>
+<B5A8> <5B63>
+<B5A9> <7A00>
+<B5AA> <7D00>
+<B5AB> <5FBD>
+<B5AC> <898F>
+<B5AD> <8A18>
+<B5AE> <8CB4>
+<B5AF> <8D77>
+<B5B0> <8ECC>
+<B5B1> <8F1D>
+<B5B2> <98E2>
+<B5B3> <9A0E>
+<B5B4> <9B3C>
+<B5B5> <4E80>
+<B5B6> <507D>
+<B5B7> <5100>
+<B5B8> <5993>
+<B5B9> <5B9C>
+<B5BA> <622F>
+<B5BB> <6280>
+<B5BC> <64EC>
+<B5BD> <6B3A>
+<B5BE> <72A0>
+<B5BF> <7591>
+<B5C0> <7947>
+<B5C1> <7FA9>
+<B5C2> <87FB>
+<B5C3> <8ABC>
+<B5C4> <8B70>
+<B5C5> <63AC>
+<B5C6> <83CA>
+<B5C7> <97A0>
+<B5C8> <5409>
+<B5C9> <5403>
+<B5CA> <55AB>
+<B5CB> <6854>
+<B5CC> <6A58>
+<B5CD> <8A70>
+<B5CE> <7827>
+<B5CF> <6775>
+<B5D0> <9ECD>
+<B5D1> <5374>
+<B5D2> <5BA2>
+<B5D3> <811A>
+<B5D4> <8650>
+<B5D5> <9006>
+<B5D6> <4E18>
+<B5D7> <4E45>
+<B5D8> <4EC7>
+endbfchar
+
+100 beginbfchar
+<B5D9> <4F11>
+<B5DA> <53CA>
+<B5DB> <5438>
+<B5DC> <5BAE>
+<B5DD> <5F13>
+<B5DE> <6025>
+<B5DF> <6551>
+<B5E0> <673D>
+<B5E1> <6C42>
+<B5E2> <6C72>
+<B5E3> <6CE3>
+<B5E4> <7078>
+<B5E5> <7403>
+<B5E6> <7A76>
+<B5E7> <7AAE>
+<B5E8> <7B08>
+<B5E9> <7D1A>
+<B5EA> <7CFE>
+<B5EB> <7D66>
+<B5EC> <65E7>
+<B5ED> <725B>
+<B5EE> <53BB>
+<B5EF> <5C45>
+<B5F0> <5DE8>
+<B5F1> <62D2>
+<B5F2> <62E0>
+<B5F3> <6319>
+<B5F4> <6E20>
+<B5F5> <865A>
+<B5F6> <8A31>
+<B5F7> <8DDD>
+<B5F8> <92F8>
+<B5F9> <6F01>
+<B5FA> <79A6>
+<B5FB> <9B5A>
+<B5FC> <4EA8>
+<B5FD> <4EAB>
+<B5FE> <4EAC>
+<B6A1> <4F9B>
+<B6A2> <4FA0>
+<B6A3> <50D1>
+<B6A4> <5147>
+<B6A5> <7AF6>
+<B6A6> <5171>
+<B6A7> <51F6>
+<B6A8> <5354>
+<B6A9> <5321>
+<B6AA> <537F>
+<B6AB> <53EB>
+<B6AC> <55AC>
+<B6AD> <5883>
+<B6AE> <5CE1>
+<B6AF> <5F37>
+<B6B0> <5F4A>
+<B6B1> <602F>
+<B6B2> <6050>
+<B6B3> <606D>
+<B6B4> <631F>
+<B6B5> <6559>
+<B6B6> <6A4B>
+<B6B7> <6CC1>
+<B6B8> <72C2>
+<B6B9> <72ED>
+<B6BA> <77EF>
+<B6BB> <80F8>
+<B6BC> <8105>
+<B6BD> <8208>
+<B6BE> <854E>
+<B6BF> <90F7>
+<B6C0> <93E1>
+<B6C1> <97FF>
+<B6C2> <9957>
+<B6C3> <9A5A>
+<B6C4> <4EF0>
+<B6C5> <51DD>
+<B6C6> <5C2D>
+<B6C7> <6681>
+<B6C8> <696D>
+<B6C9> <5C40>
+<B6CA> <66F2>
+<B6CB> <6975>
+<B6CC> <7389>
+<B6CD> <6850>
+<B6CE> <7C81>
+<B6CF> <50C5>
+<B6D0> <52E4>
+<B6D1> <5747>
+<B6D2> <5DFE>
+<B6D3> <9326>
+<B6D4> <65A4>
+<B6D5> <6B23>
+<B6D6> <6B3D>
+<B6D7> <7434>
+<B6D8> <7981>
+<B6D9> <79BD>
+<B6DA> <7B4B>
+<B6DB> <7DCA>
+<B6DC> <82B9>
+<B6DD> <83CC>
+<B6DE> <887F>
+endbfchar
+
+100 beginbfchar
+<B6DF> <895F>
+<B6E0> <8B39>
+<B6E1> <8FD1>
+<B6E2> <91D1>
+<B6E3> <541F>
+<B6E4> <9280>
+<B6E5> <4E5D>
+<B6E6> <5036>
+<B6E7> <53E5>
+<B6E8> <533A>
+<B6E9> <72D7>
+<B6EA> <7396>
+<B6EB> <77E9>
+<B6EC> <82E6>
+<B6ED> <8EAF>
+<B6EE> <99C6>
+<B6EF> <99C8>
+<B6F0> <99D2>
+<B6F1> <5177>
+<B6F2> <611A>
+<B6F3> <865E>
+<B6F4> <55B0>
+<B6F5> <7A7A>
+<B6F6> <5076>
+<B6F7> <5BD3>
+<B6F8> <9047>
+<B6F9> <9685>
+<B6FA> <4E32>
+<B6FB> <6ADB>
+<B6FC> <91E7>
+<B6FD> <5C51>
+<B6FE> <5C48>
+<B7A1> <6398>
+<B7A2> <7A9F>
+<B7A3> <6C93>
+<B7A4> <9774>
+<B7A5> <8F61>
+<B7A6> <7AAA>
+<B7A7> <718A>
+<B7A8> <9688>
+<B7A9> <7C82>
+<B7AA> <6817>
+<B7AB> <7E70>
+<B7AC> <6851>
+<B7AD> <936C>
+<B7AE> <52F2>
+<B7AF> <541B>
+<B7B0> <85AB>
+<B7B1> <8A13>
+<B7B2> <7FA4>
+<B7B3> <8ECD>
+<B7B4> <90E1>
+<B7B5> <5366>
+<B7B6> <8888>
+<B7B7> <7941>
+<B7B8> <4FC2>
+<B7B9> <50BE>
+<B7BA> <5211>
+<B7BB> <5144>
+<B7BC> <5553>
+<B7BD> <572D>
+<B7BE> <73EA>
+<B7BF> <578B>
+<B7C0> <5951>
+<B7C1> <5F62>
+<B7C2> <5F84>
+<B7C3> <6075>
+<B7C4> <6176>
+<B7C5> <6167>
+<B7C6> <61A9>
+<B7C7> <63B2>
+<B7C8> <643A>
+<B7C9> <656C>
+<B7CA> <666F>
+<B7CB> <6842>
+<B7CC> <6E13>
+<B7CD> <7566>
+<B7CE> <7A3D>
+<B7CF> <7CFB>
+<B7D0> <7D4C>
+<B7D1> <7D99>
+<B7D2> <7E4B>
+<B7D3> <7F6B>
+<B7D4> <830E>
+<B7D5> <834A>
+<B7D6> <86CD>
+<B7D7> <8A08>
+<B7D8> <8A63>
+<B7D9> <8B66>
+<B7DA> <8EFD>
+<B7DB> <981A>
+<B7DC> <9D8F>
+<B7DD> <82B8>
+<B7DE> <8FCE>
+<B7DF> <9BE8>
+<B7E0> <5287>
+<B7E1> <621F>
+<B7E2> <6483>
+<B7E3> <6FC0>
+<B7E4> <9699>
+endbfchar
+
+100 beginbfchar
+<B7E5> <6841>
+<B7E6> <5091>
+<B7E7> <6B20>
+<B7E8> <6C7A>
+<B7E9> <6F54>
+<B7EA> <7A74>
+<B7EB> <7D50>
+<B7EC> <8840>
+<B7ED> <8A23>
+<B7EE> <6708>
+<B7EF> <4EF6>
+<B7F0> <5039>
+<B7F1> <5026>
+<B7F2> <5065>
+<B7F3> <517C>
+<B7F4> <5238>
+<B7F5> <5263>
+<B7F6> <55A7>
+<B7F7> <570F>
+<B7F8> <5805>
+<B7F9> <5ACC>
+<B7FA> <5EFA>
+<B7FB> <61B2>
+<B7FC> <61F8>
+<B7FD> <62F3>
+<B7FE> <6372>
+<B8A1> <691C>
+<B8A2> <6A29>
+<B8A3> <727D>
+<B8A4> <72AC>
+<B8A5> <732E>
+<B8A6> <7814>
+<B8A7> <786F>
+<B8A8> <7D79>
+<B8A9> <770C>
+<B8AA> <80A9>
+<B8AB> <898B>
+<B8AC> <8B19>
+<B8AD> <8CE2>
+<B8AE> <8ED2>
+<B8AF> <9063>
+<B8B0> <9375>
+<B8B1> <967A>
+<B8B2> <9855>
+<B8B3> <9A13>
+<B8B4> <9E78>
+<B8B5> <5143>
+<B8B6> <539F>
+<B8B7> <53B3>
+<B8B8> <5E7B>
+<B8B9> <5F26>
+<B8BA> <6E1B>
+<B8BB> <6E90>
+<B8BC> <7384>
+<B8BD> <73FE>
+<B8BE> <7D43>
+<B8BF> <8237>
+<B8C0> <8A00>
+<B8C1> <8AFA>
+<B8C2> <9650>
+<B8C3> <4E4E>
+<B8C4> <500B>
+<B8C5> <53E4>
+<B8C6> <547C>
+<B8C7> <56FA>
+<B8C8> <59D1>
+<B8C9> <5B64>
+<B8CA> <5DF1>
+<B8CB> <5EAB>
+<B8CC> <5F27>
+<B8CD> <6238>
+<B8CE> <6545>
+<B8CF> <67AF>
+<B8D0> <6E56>
+<B8D1> <72D0>
+<B8D2> <7CCA>
+<B8D3> <88B4>
+<B8D4> <80A1>
+<B8D5> <80E1>
+<B8D6> <83F0>
+<B8D7> <864E>
+<B8D8> <8A87>
+<B8D9> <8DE8>
+<B8DA> <9237>
+<B8DB> <96C7>
+<B8DC> <9867>
+<B8DD> <9F13>
+<B8DE> <4E94>
+<B8DF> <4E92>
+<B8E0> <4F0D>
+<B8E1> <5348>
+<B8E2> <5449>
+<B8E3> <543E>
+<B8E4> <5A2F>
+<B8E5> <5F8C>
+<B8E6> <5FA1>
+<B8E7> <609F>
+<B8E8> <68A7>
+<B8E9> <6A8E>
+<B8EA> <745A>
+endbfchar
+
+100 beginbfchar
+<B8EB> <7881>
+<B8EC> <8A9E>
+<B8ED> <8AA4>
+<B8EE> <8B77>
+<B8EF> <9190>
+<B8F0> <4E5E>
+<B8F1> <9BC9>
+<B8F2> <4EA4>
+<B8F3> <4F7C>
+<B8F4> <4FAF>
+<B8F5> <5019>
+<B8F6> <5016>
+<B8F7> <5149>
+<B8F8> <516C>
+<B8F9> <529F>
+<B8FA> <52B9>
+<B8FB> <52FE>
+<B8FC> <539A>
+<B8FD> <53E3>
+<B8FE> <5411>
+<B9A1> <540E>
+<B9A2> <5589>
+<B9A3> <5751>
+<B9A4> <57A2>
+<B9A5> <597D>
+<B9A6> <5B54>
+<B9A7> <5B5D>
+<B9A8> <5B8F>
+<B9A9> <5DE5>
+<B9AA> <5DE7>
+<B9AB> <5DF7>
+<B9AC> <5E78>
+<B9AD> <5E83>
+<B9AE> <5E9A>
+<B9AF> <5EB7>
+<B9B0> <5F18>
+<B9B1> <6052>
+<B9B2> <614C>
+<B9B3> <6297>
+<B9B4> <62D8>
+<B9B5> <63A7>
+<B9B6> <653B>
+<B9B7> <6602>
+<B9B8> <6643>
+<B9B9> <66F4>
+<B9BA> <676D>
+<B9BB> <6821>
+<B9BC> <6897>
+<B9BD> <69CB>
+<B9BE> <6C5F>
+<B9BF> <6D2A>
+<B9C0> <6D69>
+<B9C1> <6E2F>
+<B9C2> <6E9D>
+<B9C3> <7532>
+<B9C4> <7687>
+<B9C5> <786C>
+<B9C6> <7A3F>
+<B9C7> <7CE0>
+<B9C8> <7D05>
+<B9C9> <7D18>
+<B9CA> <7D5E>
+<B9CB> <7DB1>
+<B9CC> <8015>
+<B9CD> <8003>
+<B9CE> <80AF>
+<B9CF> <80B1>
+<B9D0> <8154>
+<B9D1> <818F>
+<B9D2> <822A>
+<B9D3> <8352>
+<B9D4> <884C>
+<B9D5> <8861>
+<B9D6> <8B1B>
+<B9D7> <8CA2>
+<B9D8> <8CFC>
+<B9D9> <90CA>
+<B9DA> <9175>
+<B9DB> <9271>
+<B9DC> <783F>
+<B9DD> <92FC>
+<B9DE> <95A4>
+<B9DF> <964D>
+<B9E0> <9805>
+<B9E1> <9999>
+<B9E2> <9AD8>
+<B9E3> <9D3B>
+<B9E4> <525B>
+<B9E5> <52AB>
+<B9E6> <53F7>
+<B9E7> <5408>
+<B9E8> <58D5>
+<B9E9> <62F7>
+<B9EA> <6FE0>
+<B9EB> <8C6A>
+<B9EC> <8F5F>
+<B9ED> <9EB9>
+<B9EE> <514B>
+<B9EF> <523B>
+<B9F0> <544A>
+endbfchar
+
+100 beginbfchar
+<B9F1> <56FD>
+<B9F2> <7A40>
+<B9F3> <9177>
+<B9F4> <9D60>
+<B9F5> <9ED2>
+<B9F6> <7344>
+<B9F7> <6F09>
+<B9F8> <8170>
+<B9F9> <7511>
+<B9FA> <5FFD>
+<B9FB> <60DA>
+<B9FC> <9AA8>
+<B9FD> <72DB>
+<B9FE> <8FBC>
+<BAA1> <6B64>
+<BAA2> <9803>
+<BAA3> <4ECA>
+<BAA4> <56F0>
+<BAA5> <5764>
+<BAA6> <58BE>
+<BAA7> <5A5A>
+<BAA8> <6068>
+<BAA9> <61C7>
+<BAAA> <660F>
+<BAAB> <6606>
+<BAAC> <6839>
+<BAAD> <68B1>
+<BAAE> <6DF7>
+<BAAF> <75D5>
+<BAB0> <7D3A>
+<BAB1> <826E>
+<BAB2> <9B42>
+<BAB3> <4E9B>
+<BAB4> <4F50>
+<BAB5> <53C9>
+<BAB6> <5506>
+<BAB7> <5D6F>
+<BAB8> <5DE6>
+<BAB9> <5DEE>
+<BABA> <67FB>
+<BABB> <6C99>
+<BABC> <7473>
+<BABD> <7802>
+<BABE> <8A50>
+<BABF> <9396>
+<BAC0> <88DF>
+<BAC1> <5750>
+<BAC2> <5EA7>
+<BAC3> <632B>
+<BAC4> <50B5>
+<BAC5> <50AC>
+<BAC6> <518D>
+<BAC7> <6700>
+<BAC8> <54C9>
+<BAC9> <585E>
+<BACA> <59BB>
+<BACB> <5BB0>
+<BACC> <5F69>
+<BACD> <624D>
+<BACE> <63A1>
+<BACF> <683D>
+<BAD0> <6B73>
+<BAD1> <6E08>
+<BAD2> <707D>
+<BAD3> <91C7>
+<BAD4> <7280>
+<BAD5> <7815>
+<BAD6> <7826>
+<BAD7> <796D>
+<BAD8> <658E>
+<BAD9> <7D30>
+<BADA> <83DC>
+<BADB> <88C1>
+<BADC> <8F09>
+<BADD> <969B>
+<BADE> <5264>
+<BADF> <5728>
+<BAE0> <6750>
+<BAE1> <7F6A>
+<BAE2> <8CA1>
+<BAE3> <51B4>
+<BAE4> <5742>
+<BAE5> <962A>
+<BAE6> <583A>
+<BAE7> <698A>
+<BAE8> <80B4>
+<BAE9> <54B2>
+<BAEA> <5D0E>
+<BAEB> <57FC>
+<BAEC> <7895>
+<BAED> <9DFA>
+<BAEE> <4F5C>
+<BAEF> <524A>
+<BAF0> <548B>
+<BAF1> <643E>
+<BAF2> <6628>
+<BAF3> <6714>
+<BAF4> <67F5>
+<BAF5> <7A84>
+<BAF6> <7B56>
+endbfchar
+
+100 beginbfchar
+<BAF7> <7D22>
+<BAF8> <932F>
+<BAF9> <685C>
+<BAFA> <9BAD>
+<BAFB> <7B39>
+<BAFC> <5319>
+<BAFD> <518A>
+<BAFE> <5237>
+<BBA1> <5BDF>
+<BBA2> <62F6>
+<BBA3> <64AE>
+<BBA4> <64E6>
+<BBA5> <672D>
+<BBA6> <6BBA>
+<BBA7> <85A9>
+<BBA8> <96D1>
+<BBA9> <7690>
+<BBAA> <9BD6>
+<BBAB> <634C>
+<BBAC> <9306>
+<BBAD> <9BAB>
+<BBAE> <76BF>
+<BBAF> <6652>
+<BBB0> <4E09>
+<BBB1> <5098>
+<BBB2> <53C2>
+<BBB3> <5C71>
+<BBB4> <60E8>
+<BBB5> <6492>
+<BBB6> <6563>
+<BBB7> <685F>
+<BBB8> <71E6>
+<BBB9> <73CA>
+<BBBA> <7523>
+<BBBB> <7B97>
+<BBBC> <7E82>
+<BBBD> <8695>
+<BBBE> <8B83>
+<BBBF> <8CDB>
+<BBC0> <9178>
+<BBC1> <9910>
+<BBC2> <65AC>
+<BBC3> <66AB>
+<BBC4> <6B8B>
+<BBC5> <4ED5>
+<BBC6> <4ED4>
+<BBC7> <4F3A>
+<BBC8> <4F7F>
+<BBC9> <523A>
+<BBCA> <53F8>
+<BBCB> <53F2>
+<BBCC> <55E3>
+<BBCD> <56DB>
+<BBCE> <58EB>
+<BBCF> <59CB>
+<BBD0> <59C9>
+<BBD1> <59FF>
+<BBD2> <5B50>
+<BBD3> <5C4D>
+<BBD4> <5E02>
+<BBD5> <5E2B>
+<BBD6> <5FD7>
+<BBD7> <601D>
+<BBD8> <6307>
+<BBD9> <652F>
+<BBDA> <5B5C>
+<BBDB> <65AF>
+<BBDC> <65BD>
+<BBDD> <65E8>
+<BBDE> <679D>
+<BBDF> <6B62>
+<BBE0> <6B7B>
+<BBE1> <6C0F>
+<BBE2> <7345>
+<BBE3> <7949>
+<BBE4> <79C1>
+<BBE5> <7CF8>
+<BBE6> <7D19>
+<BBE7> <7D2B>
+<BBE8> <80A2>
+<BBE9> <8102>
+<BBEA> <81F3>
+<BBEB> <8996>
+<BBEC> <8A5E>
+<BBED> <8A69>
+<BBEE> <8A66>
+<BBEF> <8A8C>
+<BBF0> <8AEE>
+<BBF1> <8CC7>
+<BBF2> <8CDC>
+<BBF3> <96CC>
+<BBF4> <98FC>
+<BBF5> <6B6F>
+<BBF6> <4E8B>
+<BBF7> <4F3C>
+<BBF8> <4F8D>
+<BBF9> <5150>
+<BBFA> <5B57>
+<BBFB> <5BFA>
+<BBFC> <6148>
+endbfchar
+
+100 beginbfchar
+<BBFD> <6301>
+<BBFE> <6642>
+<BCA1> <6B21>
+<BCA2> <6ECB>
+<BCA3> <6CBB>
+<BCA4> <723E>
+<BCA5> <74BD>
+<BCA6> <75D4>
+<BCA7> <78C1>
+<BCA8> <793A>
+<BCA9> <800C>
+<BCAA> <8033>
+<BCAB> <81EA>
+<BCAC> <8494>
+<BCAD> <8F9E>
+<BCAE> <6C50>
+<BCAF> <9E7F>
+<BCB0> <5F0F>
+<BCB1> <8B58>
+<BCB2> <9D2B>
+<BCB3> <7AFA>
+<BCB4> <8EF8>
+<BCB5> <5B8D>
+<BCB6> <96EB>
+<BCB7> <4E03>
+<BCB8> <53F1>
+<BCB9> <57F7>
+<BCBA> <5931>
+<BCBB> <5AC9>
+<BCBC> <5BA4>
+<BCBD> <6089>
+<BCBE> <6E7F>
+<BCBF> <6F06>
+<BCC0> <75BE>
+<BCC1> <8CEA>
+<BCC2> <5B9F>
+<BCC3> <8500>
+<BCC4> <7BE0>
+<BCC5> <5072>
+<BCC6> <67F4>
+<BCC7> <829D>
+<BCC8> <5C61>
+<BCC9> <854A>
+<BCCA> <7E1E>
+<BCCB> <820E>
+<BCCC> <5199>
+<BCCD> <5C04>
+<BCCE> <6368>
+<BCCF> <8D66>
+<BCD0> <659C>
+<BCD1> <716E>
+<BCD2> <793E>
+<BCD3> <7D17>
+<BCD4> <8005>
+<BCD5> <8B1D>
+<BCD6> <8ECA>
+<BCD7> <906E>
+<BCD8> <86C7>
+<BCD9> <90AA>
+<BCDA> <501F>
+<BCDB> <52FA>
+<BCDC> <5C3A>
+<BCDD> <6753>
+<BCDE> <707C>
+<BCDF> <7235>
+<BCE0> <914C>
+<BCE1> <91C8>
+<BCE2> <932B>
+<BCE3> <82E5>
+<BCE4> <5BC2>
+<BCE5> <5F31>
+<BCE6> <60F9>
+<BCE7> <4E3B>
+<BCE8> <53D6>
+<BCE9> <5B88>
+<BCEA> <624B>
+<BCEB> <6731>
+<BCEC> <6B8A>
+<BCED> <72E9>
+<BCEE> <73E0>
+<BCEF> <7A2E>
+<BCF0> <816B>
+<BCF1> <8DA3>
+<BCF2> <9152>
+<BCF3> <9996>
+<BCF4> <5112>
+<BCF5> <53D7>
+<BCF6> <546A>
+<BCF7> <5BFF>
+<BCF8> <6388>
+<BCF9> <6A39>
+<BCFA> <7DAC>
+<BCFB> <9700>
+<BCFC> <56DA>
+<BCFD> <53CE>
+<BCFE> <5468>
+<BDA1> <5B97>
+<BDA2> <5C31>
+<BDA3> <5DDE>
+<BDA4> <4FEE>
+endbfchar
+
+100 beginbfchar
+<BDA5> <6101>
+<BDA6> <62FE>
+<BDA7> <6D32>
+<BDA8> <79C0>
+<BDA9> <79CB>
+<BDAA> <7D42>
+<BDAB> <7E4D>
+<BDAC> <7FD2>
+<BDAD> <81ED>
+<BDAE> <821F>
+<BDAF> <8490>
+<BDB0> <8846>
+<BDB1> <8972>
+<BDB2> <8B90>
+<BDB3> <8E74>
+<BDB4> <8F2F>
+<BDB5> <9031>
+<BDB6> <914B>
+<BDB7> <916C>
+<BDB8> <96C6>
+<BDB9> <919C>
+<BDBA> <4EC0>
+<BDBB> <4F4F>
+<BDBC> <5145>
+<BDBD> <5341>
+<BDBE> <5F93>
+<BDBF> <620E>
+<BDC0> <67D4>
+<BDC1> <6C41>
+<BDC2> <6E0B>
+<BDC3> <7363>
+<BDC4> <7E26>
+<BDC5> <91CD>
+<BDC6> <9283>
+<BDC7> <53D4>
+<BDC8> <5919>
+<BDC9> <5BBF>
+<BDCA> <6DD1>
+<BDCB> <795D>
+<BDCC> <7E2E>
+<BDCD> <7C9B>
+<BDCE> <587E>
+<BDCF> <719F>
+<BDD0> <51FA>
+<BDD1> <8853>
+<BDD2> <8FF0>
+<BDD3> <4FCA>
+<BDD4> <5CFB>
+<BDD5> <6625>
+<BDD6> <77AC>
+<BDD7> <7AE3>
+<BDD8> <821C>
+<BDD9> <99FF>
+<BDDA> <51C6>
+<BDDB> <5FAA>
+<BDDC> <65EC>
+<BDDD> <696F>
+<BDDE> <6B89>
+<BDDF> <6DF3>
+<BDE0> <6E96>
+<BDE1> <6F64>
+<BDE2> <76FE>
+<BDE3> <7D14>
+<BDE4> <5DE1>
+<BDE5> <9075>
+<BDE6> <9187>
+<BDE7> <9806>
+<BDE8> <51E6>
+<BDE9> <521D>
+<BDEA> <6240>
+<BDEB> <6691>
+<BDEC> <66D9>
+<BDED> <6E1A>
+<BDEE> <5EB6>
+<BDEF> <7DD2>
+<BDF0> <7F72>
+<BDF1> <66F8>
+<BDF2> <85AF>
+<BDF3> <85F7>
+<BDF4> <8AF8>
+<BDF5> <52A9>
+<BDF6> <53D9>
+<BDF7> <5973>
+<BDF8> <5E8F>
+<BDF9> <5F90>
+<BDFA> <6055>
+<BDFB> <92E4>
+<BDFC> <9664>
+<BDFD> <50B7>
+<BDFE> <511F>
+<BEA1> <52DD>
+<BEA2> <5320>
+<BEA3> <5347>
+<BEA4> <53EC>
+<BEA5> <54E8>
+<BEA6> <5546>
+<BEA7> <5531>
+<BEA8> <5617>
+<BEA9> <5968>
+<BEAA> <59BE>
+endbfchar
+
+100 beginbfchar
+<BEAB> <5A3C>
+<BEAC> <5BB5>
+<BEAD> <5C06>
+<BEAE> <5C0F>
+<BEAF> <5C11>
+<BEB0> <5C1A>
+<BEB1> <5E84>
+<BEB2> <5E8A>
+<BEB3> <5EE0>
+<BEB4> <5F70>
+<BEB5> <627F>
+<BEB6> <6284>
+<BEB7> <62DB>
+<BEB8> <638C>
+<BEB9> <6377>
+<BEBA> <6607>
+<BEBB> <660C>
+<BEBC> <662D>
+<BEBD> <6676>
+<BEBE> <677E>
+<BEBF> <68A2>
+<BEC0> <6A1F>
+<BEC1> <6A35>
+<BEC2> <6CBC>
+<BEC3> <6D88>
+<BEC4> <6E09>
+<BEC5> <6E58>
+<BEC6> <713C>
+<BEC7> <7126>
+<BEC8> <7167>
+<BEC9> <75C7>
+<BECA> <7701>
+<BECB> <785D>
+<BECC> <7901>
+<BECD> <7965>
+<BECE> <79F0>
+<BECF> <7AE0>
+<BED0> <7B11>
+<BED1> <7CA7>
+<BED2> <7D39>
+<BED3> <8096>
+<BED4> <83D6>
+<BED5> <848B>
+<BED6> <8549>
+<BED7> <885D>
+<BED8> <88F3>
+<BED9> <8A1F>
+<BEDA> <8A3C>
+<BEDB> <8A54>
+<BEDC> <8A73>
+<BEDD> <8C61>
+<BEDE> <8CDE>
+<BEDF> <91A4>
+<BEE0> <9266>
+<BEE1> <937E>
+<BEE2> <9418>
+<BEE3> <969C>
+<BEE4> <9798>
+<BEE5> <4E0A>
+<BEE6> <4E08>
+<BEE7> <4E1E>
+<BEE8> <4E57>
+<BEE9> <5197>
+<BEEA> <5270>
+<BEEB> <57CE>
+<BEEC> <5834>
+<BEED> <58CC>
+<BEEE> <5B22>
+<BEEF> <5E38>
+<BEF0> <60C5>
+<BEF1> <64FE>
+<BEF2> <6761>
+<BEF3> <6756>
+<BEF4> <6D44>
+<BEF5> <72B6>
+<BEF6> <7573>
+<BEF7> <7A63>
+<BEF8> <84B8>
+<BEF9> <8B72>
+<BEFA> <91B8>
+<BEFB> <9320>
+<BEFC> <5631>
+<BEFD> <57F4>
+<BEFE> <98FE>
+<BFA1> <62ED>
+<BFA2> <690D>
+<BFA3> <6B96>
+<BFA4> <71ED>
+<BFA5> <7E54>
+<BFA6> <8077>
+<BFA7> <8272>
+<BFA8> <89E6>
+<BFA9> <98DF>
+<BFAA> <8755>
+<BFAB> <8FB1>
+<BFAC> <5C3B>
+<BFAD> <4F38>
+<BFAE> <4FE1>
+<BFAF> <4FB5>
+<BFB0> <5507>
+endbfchar
+
+100 beginbfchar
+<BFB1> <5A20>
+<BFB2> <5BDD>
+<BFB3> <5BE9>
+<BFB4> <5FC3>
+<BFB5> <614E>
+<BFB6> <632F>
+<BFB7> <65B0>
+<BFB8> <664B>
+<BFB9> <68EE>
+<BFBA> <699B>
+<BFBB> <6D78>
+<BFBC> <6DF1>
+<BFBD> <7533>
+<BFBE> <75B9>
+<BFBF> <771F>
+<BFC0> <795E>
+<BFC1> <79E6>
+<BFC2> <7D33>
+<BFC3> <81E3>
+<BFC4> <82AF>
+<BFC5> <85AA>
+<BFC6> <89AA>
+<BFC7> <8A3A>
+<BFC8> <8EAB>
+<BFC9> <8F9B>
+<BFCA> <9032>
+<BFCB> <91DD>
+<BFCC> <9707>
+<BFCD> <4EBA>
+<BFCE> <4EC1>
+<BFCF> <5203>
+<BFD0> <5875>
+<BFD1> <58EC>
+<BFD2> <5C0B>
+<BFD3> <751A>
+<BFD4> <5C3D>
+<BFD5> <814E>
+<BFD6> <8A0A>
+<BFD7> <8FC5>
+<BFD8> <9663>
+<BFD9> <976D>
+<BFDA> <7B25>
+<BFDB> <8ACF>
+<BFDC> <9808>
+<BFDD> <9162>
+<BFDE> <56F3>
+<BFDF> <53A8>
+<BFE0> <9017>
+<BFE1> <5439>
+<BFE2> <5782>
+<BFE3> <5E25>
+<BFE4> <63A8>
+<BFE5> <6C34>
+<BFE6> <708A>
+<BFE7> <7761>
+<BFE8> <7C8B>
+<BFE9> <7FE0>
+<BFEA> <8870>
+<BFEB> <9042>
+<BFEC> <9154>
+<BFED> <9310>
+<BFEE> <9318>
+<BFEF> <968F>
+<BFF0> <745E>
+<BFF1> <9AC4>
+<BFF2> <5D07>
+<BFF3> <5D69>
+<BFF4> <6570>
+<BFF5> <67A2>
+<BFF6> <8DA8>
+<BFF7> <96DB>
+<BFF8> <636E>
+<BFF9> <6749>
+<BFFA> <6919>
+<BFFB> <83C5>
+<BFFC> <9817>
+<BFFD> <96C0>
+<BFFE> <88FE>
+<C0A1> <6F84>
+<C0A2> <647A>
+<C0A3> <5BF8>
+<C0A4> <4E16>
+<C0A5> <702C>
+<C0A6> <755D>
+<C0A7> <662F>
+<C0A8> <51C4>
+<C0A9> <5236>
+<C0AA> <52E2>
+<C0AB> <59D3>
+<C0AC> <5F81>
+<C0AD> <6027>
+<C0AE> <6210>
+<C0AF> <653F>
+<C0B0> <6574>
+<C0B1> <661F>
+<C0B2> <6674>
+<C0B3> <68F2>
+<C0B4> <6816>
+<C0B5> <6B63>
+<C0B6> <6E05>
+endbfchar
+
+100 beginbfchar
+<C0B7> <7272>
+<C0B8> <751F>
+<C0B9> <76DB>
+<C0BA> <7CBE>
+<C0BB> <8056>
+<C0BC> <58F0>
+<C0BD> <88FD>
+<C0BE> <897F>
+<C0BF> <8AA0>
+<C0C0> <8A93>
+<C0C1> <8ACB>
+<C0C2> <901D>
+<C0C3> <9192>
+<C0C4> <9752>
+<C0C5> <9759>
+<C0C6> <6589>
+<C0C7> <7A0E>
+<C0C8> <8106>
+<C0C9> <96BB>
+<C0CA> <5E2D>
+<C0CB> <60DC>
+<C0CC> <621A>
+<C0CD> <65A5>
+<C0CE> <6614>
+<C0CF> <6790>
+<C0D0> <77F3>
+<C0D1> <7A4D>
+<C0D2> <7C4D>
+<C0D3> <7E3E>
+<C0D4> <810A>
+<C0D5> <8CAC>
+<C0D6> <8D64>
+<C0D7> <8DE1>
+<C0D8> <8E5F>
+<C0D9> <78A9>
+<C0DA> <5207>
+<C0DB> <62D9>
+<C0DC> <63A5>
+<C0DD> <6442>
+<C0DE> <6298>
+<C0DF> <8A2D>
+<C0E0> <7A83>
+<C0E1> <7BC0>
+<C0E2> <8AAC>
+<C0E3> <96EA>
+<C0E4> <7D76>
+<C0E5> <820C>
+<C0E6> <8749>
+<C0E7> <4ED9>
+<C0E8> <5148>
+<C0E9> <5343>
+<C0EA> <5360>
+<C0EB> <5BA3>
+<C0EC> <5C02>
+<C0ED> <5C16>
+<C0EE> <5DDD>
+<C0EF> <6226>
+<C0F0> <6247>
+<C0F1> <64B0>
+<C0F2> <6813>
+<C0F3> <6834>
+<C0F4> <6CC9>
+<C0F5> <6D45>
+<C0F6> <6D17>
+<C0F7> <67D3>
+<C0F8> <6F5C>
+<C0F9> <714E>
+<C0FA> <717D>
+<C0FB> <65CB>
+<C0FC> <7A7F>
+<C0FD> <7BAD>
+<C0FE> <7DDA>
+<C1A1> <7E4A>
+<C1A2> <7FA8>
+<C1A3> <817A>
+<C1A4> <821B>
+<C1A5> <8239>
+<C1A6> <85A6>
+<C1A7> <8A6E>
+<C1A8> <8CCE>
+<C1A9> <8DF5>
+<C1AA> <9078>
+<C1AB> <9077>
+<C1AC> <92AD>
+<C1AD> <9291>
+<C1AE> <9583>
+<C1AF> <9BAE>
+<C1B0> <524D>
+<C1B1> <5584>
+<C1B2> <6F38>
+<C1B3> <7136>
+<C1B4> <5168>
+<C1B5> <7985>
+<C1B6> <7E55>
+<C1B7> <81B3>
+<C1B8> <7CCE>
+<C1B9> <564C>
+<C1BA> <5851>
+<C1BB> <5CA8>
+<C1BC> <63AA>
+endbfchar
+
+100 beginbfchar
+<C1BD> <66FE>
+<C1BE> <66FD>
+<C1BF> <695A>
+<C1C0> <72D9>
+<C1C1> <758F>
+<C1C2> <758E>
+<C1C3> <790E>
+<C1C4> <7956>
+<C1C5> <79DF>
+<C1C6> <7C97>
+<C1C7> <7D20>
+<C1C8> <7D44>
+<C1C9> <8607>
+<C1CA> <8A34>
+<C1CB> <963B>
+<C1CC> <9061>
+<C1CD> <9F20>
+<C1CE> <50E7>
+<C1CF> <5275>
+<C1D0> <53CC>
+<C1D1> <53E2>
+<C1D2> <5009>
+<C1D3> <55AA>
+<C1D4> <58EE>
+<C1D5> <594F>
+<C1D6> <723D>
+<C1D7> <5B8B>
+<C1D8> <5C64>
+<C1D9> <531D>
+<C1DA> <60E3>
+<C1DB> <60F3>
+<C1DC> <635C>
+<C1DD> <6383>
+<C1DE> <633F>
+<C1DF> <63BB>
+<C1E0> <64CD>
+<C1E1> <65E9>
+<C1E2> <66F9>
+<C1E3> <5DE3>
+<C1E4> <69CD>
+<C1E5> <69FD>
+<C1E6> <6F15>
+<C1E7> <71E5>
+<C1E8> <4E89>
+<C1E9> <75E9>
+<C1EA> <76F8>
+<C1EB> <7A93>
+<C1EC> <7CDF>
+<C1ED> <7DCF>
+<C1EE> <7D9C>
+<C1EF> <8061>
+<C1F0> <8349>
+<C1F1> <8358>
+<C1F2> <846C>
+<C1F3> <84BC>
+<C1F4> <85FB>
+<C1F5> <88C5>
+<C1F6> <8D70>
+<C1F7> <9001>
+<C1F8> <906D>
+<C1F9> <9397>
+<C1FA> <971C>
+<C1FB> <9A12>
+<C1FC> <50CF>
+<C1FD> <5897>
+<C1FE> <618E>
+<C2A1> <81D3>
+<C2A2> <8535>
+<C2A3> <8D08>
+<C2A4> <9020>
+<C2A5> <4FC3>
+<C2A6> <5074>
+<C2A7> <5247>
+<C2A8> <5373>
+<C2A9> <606F>
+<C2AA> <6349>
+<C2AB> <675F>
+<C2AC> <6E2C>
+<C2AD> <8DB3>
+<C2AE> <901F>
+<C2AF> <4FD7>
+<C2B0> <5C5E>
+<C2B1> <8CCA>
+<C2B2> <65CF>
+<C2B3> <7D9A>
+<C2B4> <5352>
+<C2B5> <8896>
+<C2B6> <5176>
+<C2B7> <63C3>
+<C2B8> <5B58>
+<C2B9> <5B6B>
+<C2BA> <5C0A>
+<C2BB> <640D>
+<C2BC> <6751>
+<C2BD> <905C>
+<C2BE> <4ED6>
+<C2BF> <591A>
+<C2C0> <592A>
+<C2C1> <6C70>
+<C2C2> <8A51>
+endbfchar
+
+100 beginbfchar
+<C2C3> <553E>
+<C2C4> <5815>
+<C2C5> <59A5>
+<C2C6> <60F0>
+<C2C7> <6253>
+<C2C8> <67C1>
+<C2C9> <8235>
+<C2CA> <6955>
+<C2CB> <9640>
+<C2CC> <99C4>
+<C2CD> <9A28>
+<C2CE> <4F53>
+<C2CF> <5806>
+<C2D0> <5BFE>
+<C2D1> <8010>
+<C2D2> <5CB1>
+<C2D3> <5E2F>
+<C2D4> <5F85>
+<C2D5> <6020>
+<C2D6> <614B>
+<C2D7> <6234>
+<C2D8> <66FF>
+<C2D9> <6CF0>
+<C2DA> <6EDE>
+<C2DB> <80CE>
+<C2DC> <817F>
+<C2DD> <82D4>
+<C2DE> <888B>
+<C2DF> <8CB8>
+<C2E0> <9000>
+<C2E1> <902E>
+<C2E2> <968A>
+<C2E3> <9EDB>
+<C2E4> <9BDB>
+<C2E5> <4EE3>
+<C2E6> <53F0>
+<C2E7> <5927>
+<C2E8> <7B2C>
+<C2E9> <918D>
+<C2EA> <984C>
+<C2EB> <9DF9>
+<C2EC> <6EDD>
+<C2ED> <7027>
+<C2EE> <5353>
+<C2EF> <5544>
+<C2F0> <5B85>
+<C2F1> <6258>
+<C2F2> <629E>
+<C2F3> <62D3>
+<C2F4> <6CA2>
+<C2F5> <6FEF>
+<C2F6> <7422>
+<C2F7> <8A17>
+<C2F8> <9438>
+<C2F9> <6FC1>
+<C2FA> <8AFE>
+<C2FB> <8338>
+<C2FC> <51E7>
+<C2FD> <86F8>
+<C2FE> <53EA>
+<C3A1> <53E9>
+<C3A2> <4F46>
+<C3A3> <9054>
+<C3A4> <8FB0>
+<C3A5> <596A>
+<C3A6> <8131>
+<C3A7> <5DFD>
+<C3A8> <7AEA>
+<C3A9> <8FBF>
+<C3AA> <68DA>
+<C3AB> <8C37>
+<C3AC> <72F8>
+<C3AD> <9C48>
+<C3AE> <6A3D>
+<C3AF> <8AB0>
+<C3B0> <4E39>
+<C3B1> <5358>
+<C3B2> <5606>
+<C3B3> <5766>
+<C3B4> <62C5>
+<C3B5> <63A2>
+<C3B6> <65E6>
+<C3B7> <6B4E>
+<C3B8> <6DE1>
+<C3B9> <6E5B>
+<C3BA> <70AD>
+<C3BB> <77ED>
+<C3BC> <7AEF>
+<C3BD> <7BAA>
+<C3BE> <7DBB>
+<C3BF> <803D>
+<C3C0> <80C6>
+<C3C1> <86CB>
+<C3C2> <8A95>
+<C3C3> <935B>
+<C3C4> <56E3>
+<C3C5> <58C7>
+<C3C6> <5F3E>
+<C3C7> <65AD>
+<C3C8> <6696>
+endbfchar
+
+100 beginbfchar
+<C3C9> <6A80>
+<C3CA> <6BB5>
+<C3CB> <7537>
+<C3CC> <8AC7>
+<C3CD> <5024>
+<C3CE> <77E5>
+<C3CF> <5730>
+<C3D0> <5F1B>
+<C3D1> <6065>
+<C3D2> <667A>
+<C3D3> <6C60>
+<C3D4> <75F4>
+<C3D5> <7A1A>
+<C3D6> <7F6E>
+<C3D7> <81F4>
+<C3D8> <8718>
+<C3D9> <9045>
+<C3DA> <99B3>
+<C3DB> <7BC9>
+<C3DC> <755C>
+<C3DD> <7AF9>
+<C3DE> <7B51>
+<C3DF> <84C4>
+<C3E0> <9010>
+<C3E1> <79E9>
+<C3E2> <7A92>
+<C3E3> <8336>
+<C3E4> <5AE1>
+<C3E5> <7740>
+<C3E6> <4E2D>
+<C3E7> <4EF2>
+<C3E8> <5B99>
+<C3E9> <5FE0>
+<C3EA> <62BD>
+<C3EB> <663C>
+<C3EC> <67F1>
+<C3ED> <6CE8>
+<C3EE> <866B>
+<C3EF> <8877>
+<C3F0> <8A3B>
+<C3F1> <914E>
+<C3F2> <92F3>
+<C3F3> <99D0>
+<C3F4> <6A17>
+<C3F5> <7026>
+<C3F6> <732A>
+<C3F7> <82E7>
+<C3F8> <8457>
+<C3F9> <8CAF>
+<C3FA> <4E01>
+<C3FB> <5146>
+<C3FC> <51CB>
+<C3FD> <558B>
+<C3FE> <5BF5>
+<C4A1> <5E16>
+<C4A2> <5E33>
+<C4A3> <5E81>
+<C4A4> <5F14>
+<C4A5> <5F35>
+<C4A6> <5F6B>
+<C4A7> <5FB4>
+<C4A8> <61F2>
+<C4A9> <6311>
+<C4AA> <66A2>
+<C4AB> <671D>
+<C4AC> <6F6E>
+<C4AD> <7252>
+<C4AE> <753A>
+<C4AF> <773A>
+<C4B0> <8074>
+<C4B1> <8139>
+<C4B2> <8178>
+<C4B3> <8776>
+<C4B4> <8ABF>
+<C4B5> <8ADC>
+<C4B6> <8D85>
+<C4B7> <8DF3>
+<C4B8> <929A>
+<C4B9> <9577>
+<C4BA> <9802>
+<C4BB> <9CE5>
+<C4BC> <52C5>
+<C4BD> <6357>
+<C4BE> <76F4>
+<C4BF> <6715>
+<C4C0> <6C88>
+<C4C1> <73CD>
+<C4C2> <8CC3>
+<C4C3> <93AE>
+<C4C4> <9673>
+<C4C5> <6D25>
+<C4C6> <589C>
+<C4C7> <690E>
+<C4C8> <69CC>
+<C4C9> <8FFD>
+<C4CA> <939A>
+<C4CB> <75DB>
+<C4CC> <901A>
+<C4CD> <585A>
+<C4CE> <6802>
+endbfchar
+
+100 beginbfchar
+<C4CF> <63B4>
+<C4D0> <69FB>
+<C4D1> <4F43>
+<C4D2> <6F2C>
+<C4D3> <67D8>
+<C4D4> <8FBB>
+<C4D5> <8526>
+<C4D6> <7DB4>
+<C4D7> <9354>
+<C4D8> <693F>
+<C4D9> <6F70>
+<C4DA> <576A>
+<C4DB> <58F7>
+<C4DC> <5B2C>
+<C4DD> <7D2C>
+<C4DE> <722A>
+<C4DF> <540A>
+<C4E0> <91E3>
+<C4E1> <9DB4>
+<C4E2> <4EAD>
+<C4E3> <4F4E>
+<C4E4> <505C>
+<C4E5> <5075>
+<C4E6> <5243>
+<C4E7> <8C9E>
+<C4E8> <5448>
+<C4E9> <5824>
+<C4EA> <5B9A>
+<C4EB> <5E1D>
+<C4EC> <5E95>
+<C4ED> <5EAD>
+<C4EE> <5EF7>
+<C4EF> <5F1F>
+<C4F0> <608C>
+<C4F1> <62B5>
+<C4F2> <633A>
+<C4F3> <63D0>
+<C4F4> <68AF>
+<C4F5> <6C40>
+<C4F6> <7887>
+<C4F7> <798E>
+<C4F8> <7A0B>
+<C4F9> <7DE0>
+<C4FA> <8247>
+<C4FB> <8A02>
+<C4FC> <8AE6>
+<C4FD> <8E44>
+<C4FE> <9013>
+<C5A1> <90B8>
+<C5A2> <912D>
+<C5A3> <91D8>
+<C5A4> <9F0E>
+<C5A5> <6CE5>
+<C5A6> <6458>
+<C5A7> <64E2>
+<C5A8> <6575>
+<C5A9> <6EF4>
+<C5AA> <7684>
+<C5AB> <7B1B>
+<C5AC> <9069>
+<C5AD> <93D1>
+<C5AE> <6EBA>
+<C5AF> <54F2>
+<C5B0> <5FB9>
+<C5B1> <64A4>
+<C5B2> <8F4D>
+<C5B3> <8FED>
+<C5B4> <9244>
+<C5B5> <5178>
+<C5B6> <586B>
+<C5B7> <5929>
+<C5B8> <5C55>
+<C5B9> <5E97>
+<C5BA> <6DFB>
+<C5BB> <7E8F>
+<C5BC> <751C>
+<C5BD> <8CBC>
+<C5BE> <8EE2>
+<C5BF> <985B>
+<C5C0> <70B9>
+<C5C1> <4F1D>
+<C5C2> <6BBF>
+<C5C3> <6FB1>
+<C5C4> <7530>
+<C5C5> <96FB>
+<C5C6> <514E>
+<C5C7> <5410>
+<C5C8> <5835>
+<C5C9> <5857>
+<C5CA> <59AC>
+<C5CB> <5C60>
+<C5CC> <5F92>
+<C5CD> <6597>
+<C5CE> <675C>
+<C5CF> <6E21>
+<C5D0> <767B>
+<C5D1> <83DF>
+<C5D2> <8CED>
+<C5D3> <9014>
+<C5D4> <90FD>
+endbfchar
+
+100 beginbfchar
+<C5D5> <934D>
+<C5D6> <7825>
+<C5D7> <783A>
+<C5D8> <52AA>
+<C5D9> <5EA6>
+<C5DA> <571F>
+<C5DB> <5974>
+<C5DC> <6012>
+<C5DD> <5012>
+<C5DE> <515A>
+<C5DF> <51AC>
+<C5E0> <51CD>
+<C5E1> <5200>
+<C5E2> <5510>
+<C5E3> <5854>
+<C5E4> <5858>
+<C5E5> <5957>
+<C5E6> <5B95>
+<C5E7> <5CF6>
+<C5E8> <5D8B>
+<C5E9> <60BC>
+<C5EA> <6295>
+<C5EB> <642D>
+<C5EC> <6771>
+<C5ED> <6843>
+<C5EE> <68BC>
+<C5EF> <68DF>
+<C5F0> <76D7>
+<C5F1> <6DD8>
+<C5F2> <6E6F>
+<C5F3> <6D9B>
+<C5F4> <706F>
+<C5F5> <71C8>
+<C5F6> <5F53>
+<C5F7> <75D8>
+<C5F8> <7977>
+<C5F9> <7B49>
+<C5FA> <7B54>
+<C5FB> <7B52>
+<C5FC> <7CD6>
+<C5FD> <7D71>
+<C5FE> <5230>
+<C6A1> <8463>
+<C6A2> <8569>
+<C6A3> <85E4>
+<C6A4> <8A0E>
+<C6A5> <8B04>
+<C6A6> <8C46>
+<C6A7> <8E0F>
+<C6A8> <9003>
+<C6A9> <900F>
+<C6AA> <9419>
+<C6AB> <9676>
+<C6AC> <982D>
+<C6AD> <9A30>
+<C6AE> <95D8>
+<C6AF> <50CD>
+<C6B0> <52D5>
+<C6B1> <540C>
+<C6B2> <5802>
+<C6B3> <5C0E>
+<C6B4> <61A7>
+<C6B5> <649E>
+<C6B6> <6D1E>
+<C6B7> <77B3>
+<C6B8> <7AE5>
+<C6B9> <80F4>
+<C6BA> <8404>
+<C6BB> <9053>
+<C6BC> <9285>
+<C6BD> <5CE0>
+<C6BE> <9D07>
+<C6BF> <533F>
+<C6C0> <5F97>
+<C6C1> <5FB3>
+<C6C2> <6D9C>
+<C6C3> <7279>
+<C6C4> <7763>
+<C6C5> <79BF>
+<C6C6> <7BE4>
+<C6C7> <6BD2>
+<C6C8> <72EC>
+<C6C9> <8AAD>
+<C6CA> <6803>
+<C6CB> <6A61>
+<C6CC> <51F8>
+<C6CD> <7A81>
+<C6CE> <6934>
+<C6CF> <5C4A>
+<C6D0> <9CF6>
+<C6D1> <82EB>
+<C6D2> <5BC5>
+<C6D3> <9149>
+<C6D4> <701E>
+<C6D5> <5678>
+<C6D6> <5C6F>
+<C6D7> <60C7>
+<C6D8> <6566>
+<C6D9> <6C8C>
+<C6DA> <8C5A>
+endbfchar
+
+100 beginbfchar
+<C6DB> <9041>
+<C6DC> <9813>
+<C6DD> <5451>
+<C6DE> <66C7>
+<C6DF> <920D>
+<C6E0> <5948>
+<C6E1> <90A3>
+<C6E2> <5185>
+<C6E3> <4E4D>
+<C6E4> <51EA>
+<C6E5> <8599>
+<C6E6> <8B0E>
+<C6E7> <7058>
+<C6E8> <637A>
+<C6E9> <934B>
+<C6EA> <6962>
+<C6EB> <99B4>
+<C6EC> <7E04>
+<C6ED> <7577>
+<C6EE> <5357>
+<C6EF> <6960>
+<C6F0> <8EDF>
+<C6F1> <96E3>
+<C6F2> <6C5D>
+<C6F3> <4E8C>
+<C6F4> <5C3C>
+<C6F5> <5F10>
+<C6F6> <8FE9>
+<C6F7> <5302>
+<C6F8> <8CD1>
+<C6F9> <8089>
+<C6FA> <8679>
+<C6FB> <5EFF>
+<C6FC> <65E5>
+<C6FD> <4E73>
+<C6FE> <5165>
+<C7A1> <5982>
+<C7A2> <5C3F>
+<C7A3> <97EE>
+<C7A4> <4EFB>
+<C7A5> <598A>
+<C7A6> <5FCD>
+<C7A7> <8A8D>
+<C7A8> <6FE1>
+<C7A9> <79B0>
+<C7AA> <7962>
+<C7AB> <5BE7>
+<C7AC> <8471>
+<C7AD> <732B>
+<C7AE> <71B1>
+<C7AF> <5E74>
+<C7B0> <5FF5>
+<C7B1> <637B>
+<C7B2> <649A>
+<C7B3> <71C3>
+<C7B4> <7C98>
+<C7B5> <4E43>
+<C7B6> <5EFC>
+<C7B7> <4E4B>
+<C7B8> <57DC>
+<C7B9> <56A2>
+<C7BA> <60A9>
+<C7BB> <6FC3>
+<C7BC> <7D0D>
+<C7BD> <80FD>
+<C7BE> <8133>
+<C7BF> <81BF>
+<C7C0> <8FB2>
+<C7C1> <8997>
+<C7C2> <86A4>
+<C7C3> <5DF4>
+<C7C4> <628A>
+<C7C5> <64AD>
+<C7C6> <8987>
+<C7C7> <6777>
+<C7C8> <6CE2>
+<C7C9> <6D3E>
+<C7CA> <7436>
+<C7CB> <7834>
+<C7CC> <5A46>
+<C7CD> <7F75>
+<C7CE> <82AD>
+<C7CF> <99AC>
+<C7D0> <4FF3>
+<C7D1> <5EC3>
+<C7D2> <62DD>
+<C7D3> <6392>
+<C7D4> <6557>
+<C7D5> <676F>
+<C7D6> <76C3>
+<C7D7> <724C>
+<C7D8> <80CC>
+<C7D9> <80BA>
+<C7DA> <8F29>
+<C7DB> <914D>
+<C7DC> <500D>
+<C7DD> <57F9>
+<C7DE> <5A92>
+<C7DF> <6885>
+<C7E0> <6973>
+endbfchar
+
+100 beginbfchar
+<C7E1> <7164>
+<C7E2> <72FD>
+<C7E3> <8CB7>
+<C7E4> <58F2>
+<C7E5> <8CE0>
+<C7E6> <966A>
+<C7E7> <9019>
+<C7E8> <877F>
+<C7E9> <79E4>
+<C7EA> <77E7>
+<C7EB> <8429>
+<C7EC> <4F2F>
+<C7ED> <5265>
+<C7EE> <535A>
+<C7EF> <62CD>
+<C7F0> <67CF>
+<C7F1> <6CCA>
+<C7F2> <767D>
+<C7F3> <7B94>
+<C7F4> <7C95>
+<C7F5> <8236>
+<C7F6> <8584>
+<C7F7> <8FEB>
+<C7F8> <66DD>
+<C7F9> <6F20>
+<C7FA> <7206>
+<C7FB> <7E1B>
+<C7FC> <83AB>
+<C7FD> <99C1>
+<C7FE> <9EA6>
+<C8A1> <51FD>
+<C8A2> <7BB1>
+<C8A3> <7872>
+<C8A4> <7BB8>
+<C8A5> <8087>
+<C8A6> <7B48>
+<C8A7> <6AE8>
+<C8A8> <5E61>
+<C8A9> <808C>
+<C8AA> <7551>
+<C8AB> <7560>
+<C8AC> <516B>
+<C8AD> <9262>
+<C8AE> <6E8C>
+<C8AF> <767A>
+<C8B0> <9197>
+<C8B1> <9AEA>
+<C8B2> <4F10>
+<C8B3> <7F70>
+<C8B4> <629C>
+<C8B5> <7B4F>
+<C8B6> <95A5>
+<C8B7> <9CE9>
+<C8B8> <567A>
+<C8B9> <5859>
+<C8BA> <86E4>
+<C8BB> <96BC>
+<C8BC> <4F34>
+<C8BD> <5224>
+<C8BE> <534A>
+<C8BF> <53CD>
+<C8C0> <53DB>
+<C8C1> <5E06>
+<C8C2> <642C>
+<C8C3> <6591>
+<C8C4> <677F>
+<C8C5> <6C3E>
+<C8C6> <6C4E>
+<C8C7> <7248>
+<C8C8> <72AF>
+<C8C9> <73ED>
+<C8CA> <7554>
+<C8CB> <7E41>
+<C8CC> <822C>
+<C8CD> <85E9>
+<C8CE> <8CA9>
+<C8CF> <7BC4>
+<C8D0> <91C6>
+<C8D1> <7169>
+<C8D2> <9812>
+<C8D3> <98EF>
+<C8D4> <633D>
+<C8D5> <6669>
+<C8D6> <756A>
+<C8D7> <76E4>
+<C8D8> <78D0>
+<C8D9> <8543>
+<C8DA> <86EE>
+<C8DB> <532A>
+<C8DC> <5351>
+<C8DD> <5426>
+<C8DE> <5983>
+<C8DF> <5E87>
+<C8E0> <5F7C>
+<C8E1> <60B2>
+<C8E2> <6249>
+<C8E3> <6279>
+<C8E4> <62AB>
+<C8E5> <6590>
+<C8E6> <6BD4>
+endbfchar
+
+100 beginbfchar
+<C8E7> <6CCC>
+<C8E8> <75B2>
+<C8E9> <76AE>
+<C8EA> <7891>
+<C8EB> <79D8>
+<C8EC> <7DCB>
+<C8ED> <7F77>
+<C8EE> <80A5>
+<C8EF> <88AB>
+<C8F0> <8AB9>
+<C8F1> <8CBB>
+<C8F2> <907F>
+<C8F3> <975E>
+<C8F4> <98DB>
+<C8F5> <6A0B>
+<C8F6> <7C38>
+<C8F7> <5099>
+<C8F8> <5C3E>
+<C8F9> <5FAE>
+<C8FA> <6787>
+<C8FB> <6BD8>
+<C8FC> <7435>
+<C8FD> <7709>
+<C8FE> <7F8E>
+<C9A1> <9F3B>
+<C9A2> <67CA>
+<C9A3> <7A17>
+<C9A4> <5339>
+<C9A5> <758B>
+<C9A6> <9AED>
+<C9A7> <5F66>
+<C9A8> <819D>
+<C9A9> <83F1>
+<C9AA> <8098>
+<C9AB> <5F3C>
+<C9AC> <5FC5>
+<C9AD> <7562>
+<C9AE> <7B46>
+<C9AF> <903C>
+<C9B0> <6867>
+<C9B1> <59EB>
+<C9B2> <5A9B>
+<C9B3> <7D10>
+<C9B4> <767E>
+<C9B5> <8B2C>
+<C9B6> <4FF5>
+<C9B7> <5F6A>
+<C9B8> <6A19>
+<C9B9> <6C37>
+<C9BA> <6F02>
+<C9BB> <74E2>
+<C9BC> <7968>
+<C9BD> <8868>
+<C9BE> <8A55>
+<C9BF> <8C79>
+<C9C0> <5EDF>
+<C9C1> <63CF>
+<C9C2> <75C5>
+<C9C3> <79D2>
+<C9C4> <82D7>
+<C9C5> <9328>
+<C9C6> <92F2>
+<C9C7> <849C>
+<C9C8> <86ED>
+<C9C9> <9C2D>
+<C9CA> <54C1>
+<C9CB> <5F6C>
+<C9CC> <658C>
+<C9CD> <6D5C>
+<C9CE> <7015>
+<C9CF> <8CA7>
+<C9D0> <8CD3>
+<C9D1> <983B>
+<C9D2> <654F>
+<C9D3> <74F6>
+<C9D4> <4E0D>
+<C9D5> <4ED8>
+<C9D6> <57E0>
+<C9D7> <592B>
+<C9D8> <5A66>
+<C9D9> <5BCC>
+<C9DA> <51A8>
+<C9DB> <5E03>
+<C9DC> <5E9C>
+<C9DD> <6016>
+<C9DE> <6276>
+<C9DF> <6577>
+<C9E0> <65A7>
+<C9E1> <666E>
+<C9E2> <6D6E>
+<C9E3> <7236>
+<C9E4> <7B26>
+<C9E5> <8150>
+<C9E6> <819A>
+<C9E7> <8299>
+<C9E8> <8B5C>
+<C9E9> <8CA0>
+<C9EA> <8CE6>
+<C9EB> <8D74>
+<C9EC> <961C>
+endbfchar
+
+100 beginbfchar
+<C9ED> <9644>
+<C9EE> <4FAE>
+<C9EF> <64AB>
+<C9F0> <6B66>
+<C9F1> <821E>
+<C9F2> <8461>
+<C9F3> <856A>
+<C9F4> <90E8>
+<C9F5> <5C01>
+<C9F6> <6953>
+<C9F7> <98A8>
+<C9F8> <847A>
+<C9F9> <8557>
+<C9FA> <4F0F>
+<C9FB> <526F>
+<C9FC> <5FA9>
+<C9FD> <5E45>
+<C9FE> <670D>
+<CAA1> <798F>
+<CAA2> <8179>
+<CAA3> <8907>
+<CAA4> <8986>
+<CAA5> <6DF5>
+<CAA6> <5F17>
+<CAA7> <6255>
+<CAA8> <6CB8>
+<CAA9> <4ECF>
+<CAAA> <7269>
+<CAAB> <9B92>
+<CAAC> <5206>
+<CAAD> <543B>
+<CAAE> <5674>
+<CAAF> <58B3>
+<CAB0> <61A4>
+<CAB1> <626E>
+<CAB2> <711A>
+<CAB3> <596E>
+<CAB4> <7C89>
+<CAB5> <7CDE>
+<CAB6> <7D1B>
+<CAB7> <96F0>
+<CAB8> <6587>
+<CAB9> <805E>
+<CABA> <4E19>
+<CABB> <4F75>
+<CABC> <5175>
+<CABD> <5840>
+<CABE> <5E63>
+<CABF> <5E73>
+<CAC0> <5F0A>
+<CAC1> <67C4>
+<CAC2> <4E26>
+<CAC3> <853D>
+<CAC4> <9589>
+<CAC5> <965B>
+<CAC6> <7C73>
+<CAC7> <9801>
+<CAC8> <50FB>
+<CAC9> <58C1>
+<CACA> <7656>
+<CACB> <78A7>
+<CACC> <5225>
+<CACD> <77A5>
+<CACE> <8511>
+<CACF> <7B86>
+<CAD0> <504F>
+<CAD1> <5909>
+<CAD2> <7247>
+<CAD3> <7BC7>
+<CAD4> <7DE8>
+<CAD5> <8FBA>
+<CAD6> <8FD4>
+<CAD7> <904D>
+<CAD8> <4FBF>
+<CAD9> <52C9>
+<CADA> <5A29>
+<CADB> <5F01>
+<CADC> <97AD>
+<CADD> <4FDD>
+<CADE> <8217>
+<CADF> <92EA>
+<CAE0> <5703>
+<CAE1> <6355>
+<CAE2> <6B69>
+<CAE3> <752B>
+<CAE4> <88DC>
+<CAE5> <8F14>
+<CAE6> <7A42>
+<CAE7> <52DF>
+<CAE8> <5893>
+<CAE9> <6155>
+<CAEA> <620A>
+<CAEB> <66AE>
+<CAEC> <6BCD>
+<CAED> <7C3F>
+<CAEE> <83E9>
+<CAEF> <5023>
+<CAF0> <4FF8>
+<CAF1> <5305>
+<CAF2> <5446>
+endbfchar
+
+100 beginbfchar
+<CAF3> <5831>
+<CAF4> <5949>
+<CAF5> <5B9D>
+<CAF6> <5CF0>
+<CAF7> <5CEF>
+<CAF8> <5D29>
+<CAF9> <5E96>
+<CAFA> <62B1>
+<CAFB> <6367>
+<CAFC> <653E>
+<CAFD> <65B9>
+<CAFE> <670B>
+<CBA1> <6CD5>
+<CBA2> <6CE1>
+<CBA3> <70F9>
+<CBA4> <7832>
+<CBA5> <7E2B>
+<CBA6> <80DE>
+<CBA7> <82B3>
+<CBA8> <840C>
+<CBA9> <84EC>
+<CBAA> <8702>
+<CBAB> <8912>
+<CBAC> <8A2A>
+<CBAD> <8C4A>
+<CBAE> <90A6>
+<CBAF> <92D2>
+<CBB0> <98FD>
+<CBB1> <9CF3>
+<CBB2> <9D6C>
+<CBB3> <4E4F>
+<CBB4> <4EA1>
+<CBB5> <508D>
+<CBB6> <5256>
+<CBB7> <574A>
+<CBB8> <59A8>
+<CBB9> <5E3D>
+<CBBA> <5FD8>
+<CBBB> <5FD9>
+<CBBC> <623F>
+<CBBD> <66B4>
+<CBBE> <671B>
+<CBBF> <67D0>
+<CBC0> <68D2>
+<CBC1> <5192>
+<CBC2> <7D21>
+<CBC3> <80AA>
+<CBC4> <81A8>
+<CBC5> <8B00>
+<CBC6> <8C8C>
+<CBC7> <8CBF>
+<CBC8> <927E>
+<CBC9> <9632>
+<CBCA> <5420>
+<CBCB> <982C>
+<CBCC> <5317>
+<CBCD> <50D5>
+<CBCE> <535C>
+<CBCF> <58A8>
+<CBD0> <64B2>
+<CBD1> <6734>
+<CBD2> <7267>
+<CBD3> <7766>
+<CBD4> <7A46>
+<CBD5> <91E6>
+<CBD6> <52C3>
+<CBD7> <6CA1>
+<CBD8> <6B86>
+<CBD9> <5800>
+<CBDA> <5E4C>
+<CBDB> <5954>
+<CBDC> <672C>
+<CBDD> <7FFB>
+<CBDE> <51E1>
+<CBDF> <76C6>
+<CBE0> <6469>
+<CBE1> <78E8>
+<CBE2> <9B54>
+<CBE3> <9EBB>
+<CBE4> <57CB>
+<CBE5> <59B9>
+<CBE6> <6627>
+<CBE7> <679A>
+<CBE8> <6BCE>
+<CBE9> <54E9>
+<CBEA> <69D9>
+<CBEB> <5E55>
+<CBEC> <819C>
+<CBED> <6795>
+<CBEE> <9BAA>
+<CBEF> <67FE>
+<CBF0> <9C52>
+<CBF1> <685D>
+<CBF2> <4EA6>
+<CBF3> <4FE3>
+<CBF4> <53C8>
+<CBF5> <62B9>
+<CBF6> <672B>
+<CBF7> <6CAB>
+<CBF8> <8FC4>
+endbfchar
+
+100 beginbfchar
+<CBF9> <4FAD>
+<CBFA> <7E6D>
+<CBFB> <9EBF>
+<CBFC> <4E07>
+<CBFD> <6162>
+<CBFE> <6E80>
+<CCA1> <6F2B>
+<CCA2> <8513>
+<CCA3> <5473>
+<CCA4> <672A>
+<CCA5> <9B45>
+<CCA6> <5DF3>
+<CCA7> <7B95>
+<CCA8> <5CAC>
+<CCA9> <5BC6>
+<CCAA> <871C>
+<CCAB> <6E4A>
+<CCAC> <84D1>
+<CCAD> <7A14>
+<CCAE> <8108>
+<CCAF> <5999>
+<CCB0> <7C8D>
+<CCB1> <6C11>
+<CCB2> <7720>
+<CCB3> <52D9>
+<CCB4> <5922>
+<CCB5> <7121>
+<CCB6> <725F>
+<CCB7> <77DB>
+<CCB8> <9727>
+<CCB9> <9D61>
+<CCBA> <690B>
+<CCBB> <5A7F>
+<CCBC> <5A18>
+<CCBD> <51A5>
+<CCBE> <540D>
+<CCBF> <547D>
+<CCC0> <660E>
+<CCC1> <76DF>
+<CCC2> <8FF7>
+<CCC3> <9298>
+<CCC4> <9CF4>
+<CCC5> <59EA>
+<CCC6> <725D>
+<CCC7> <6EC5>
+<CCC8> <514D>
+<CCC9> <68C9>
+<CCCA> <7DBF>
+<CCCB> <7DEC>
+<CCCC> <9762>
+<CCCD> <9EBA>
+<CCCE> <6478>
+<CCCF> <6A21>
+<CCD0> <8302>
+<CCD1> <5984>
+<CCD2> <5B5F>
+<CCD3> <6BDB>
+<CCD4> <731B>
+<CCD5> <76F2>
+<CCD6> <7DB2>
+<CCD7> <8017>
+<CCD8> <8499>
+<CCD9> <5132>
+<CCDA> <6728>
+<CCDB> <9ED9>
+<CCDC> <76EE>
+<CCDD> <6762>
+<CCDE> <52FF>
+<CCDF> <9905>
+<CCE0> <5C24>
+<CCE1> <623B>
+<CCE2> <7C7E>
+<CCE3> <8CB0>
+<CCE4> <554F>
+<CCE5> <60B6>
+<CCE6> <7D0B>
+<CCE7> <9580>
+<CCE8> <5301>
+<CCE9> <4E5F>
+<CCEA> <51B6>
+<CCEB> <591C>
+<CCEC> <723A>
+<CCED> <8036>
+<CCEE> <91CE>
+<CCEF> <5F25>
+<CCF0> <77E2>
+<CCF1> <5384>
+<CCF2> <5F79>
+<CCF3> <7D04>
+<CCF4> <85AC>
+<CCF5> <8A33>
+<CCF6> <8E8D>
+<CCF7> <9756>
+<CCF8> <67F3>
+<CCF9> <85AE>
+<CCFA> <9453>
+<CCFB> <6109>
+<CCFC> <6108>
+<CCFD> <6CB9>
+<CCFE> <7652>
+endbfchar
+
+100 beginbfchar
+<CDA1> <8AED>
+<CDA2> <8F38>
+<CDA3> <552F>
+<CDA4> <4F51>
+<CDA5> <512A>
+<CDA6> <52C7>
+<CDA7> <53CB>
+<CDA8> <5BA5>
+<CDA9> <5E7D>
+<CDAA> <60A0>
+<CDAB> <6182>
+<CDAC> <63D6>
+<CDAD> <6709>
+<CDAE> <67DA>
+<CDAF> <6E67>
+<CDB0> <6D8C>
+<CDB1> <7336>
+<CDB2> <7337>
+<CDB3> <7531>
+<CDB4> <7950>
+<CDB5> <88D5>
+<CDB6> <8A98>
+<CDB7> <904A>
+<CDB8> <9091>
+<CDB9> <90F5>
+<CDBA> <96C4>
+<CDBB> <878D>
+<CDBC> <5915>
+<CDBD> <4E88>
+<CDBE> <4F59>
+<CDBF> <4E0E>
+<CDC0> <8A89>
+<CDC1> <8F3F>
+<CDC2> <9810>
+<CDC3> <50AD>
+<CDC4> <5E7C>
+<CDC5> <5996>
+<CDC6> <5BB9>
+<CDC7> <5EB8>
+<CDC8> <63DA>
+<CDC9> <63FA>
+<CDCA> <64C1>
+<CDCB> <66DC>
+<CDCC> <694A>
+<CDCD> <69D8>
+<CDCE> <6D0B>
+<CDCF> <6EB6>
+<CDD0> <7194>
+<CDD1> <7528>
+<CDD2> <7AAF>
+<CDD3> <7F8A>
+<CDD4> <8000>
+<CDD5> <8449>
+<CDD6> <84C9>
+<CDD7> <8981>
+<CDD8> <8B21>
+<CDD9> <8E0A>
+<CDDA> <9065>
+<CDDB> <967D>
+<CDDC> <990A>
+<CDDD> <617E>
+<CDDE> <6291>
+<CDDF> <6B32>
+<CDE0> <6C83>
+<CDE1> <6D74>
+<CDE2> <7FCC>
+<CDE3> <7FFC>
+<CDE4> <6DC0>
+<CDE5> <7F85>
+<CDE6> <87BA>
+<CDE7> <88F8>
+<CDE8> <6765>
+<CDE9> <83B1>
+<CDEA> <983C>
+<CDEB> <96F7>
+<CDEC> <6D1B>
+<CDED> <7D61>
+<CDEE> <843D>
+<CDEF> <916A>
+<CDF0> <4E71>
+<CDF1> <5375>
+<CDF2> <5D50>
+<CDF3> <6B04>
+<CDF4> <6FEB>
+<CDF5> <85CD>
+<CDF6> <862D>
+<CDF7> <89A7>
+<CDF8> <5229>
+<CDF9> <540F>
+<CDFA> <5C65>
+<CDFB> <674E>
+<CDFC> <68A8>
+<CDFD> <7406>
+<CDFE> <7483>
+<CEA1> <75E2>
+<CEA2> <88CF>
+<CEA3> <88E1>
+<CEA4> <91CC>
+<CEA5> <96E2>
+<CEA6> <9678>
+endbfchar
+
+100 beginbfchar
+<CEA7> <5F8B>
+<CEA8> <7387>
+<CEA9> <7ACB>
+<CEAA> <844E>
+<CEAB> <63A0>
+<CEAC> <7565>
+<CEAD> <5289>
+<CEAE> <6D41>
+<CEAF> <6E9C>
+<CEB0> <7409>
+<CEB1> <7559>
+<CEB2> <786B>
+<CEB3> <7C92>
+<CEB4> <9686>
+<CEB5> <7ADC>
+<CEB6> <9F8D>
+<CEB7> <4FB6>
+<CEB8> <616E>
+<CEB9> <65C5>
+<CEBA> <865C>
+<CEBB> <4E86>
+<CEBC> <4EAE>
+<CEBD> <50DA>
+<CEBE> <4E21>
+<CEBF> <51CC>
+<CEC0> <5BEE>
+<CEC1> <6599>
+<CEC2> <6881>
+<CEC3> <6DBC>
+<CEC4> <731F>
+<CEC5> <7642>
+<CEC6> <77AD>
+<CEC7> <7A1C>
+<CEC8> <7CE7>
+<CEC9> <826F>
+<CECA> <8AD2>
+<CECB> <907C>
+<CECC> <91CF>
+<CECD> <9675>
+<CECE> <9818>
+<CECF> <529B>
+<CED0> <7DD1>
+<CED1> <502B>
+<CED2> <5398>
+<CED3> <6797>
+<CED4> <6DCB>
+<CED5> <71D0>
+<CED6> <7433>
+<CED7> <81E8>
+<CED8> <8F2A>
+<CED9> <96A3>
+<CEDA> <9C57>
+<CEDB> <9E9F>
+<CEDC> <7460>
+<CEDD> <5841>
+<CEDE> <6D99>
+<CEDF> <7D2F>
+<CEE0> <985E>
+<CEE1> <4EE4>
+<CEE2> <4F36>
+<CEE3> <4F8B>
+<CEE4> <51B7>
+<CEE5> <52B1>
+<CEE6> <5DBA>
+<CEE7> <601C>
+<CEE8> <73B2>
+<CEE9> <793C>
+<CEEA> <82D3>
+<CEEB> <9234>
+<CEEC> <96B7>
+<CEED> <96F6>
+<CEEE> <970A>
+<CEEF> <9E97>
+<CEF0> <9F62>
+<CEF1> <66A6>
+<CEF2> <6B74>
+<CEF3> <5217>
+<CEF4> <52A3>
+<CEF5> <70C8>
+<CEF6> <88C2>
+<CEF7> <5EC9>
+<CEF8> <604B>
+<CEF9> <6190>
+<CEFA> <6F23>
+<CEFB> <7149>
+<CEFC> <7C3E>
+<CEFD> <7DF4>
+<CEFE> <806F>
+<CFA1> <84EE>
+<CFA2> <9023>
+<CFA3> <932C>
+<CFA4> <5442>
+<CFA5> <9B6F>
+<CFA6> <6AD3>
+<CFA7> <7089>
+<CFA8> <8CC2>
+<CFA9> <8DEF>
+<CFAA> <9732>
+<CFAB> <52B4>
+<CFAC> <5A41>
+endbfchar
+
+100 beginbfchar
+<CFAD> <5ECA>
+<CFAE> <5F04>
+<CFAF> <6717>
+<CFB0> <697C>
+<CFB1> <6994>
+<CFB2> <6D6A>
+<CFB3> <6F0F>
+<CFB4> <7262>
+<CFB5> <72FC>
+<CFB6> <7BED>
+<CFB7> <8001>
+<CFB8> <807E>
+<CFB9> <874B>
+<CFBA> <90CE>
+<CFBB> <516D>
+<CFBC> <9E93>
+<CFBD> <7984>
+<CFBE> <808B>
+<CFBF> <9332>
+<CFC0> <8AD6>
+<CFC1> <502D>
+<CFC2> <548C>
+<CFC3> <8A71>
+<CFC4> <6B6A>
+<CFC5> <8CC4>
+<CFC6> <8107>
+<CFC7> <60D1>
+<CFC8> <67A0>
+<CFC9> <9DF2>
+<CFCA> <4E99>
+<CFCB> <4E98>
+<CFCC> <9C10>
+<CFCD> <8A6B>
+<CFCE> <85C1>
+<CFCF> <8568>
+<CFD0> <6900>
+<CFD1> <6E7E>
+<CFD2> <7897>
+<CFD3> <8155>
+<D0A1> <5F0C>
+<D0A2> <4E10>
+<D0A3> <4E15>
+<D0A4> <4E2A>
+<D0A5> <4E31>
+<D0A6> <4E36>
+<D0A7> <4E3C>
+<D0A8> <4E3F>
+<D0A9> <4E42>
+<D0AA> <4E56>
+<D0AB> <4E58>
+<D0AC> <4E82>
+<D0AD> <4E85>
+<D0AE> <8C6B>
+<D0AF> <4E8A>
+<D0B0> <8212>
+<D0B1> <5F0D>
+<D0B2> <4E8E>
+<D0B3> <4E9E>
+<D0B4> <4E9F>
+<D0B5> <4EA0>
+<D0B6> <4EA2>
+<D0B7> <4EB0>
+<D0B8> <4EB3>
+<D0B9> <4EB6>
+<D0BA> <4ECE>
+<D0BB> <4ECD>
+<D0BC> <4EC4>
+<D0BD> <4EC6>
+<D0BE> <4EC2>
+<D0BF> <4ED7>
+<D0C0> <4EDE>
+<D0C1> <4EED>
+<D0C2> <4EDF>
+<D0C3> <4EF7>
+<D0C4> <4F09>
+<D0C5> <4F5A>
+<D0C6> <4F30>
+<D0C7> <4F5B>
+<D0C8> <4F5D>
+<D0C9> <4F57>
+<D0CA> <4F47>
+<D0CB> <4F76>
+<D0CC> <4F88>
+<D0CD> <4F8F>
+<D0CE> <4F98>
+<D0CF> <4F7B>
+<D0D0> <4F69>
+<D0D1> <4F70>
+<D0D2> <4F91>
+<D0D3> <4F6F>
+<D0D4> <4F86>
+<D0D5> <4F96>
+<D0D6> <5118>
+<D0D7> <4FD4>
+<D0D8> <4FDF>
+<D0D9> <4FCE>
+<D0DA> <4FD8>
+<D0DB> <4FDB>
+<D0DC> <4FD1>
+<D0DD> <4FDA>
+endbfchar
+
+100 beginbfchar
+<D0DE> <4FD0>
+<D0DF> <4FE4>
+<D0E0> <4FE5>
+<D0E1> <501A>
+<D0E2> <5028>
+<D0E3> <5014>
+<D0E4> <502A>
+<D0E5> <5025>
+<D0E6> <5005>
+<D0E7> <4F1C>
+<D0E8> <4FF6>
+<D0E9> <5021>
+<D0EA> <5029>
+<D0EB> <502C>
+<D0EC> <4FFE>
+<D0ED> <4FEF>
+<D0EE> <5011>
+<D0EF> <5006>
+<D0F0> <5043>
+<D0F1> <5047>
+<D0F2> <6703>
+<D0F3> <5055>
+<D0F4> <5050>
+<D0F5> <5048>
+<D0F6> <505A>
+<D0F7> <5056>
+<D0F8> <506C>
+<D0F9> <5078>
+<D0FA> <5080>
+<D0FB> <509A>
+<D0FC> <5085>
+<D0FD> <50B4>
+<D0FE> <50B2>
+<D1A1> <50C9>
+<D1A2> <50CA>
+<D1A3> <50B3>
+<D1A4> <50C2>
+<D1A5> <50D6>
+<D1A6> <50DE>
+<D1A7> <50E5>
+<D1A8> <50ED>
+<D1A9> <50E3>
+<D1AA> <50EE>
+<D1AB> <50F9>
+<D1AC> <50F5>
+<D1AD> <5109>
+<D1AE> <5101>
+<D1AF> <5102>
+<D1B0> <5116>
+<D1B1> <5115>
+<D1B2> <5114>
+<D1B3> <511A>
+<D1B4> <5121>
+<D1B5> <513A>
+<D1B6> <5137>
+<D1B7> <513C>
+<D1B8> <513B>
+<D1B9> <513F>
+<D1BA> <5140>
+<D1BB> <5152>
+<D1BC> <514C>
+<D1BD> <5154>
+<D1BE> <5162>
+<D1BF> <7AF8>
+<D1C0> <5169>
+<D1C1> <516A>
+<D1C2> <516E>
+<D1C3> <5180>
+<D1C4> <5182>
+<D1C5> <56D8>
+<D1C6> <518C>
+<D1C7> <5189>
+<D1C8> <518F>
+<D1C9> <5191>
+<D1CA> <5193>
+<D1CB> <5195>
+<D1CC> <5196>
+<D1CD> <51A4>
+<D1CE> <51A6>
+<D1CF> <51A2>
+<D1D0> <51A9>
+<D1D1> <51AA>
+<D1D2> <51AB>
+<D1D3> <51B3>
+<D1D4> <51B1>
+<D1D5> <51B2>
+<D1D6> <51B0>
+<D1D7> <51B5>
+<D1D8> <51BD>
+<D1D9> <51C5>
+<D1DA> <51C9>
+<D1DB> <51DB>
+<D1DC> <51E0>
+<D1DD> <8655>
+<D1DE> <51E9>
+<D1DF> <51ED>
+<D1E0> <51F0>
+<D1E1> <51F5>
+<D1E2> <51FE>
+<D1E3> <5204>
+endbfchar
+
+100 beginbfchar
+<D1E4> <520B>
+<D1E5> <5214>
+<D1E6> <520E>
+<D1E7> <5227>
+<D1E8> <522A>
+<D1E9> <522E>
+<D1EA> <5233>
+<D1EB> <5239>
+<D1EC> <524F>
+<D1ED> <5244>
+<D1EE> <524B>
+<D1EF> <524C>
+<D1F0> <525E>
+<D1F1> <5254>
+<D1F2> <526A>
+<D1F3> <5274>
+<D1F4> <5269>
+<D1F5> <5273>
+<D1F6> <527F>
+<D1F7> <527D>
+<D1F8> <528D>
+<D1F9> <5294>
+<D1FA> <5292>
+<D1FB> <5271>
+<D1FC> <5288>
+<D1FD> <5291>
+<D1FE> <8FA8>
+<D2A1> <8FA7>
+<D2A2> <52AC>
+<D2A3> <52AD>
+<D2A4> <52BC>
+<D2A5> <52B5>
+<D2A6> <52C1>
+<D2A7> <52CD>
+<D2A8> <52D7>
+<D2A9> <52DE>
+<D2AA> <52E3>
+<D2AB> <52E6>
+<D2AC> <98ED>
+<D2AD> <52E0>
+<D2AE> <52F3>
+<D2AF> <52F5>
+<D2B0> <52F8>
+<D2B1> <52F9>
+<D2B2> <5306>
+<D2B3> <5308>
+<D2B4> <7538>
+<D2B5> <530D>
+<D2B6> <5310>
+<D2B7> <530F>
+<D2B8> <5315>
+<D2B9> <531A>
+<D2BA> <5323>
+<D2BB> <532F>
+<D2BC> <5331>
+<D2BD> <5333>
+<D2BE> <5338>
+<D2BF> <5340>
+<D2C0> <5346>
+<D2C1> <5345>
+<D2C2> <4E17>
+<D2C3> <5349>
+<D2C4> <534D>
+<D2C5> <51D6>
+<D2C6> <535E>
+<D2C7> <5369>
+<D2C8> <536E>
+<D2C9> <5918>
+<D2CA> <537B>
+<D2CB> <5377>
+<D2CC> <5382>
+<D2CD> <5396>
+<D2CE> <53A0>
+<D2CF> <53A6>
+<D2D0> <53A5>
+<D2D1> <53AE>
+<D2D2> <53B0>
+<D2D3> <53B6>
+<D2D4> <53C3>
+<D2D5> <7C12>
+<D2D6> <96D9>
+<D2D7> <53DF>
+<D2D8> <66FC>
+<D2D9> <71EE>
+<D2DA> <53EE>
+<D2DB> <53E8>
+<D2DC> <53ED>
+<D2DD> <53FA>
+<D2DE> <5401>
+<D2DF> <543D>
+<D2E0> <5440>
+<D2E1> <542C>
+<D2E2> <542D>
+<D2E3> <543C>
+<D2E4> <542E>
+<D2E5> <5436>
+<D2E6> <5429>
+<D2E7> <541D>
+<D2E8> <544E>
+<D2E9> <548F>
+endbfchar
+
+100 beginbfchar
+<D2EA> <5475>
+<D2EB> <548E>
+<D2EC> <545F>
+<D2ED> <5471>
+<D2EE> <5477>
+<D2EF> <5470>
+<D2F0> <5492>
+<D2F1> <547B>
+<D2F2> <5480>
+<D2F3> <5476>
+<D2F4> <5484>
+<D2F5> <5490>
+<D2F6> <5486>
+<D2F7> <54C7>
+<D2F8> <54A2>
+<D2F9> <54B8>
+<D2FA> <54A5>
+<D2FB> <54AC>
+<D2FC> <54C4>
+<D2FD> <54C8>
+<D2FE> <54A8>
+<D3A1> <54AB>
+<D3A2> <54C2>
+<D3A3> <54A4>
+<D3A4> <54BE>
+<D3A5> <54BC>
+<D3A6> <54D8>
+<D3A7> <54E5>
+<D3A8> <54E6>
+<D3A9> <550F>
+<D3AA> <5514>
+<D3AB> <54FD>
+<D3AC> <54EE>
+<D3AD> <54ED>
+<D3AE> <54FA>
+<D3AF> <54E2>
+<D3B0> <5539>
+<D3B1> <5540>
+<D3B2> <5563>
+<D3B3> <554C>
+<D3B4> <552E>
+<D3B5> <555C>
+<D3B6> <5545>
+<D3B7> <5556>
+<D3B8> <5557>
+<D3B9> <5538>
+<D3BA> <5533>
+<D3BB> <555D>
+<D3BC> <5599>
+<D3BD> <5580>
+<D3BE> <54AF>
+<D3BF> <558A>
+<D3C0> <559F>
+<D3C1> <557B>
+<D3C2> <557E>
+<D3C3> <5598>
+<D3C4> <559E>
+<D3C5> <55AE>
+<D3C6> <557C>
+<D3C7> <5583>
+<D3C8> <55A9>
+<D3C9> <5587>
+<D3CA> <55A8>
+<D3CB> <55DA>
+<D3CC> <55C5>
+<D3CD> <55DF>
+<D3CE> <55C4>
+<D3CF> <55DC>
+<D3D0> <55E4>
+<D3D1> <55D4>
+<D3D2> <5614>
+<D3D3> <55F7>
+<D3D4> <5616>
+<D3D5> <55FE>
+<D3D6> <55FD>
+<D3D7> <561B>
+<D3D8> <55F9>
+<D3D9> <564E>
+<D3DA> <5650>
+<D3DB> <71DF>
+<D3DC> <5634>
+<D3DD> <5636>
+<D3DE> <5632>
+<D3DF> <5638>
+<D3E0> <566B>
+<D3E1> <5664>
+<D3E2> <562F>
+<D3E3> <566C>
+<D3E4> <566A>
+<D3E5> <5686>
+<D3E6> <5680>
+<D3E7> <568A>
+<D3E8> <56A0>
+<D3E9> <5694>
+<D3EA> <568F>
+<D3EB> <56A5>
+<D3EC> <56AE>
+<D3ED> <56B6>
+<D3EE> <56B4>
+<D3EF> <56C2>
+endbfchar
+
+100 beginbfchar
+<D3F0> <56BC>
+<D3F1> <56C1>
+<D3F2> <56C3>
+<D3F3> <56C0>
+<D3F4> <56C8>
+<D3F5> <56CE>
+<D3F6> <56D1>
+<D3F7> <56D3>
+<D3F8> <56D7>
+<D3F9> <56EE>
+<D3FA> <56F9>
+<D3FB> <5700>
+<D3FC> <56FF>
+<D3FD> <5704>
+<D3FE> <5709>
+<D4A1> <5708>
+<D4A2> <570B>
+<D4A3> <570D>
+<D4A4> <5713>
+<D4A5> <5718>
+<D4A6> <5716>
+<D4A7> <55C7>
+<D4A8> <571C>
+<D4A9> <5726>
+<D4AA> <5737>
+<D4AB> <5738>
+<D4AC> <574E>
+<D4AD> <573B>
+<D4AE> <5740>
+<D4AF> <574F>
+<D4B0> <5769>
+<D4B1> <57C0>
+<D4B2> <5788>
+<D4B3> <5761>
+<D4B4> <577F>
+<D4B5> <5789>
+<D4B6> <5793>
+<D4B7> <57A0>
+<D4B8> <57B3>
+<D4B9> <57A4>
+<D4BA> <57AA>
+<D4BB> <57B0>
+<D4BC> <57C3>
+<D4BD> <57C6>
+<D4BE> <57D4>
+<D4BF> <57D2>
+<D4C0> <57D3>
+<D4C1> <580A>
+<D4C2> <57D6>
+<D4C3> <57E3>
+<D4C4> <580B>
+<D4C5> <5819>
+<D4C6> <581D>
+<D4C7> <5872>
+<D4C8> <5821>
+<D4C9> <5862>
+<D4CA> <584B>
+<D4CB> <5870>
+<D4CC> <6BC0>
+<D4CD> <5852>
+<D4CE> <583D>
+<D4CF> <5879>
+<D4D0> <5885>
+<D4D1> <58B9>
+<D4D2> <589F>
+<D4D3> <58AB>
+<D4D4> <58BA>
+<D4D5> <58DE>
+<D4D6> <58BB>
+<D4D7> <58B8>
+<D4D8> <58AE>
+<D4D9> <58C5>
+<D4DA> <58D3>
+<D4DB> <58D1>
+<D4DC> <58D7>
+<D4DD> <58D9>
+<D4DE> <58D8>
+<D4DF> <58E5>
+<D4E0> <58DC>
+<D4E1> <58E4>
+<D4E2> <58DF>
+<D4E3> <58EF>
+<D4E4> <58FA>
+<D4E5> <58F9>
+<D4E6> <58FB>
+<D4E7> <58FC>
+<D4E8> <58FD>
+<D4E9> <5902>
+<D4EA> <590A>
+<D4EB> <5910>
+<D4EC> <591B>
+<D4ED> <68A6>
+<D4EE> <5925>
+<D4EF> <592C>
+<D4F0> <592D>
+<D4F1> <5932>
+<D4F2> <5938>
+<D4F3> <593E>
+<D4F4> <7AD2>
+<D4F5> <5955>
+endbfchar
+
+100 beginbfchar
+<D4F6> <5950>
+<D4F7> <594E>
+<D4F8> <595A>
+<D4F9> <5958>
+<D4FA> <5962>
+<D4FB> <5960>
+<D4FC> <5967>
+<D4FD> <596C>
+<D4FE> <5969>
+<D5A1> <5978>
+<D5A2> <5981>
+<D5A3> <599D>
+<D5A4> <4F5E>
+<D5A5> <4FAB>
+<D5A6> <59A3>
+<D5A7> <59B2>
+<D5A8> <59C6>
+<D5A9> <59E8>
+<D5AA> <59DC>
+<D5AB> <598D>
+<D5AC> <59D9>
+<D5AD> <59DA>
+<D5AE> <5A25>
+<D5AF> <5A1F>
+<D5B0> <5A11>
+<D5B1> <5A1C>
+<D5B2> <5A09>
+<D5B3> <5A1A>
+<D5B4> <5A40>
+<D5B5> <5A6C>
+<D5B6> <5A49>
+<D5B7> <5A35>
+<D5B8> <5A36>
+<D5B9> <5A62>
+<D5BA> <5A6A>
+<D5BB> <5A9A>
+<D5BC> <5ABC>
+<D5BD> <5ABE>
+<D5BE> <5ACB>
+<D5BF> <5AC2>
+<D5C0> <5ABD>
+<D5C1> <5AE3>
+<D5C2> <5AD7>
+<D5C3> <5AE6>
+<D5C4> <5AE9>
+<D5C5> <5AD6>
+<D5C6> <5AFA>
+<D5C7> <5AFB>
+<D5C8> <5B0C>
+<D5C9> <5B0B>
+<D5CA> <5B16>
+<D5CB> <5B32>
+<D5CC> <5AD0>
+<D5CD> <5B2A>
+<D5CE> <5B36>
+<D5CF> <5B3E>
+<D5D0> <5B43>
+<D5D1> <5B45>
+<D5D2> <5B40>
+<D5D3> <5B51>
+<D5D4> <5B55>
+<D5D5> <5B5A>
+<D5D6> <5B5B>
+<D5D7> <5B65>
+<D5D8> <5B69>
+<D5D9> <5B70>
+<D5DA> <5B73>
+<D5DB> <5B75>
+<D5DC> <5B78>
+<D5DD> <6588>
+<D5DE> <5B7A>
+<D5DF> <5B80>
+<D5E0> <5B83>
+<D5E1> <5BA6>
+<D5E2> <5BB8>
+<D5E3> <5BC3>
+<D5E4> <5BC7>
+<D5E5> <5BC9>
+<D5E6> <5BD4>
+<D5E7> <5BD0>
+<D5E8> <5BE4>
+<D5E9> <5BE6>
+<D5EA> <5BE2>
+<D5EB> <5BDE>
+<D5EC> <5BE5>
+<D5ED> <5BEB>
+<D5EE> <5BF0>
+<D5EF> <5BF6>
+<D5F0> <5BF3>
+<D5F1> <5C05>
+<D5F2> <5C07>
+<D5F3> <5C08>
+<D5F4> <5C0D>
+<D5F5> <5C13>
+<D5F6> <5C20>
+<D5F7> <5C22>
+<D5F8> <5C28>
+<D5F9> <5C38>
+<D5FA> <5C39>
+<D5FB> <5C41>
+endbfchar
+
+100 beginbfchar
+<D5FC> <5C46>
+<D5FD> <5C4E>
+<D5FE> <5C53>
+<D6A1> <5C50>
+<D6A2> <5C4F>
+<D6A3> <5B71>
+<D6A4> <5C6C>
+<D6A5> <5C6E>
+<D6A6> <4E62>
+<D6A7> <5C76>
+<D6A8> <5C79>
+<D6A9> <5C8C>
+<D6AA> <5C91>
+<D6AB> <5C94>
+<D6AC> <599B>
+<D6AD> <5CAB>
+<D6AE> <5CBB>
+<D6AF> <5CB6>
+<D6B0> <5CBC>
+<D6B1> <5CB7>
+<D6B2> <5CC5>
+<D6B3> <5CBE>
+<D6B4> <5CC7>
+<D6B5> <5CD9>
+<D6B6> <5CE9>
+<D6B7> <5CFD>
+<D6B8> <5CFA>
+<D6B9> <5CED>
+<D6BA> <5D8C>
+<D6BB> <5CEA>
+<D6BC> <5D0B>
+<D6BD> <5D15>
+<D6BE> <5D17>
+<D6BF> <5D5C>
+<D6C0> <5D1F>
+<D6C1> <5D1B>
+<D6C2> <5D11>
+<D6C3> <5D14>
+<D6C4> <5D22>
+<D6C5> <5D1A>
+<D6C6> <5D19>
+<D6C7> <5D18>
+<D6C8> <5D4C>
+<D6C9> <5D52>
+<D6CA> <5D4E>
+<D6CB> <5D4B>
+<D6CC> <5D6C>
+<D6CD> <5D73>
+<D6CE> <5D76>
+<D6CF> <5D87>
+<D6D0> <5D84>
+<D6D1> <5D82>
+<D6D2> <5DA2>
+<D6D3> <5D9D>
+<D6D4> <5DAC>
+<D6D5> <5DAE>
+<D6D6> <5DBD>
+<D6D7> <5D90>
+<D6D8> <5DB7>
+<D6D9> <5DBC>
+<D6DA> <5DC9>
+<D6DB> <5DCD>
+<D6DC> <5DD3>
+<D6DD> <5DD2>
+<D6DE> <5DD6>
+<D6DF> <5DDB>
+<D6E0> <5DEB>
+<D6E1> <5DF2>
+<D6E2> <5DF5>
+<D6E3> <5E0B>
+<D6E4> <5E1A>
+<D6E5> <5E19>
+<D6E6> <5E11>
+<D6E7> <5E1B>
+<D6E8> <5E36>
+<D6E9> <5E37>
+<D6EA> <5E44>
+<D6EB> <5E43>
+<D6EC> <5E40>
+<D6ED> <5E4E>
+<D6EE> <5E57>
+<D6EF> <5E54>
+<D6F0> <5E5F>
+<D6F1> <5E62>
+<D6F2> <5E64>
+<D6F3> <5E47>
+<D6F4> <5E75>
+<D6F5> <5E76>
+<D6F6> <5E7A>
+<D6F7> <9EBC>
+<D6F8> <5E7F>
+<D6F9> <5EA0>
+<D6FA> <5EC1>
+<D6FB> <5EC2>
+<D6FC> <5EC8>
+<D6FD> <5ED0>
+<D6FE> <5ECF>
+<D7A1> <5ED6>
+<D7A2> <5EE3>
+<D7A3> <5EDD>
+endbfchar
+
+100 beginbfchar
+<D7A4> <5EDA>
+<D7A5> <5EDB>
+<D7A6> <5EE2>
+<D7A7> <5EE1>
+<D7A8> <5EE8>
+<D7A9> <5EE9>
+<D7AA> <5EEC>
+<D7AB> <5EF1>
+<D7AC> <5EF3>
+<D7AD> <5EF0>
+<D7AE> <5EF4>
+<D7AF> <5EF8>
+<D7B0> <5EFE>
+<D7B1> <5F03>
+<D7B2> <5F09>
+<D7B3> <5F5D>
+<D7B4> <5F5C>
+<D7B5> <5F0B>
+<D7B6> <5F11>
+<D7B7> <5F16>
+<D7B8> <5F29>
+<D7B9> <5F2D>
+<D7BA> <5F38>
+<D7BB> <5F41>
+<D7BC> <5F48>
+<D7BD> <5F4C>
+<D7BE> <5F4E>
+<D7BF> <5F2F>
+<D7C0> <5F51>
+<D7C1> <5F56>
+<D7C2> <5F57>
+<D7C3> <5F59>
+<D7C4> <5F61>
+<D7C5> <5F6D>
+<D7C6> <5F73>
+<D7C7> <5F77>
+<D7C8> <5F83>
+<D7C9> <5F82>
+<D7CA> <5F7F>
+<D7CB> <5F8A>
+<D7CC> <5F88>
+<D7CD> <5F91>
+<D7CE> <5F87>
+<D7CF> <5F9E>
+<D7D0> <5F99>
+<D7D1> <5F98>
+<D7D2> <5FA0>
+<D7D3> <5FA8>
+<D7D4> <5FAD>
+<D7D5> <5FBC>
+<D7D6> <5FD6>
+<D7D7> <5FFB>
+<D7D8> <5FE4>
+<D7D9> <5FF8>
+<D7DA> <5FF1>
+<D7DB> <5FDD>
+<D7DC> <60B3>
+<D7DD> <5FFF>
+<D7DE> <6021>
+<D7DF> <6060>
+<D7E0> <6019>
+<D7E1> <6010>
+<D7E2> <6029>
+<D7E3> <600E>
+<D7E4> <6031>
+<D7E5> <601B>
+<D7E6> <6015>
+<D7E7> <602B>
+<D7E8> <6026>
+<D7E9> <600F>
+<D7EA> <603A>
+<D7EB> <605A>
+<D7EC> <6041>
+<D7ED> <606A>
+<D7EE> <6077>
+<D7EF> <605F>
+<D7F0> <604A>
+<D7F1> <6046>
+<D7F2> <604D>
+<D7F3> <6063>
+<D7F4> <6043>
+<D7F5> <6064>
+<D7F6> <6042>
+<D7F7> <606C>
+<D7F8> <606B>
+<D7F9> <6059>
+<D7FA> <6081>
+<D7FB> <608D>
+<D7FC> <60E7>
+<D7FD> <6083>
+<D7FE> <609A>
+<D8A1> <6084>
+<D8A2> <609B>
+<D8A3> <6096>
+<D8A4> <6097>
+<D8A5> <6092>
+<D8A6> <60A7>
+<D8A7> <608B>
+<D8A8> <60E1>
+<D8A9> <60B8>
+endbfchar
+
+100 beginbfchar
+<D8AA> <60E0>
+<D8AB> <60D3>
+<D8AC> <60B4>
+<D8AD> <5FF0>
+<D8AE> <60BD>
+<D8AF> <60C6>
+<D8B0> <60B5>
+<D8B1> <60D8>
+<D8B2> <614D>
+<D8B3> <6115>
+<D8B4> <6106>
+<D8B5> <60F6>
+<D8B6> <60F7>
+<D8B7> <6100>
+<D8B8> <60F4>
+<D8B9> <60FA>
+<D8BA> <6103>
+<D8BB> <6121>
+<D8BC> <60FB>
+<D8BD> <60F1>
+<D8BE> <610D>
+<D8BF> <610E>
+<D8C0> <6147>
+<D8C1> <613E>
+<D8C2> <6128>
+<D8C3> <6127>
+<D8C4> <614A>
+<D8C5> <613F>
+<D8C6> <613C>
+<D8C7> <612C>
+<D8C8> <6134>
+<D8C9> <613D>
+<D8CA> <6142>
+<D8CB> <6144>
+<D8CC> <6173>
+<D8CD> <6177>
+<D8CE> <6158>
+<D8CF> <6159>
+<D8D0> <615A>
+<D8D1> <616B>
+<D8D2> <6174>
+<D8D3> <616F>
+<D8D4> <6165>
+<D8D5> <6171>
+<D8D6> <615F>
+<D8D7> <615D>
+<D8D8> <6153>
+<D8D9> <6175>
+<D8DA> <6199>
+<D8DB> <6196>
+<D8DC> <6187>
+<D8DD> <61AC>
+<D8DE> <6194>
+<D8DF> <619A>
+<D8E0> <618A>
+<D8E1> <6191>
+<D8E2> <61AB>
+<D8E3> <61AE>
+<D8E4> <61CC>
+<D8E5> <61CA>
+<D8E6> <61C9>
+<D8E7> <61F7>
+<D8E8> <61C8>
+<D8E9> <61C3>
+<D8EA> <61C6>
+<D8EB> <61BA>
+<D8EC> <61CB>
+<D8ED> <7F79>
+<D8EE> <61CD>
+<D8EF> <61E6>
+<D8F0> <61E3>
+<D8F1> <61F6>
+<D8F2> <61FA>
+<D8F3> <61F4>
+<D8F4> <61FF>
+<D8F5> <61FD>
+<D8F6> <61FC>
+<D8F7> <61FE>
+<D8F8> <6200>
+<D8F9> <6208>
+<D8FA> <6209>
+<D8FB> <620D>
+<D8FC> <620C>
+<D8FD> <6214>
+<D8FE> <621B>
+<D9A1> <621E>
+<D9A2> <6221>
+<D9A3> <622A>
+<D9A4> <622E>
+<D9A5> <6230>
+<D9A6> <6232>
+<D9A7> <6233>
+<D9A8> <6241>
+<D9A9> <624E>
+<D9AA> <625E>
+<D9AB> <6263>
+<D9AC> <625B>
+<D9AD> <6260>
+<D9AE> <6268>
+<D9AF> <627C>
+endbfchar
+
+100 beginbfchar
+<D9B0> <6282>
+<D9B1> <6289>
+<D9B2> <627E>
+<D9B3> <6292>
+<D9B4> <6293>
+<D9B5> <6296>
+<D9B6> <62D4>
+<D9B7> <6283>
+<D9B8> <6294>
+<D9B9> <62D7>
+<D9BA> <62D1>
+<D9BB> <62BB>
+<D9BC> <62CF>
+<D9BD> <62FF>
+<D9BE> <62C6>
+<D9BF> <64D4>
+<D9C0> <62C8>
+<D9C1> <62DC>
+<D9C2> <62CC>
+<D9C3> <62CA>
+<D9C4> <62C2>
+<D9C5> <62C7>
+<D9C6> <629B>
+<D9C7> <62C9>
+<D9C8> <630C>
+<D9C9> <62EE>
+<D9CA> <62F1>
+<D9CB> <6327>
+<D9CC> <6302>
+<D9CD> <6308>
+<D9CE> <62EF>
+<D9CF> <62F5>
+<D9D0> <6350>
+<D9D1> <633E>
+<D9D2> <634D>
+<D9D3> <641C>
+<D9D4> <634F>
+<D9D5> <6396>
+<D9D6> <638E>
+<D9D7> <6380>
+<D9D8> <63AB>
+<D9D9> <6376>
+<D9DA> <63A3>
+<D9DB> <638F>
+<D9DC> <6389>
+<D9DD> <639F>
+<D9DE> <63B5>
+<D9DF> <636B>
+<D9E0> <6369>
+<D9E1> <63BE>
+<D9E2> <63E9>
+<D9E3> <63C0>
+<D9E4> <63C6>
+<D9E5> <63E3>
+<D9E6> <63C9>
+<D9E7> <63D2>
+<D9E8> <63F6>
+<D9E9> <63C4>
+<D9EA> <6416>
+<D9EB> <6434>
+<D9EC> <6406>
+<D9ED> <6413>
+<D9EE> <6426>
+<D9EF> <6436>
+<D9F0> <651D>
+<D9F1> <6417>
+<D9F2> <6428>
+<D9F3> <640F>
+<D9F4> <6467>
+<D9F5> <646F>
+<D9F6> <6476>
+<D9F7> <644E>
+<D9F8> <652A>
+<D9F9> <6495>
+<D9FA> <6493>
+<D9FB> <64A5>
+<D9FC> <64A9>
+<D9FD> <6488>
+<D9FE> <64BC>
+<DAA1> <64DA>
+<DAA2> <64D2>
+<DAA3> <64C5>
+<DAA4> <64C7>
+<DAA5> <64BB>
+<DAA6> <64D8>
+<DAA7> <64C2>
+<DAA8> <64F1>
+<DAA9> <64E7>
+<DAAA> <8209>
+<DAAB> <64E0>
+<DAAC> <64E1>
+<DAAD> <62AC>
+<DAAE> <64E3>
+<DAAF> <64EF>
+<DAB0> <652C>
+<DAB1> <64F6>
+<DAB2> <64F4>
+<DAB3> <64F2>
+<DAB4> <64FA>
+<DAB5> <6500>
+endbfchar
+
+100 beginbfchar
+<DAB6> <64FD>
+<DAB7> <6518>
+<DAB8> <651C>
+<DAB9> <6505>
+<DABA> <6524>
+<DABB> <6523>
+<DABC> <652B>
+<DABD> <6534>
+<DABE> <6535>
+<DABF> <6537>
+<DAC0> <6536>
+<DAC1> <6538>
+<DAC2> <754B>
+<DAC3> <6548>
+<DAC4> <6556>
+<DAC5> <6555>
+<DAC6> <654D>
+<DAC7> <6558>
+<DAC8> <655E>
+<DAC9> <655D>
+<DACA> <6572>
+<DACB> <6578>
+<DACC> <6582>
+<DACD> <6583>
+<DACE> <8B8A>
+<DACF> <659B>
+<DAD0> <659F>
+<DAD1> <65AB>
+<DAD2> <65B7>
+<DAD3> <65C3>
+<DAD4> <65C6>
+<DAD5> <65C1>
+<DAD6> <65C4>
+<DAD7> <65CC>
+<DAD8> <65D2>
+<DAD9> <65DB>
+<DADA> <65D9>
+<DADB> <65E0>
+<DADC> <65E1>
+<DADD> <65F1>
+<DADE> <6772>
+<DADF> <660A>
+<DAE0> <6603>
+<DAE1> <65FB>
+<DAE2> <6773>
+<DAE3> <6635>
+<DAE4> <6636>
+<DAE5> <6634>
+<DAE6> <661C>
+<DAE7> <664F>
+<DAE8> <6644>
+<DAE9> <6649>
+<DAEA> <6641>
+<DAEB> <665E>
+<DAEC> <665D>
+<DAED> <6664>
+<DAEE> <6667>
+<DAEF> <6668>
+<DAF0> <665F>
+<DAF1> <6662>
+<DAF2> <6670>
+<DAF3> <6683>
+<DAF4> <6688>
+<DAF5> <668E>
+<DAF6> <6689>
+<DAF7> <6684>
+<DAF8> <6698>
+<DAF9> <669D>
+<DAFA> <66C1>
+<DAFB> <66B9>
+<DAFC> <66C9>
+<DAFD> <66BE>
+<DAFE> <66BC>
+<DBA1> <66C4>
+<DBA2> <66B8>
+<DBA3> <66D6>
+<DBA4> <66DA>
+<DBA5> <66E0>
+<DBA6> <663F>
+<DBA7> <66E6>
+<DBA8> <66E9>
+<DBA9> <66F0>
+<DBAA> <66F5>
+<DBAB> <66F7>
+<DBAC> <670F>
+<DBAD> <6716>
+<DBAE> <671E>
+<DBAF> <6726>
+<DBB0> <6727>
+<DBB1> <9738>
+<DBB2> <672E>
+<DBB3> <673F>
+<DBB4> <6736>
+<DBB5> <6741>
+<DBB6> <6738>
+<DBB7> <6737>
+<DBB8> <6746>
+<DBB9> <675E>
+<DBBA> <6760>
+<DBBB> <6759>
+endbfchar
+
+100 beginbfchar
+<DBBC> <6763>
+<DBBD> <6764>
+<DBBE> <6789>
+<DBBF> <6770>
+<DBC0> <67A9>
+<DBC1> <677C>
+<DBC2> <676A>
+<DBC3> <678C>
+<DBC4> <678B>
+<DBC5> <67A6>
+<DBC6> <67A1>
+<DBC7> <6785>
+<DBC8> <67B7>
+<DBC9> <67EF>
+<DBCA> <67B4>
+<DBCB> <67EC>
+<DBCC> <67B3>
+<DBCD> <67E9>
+<DBCE> <67B8>
+<DBCF> <67E4>
+<DBD0> <67DE>
+<DBD1> <67DD>
+<DBD2> <67E2>
+<DBD3> <67EE>
+<DBD4> <67B9>
+<DBD5> <67CE>
+<DBD6> <67C6>
+<DBD7> <67E7>
+<DBD8> <6A9C>
+<DBD9> <681E>
+<DBDA> <6846>
+<DBDB> <6829>
+<DBDC> <6840>
+<DBDD> <684D>
+<DBDE> <6832>
+<DBDF> <684E>
+<DBE0> <68B3>
+<DBE1> <682B>
+<DBE2> <6859>
+<DBE3> <6863>
+<DBE4> <6877>
+<DBE5> <687F>
+<DBE6> <689F>
+<DBE7> <688F>
+<DBE8> <68AD>
+<DBE9> <6894>
+<DBEA> <689D>
+<DBEB> <689B>
+<DBEC> <6883>
+<DBED> <6AAE>
+<DBEE> <68B9>
+<DBEF> <6874>
+<DBF0> <68B5>
+<DBF1> <68A0>
+<DBF2> <68BA>
+<DBF3> <690F>
+<DBF4> <688D>
+<DBF5> <687E>
+<DBF6> <6901>
+<DBF7> <68CA>
+<DBF8> <6908>
+<DBF9> <68D8>
+<DBFA> <6922>
+<DBFB> <6926>
+<DBFC> <68E1>
+<DBFD> <690C>
+<DBFE> <68CD>
+<DCA1> <68D4>
+<DCA2> <68E7>
+<DCA3> <68D5>
+<DCA4> <6936>
+<DCA5> <6912>
+<DCA6> <6904>
+<DCA7> <68D7>
+<DCA8> <68E3>
+<DCA9> <6925>
+<DCAA> <68F9>
+<DCAB> <68E0>
+<DCAC> <68EF>
+<DCAD> <6928>
+<DCAE> <692A>
+<DCAF> <691A>
+<DCB0> <6923>
+<DCB1> <6921>
+<DCB2> <68C6>
+<DCB3> <6979>
+<DCB4> <6977>
+<DCB5> <695C>
+<DCB6> <6978>
+<DCB7> <696B>
+<DCB8> <6954>
+<DCB9> <697E>
+<DCBA> <696E>
+<DCBB> <6939>
+<DCBC> <6974>
+<DCBD> <693D>
+<DCBE> <6959>
+<DCBF> <6930>
+<DCC0> <6961>
+<DCC1> <695E>
+endbfchar
+
+100 beginbfchar
+<DCC2> <695D>
+<DCC3> <6981>
+<DCC4> <696A>
+<DCC5> <69B2>
+<DCC6> <69AE>
+<DCC7> <69D0>
+<DCC8> <69BF>
+<DCC9> <69C1>
+<DCCA> <69D3>
+<DCCB> <69BE>
+<DCCC> <69CE>
+<DCCD> <5BE8>
+<DCCE> <69CA>
+<DCCF> <69DD>
+<DCD0> <69BB>
+<DCD1> <69C3>
+<DCD2> <69A7>
+<DCD3> <6A2E>
+<DCD4> <6991>
+<DCD5> <69A0>
+<DCD6> <699C>
+<DCD7> <6995>
+<DCD8> <69B4>
+<DCD9> <69DE>
+<DCDA> <69E8>
+<DCDB> <6A02>
+<DCDC> <6A1B>
+<DCDD> <69FF>
+<DCDE> <6B0A>
+<DCDF> <69F9>
+<DCE0> <69F2>
+<DCE1> <69E7>
+<DCE2> <6A05>
+<DCE3> <69B1>
+<DCE4> <6A1E>
+<DCE5> <69ED>
+<DCE6> <6A14>
+<DCE7> <69EB>
+<DCE8> <6A0A>
+<DCE9> <6A12>
+<DCEA> <6AC1>
+<DCEB> <6A23>
+<DCEC> <6A13>
+<DCED> <6A44>
+<DCEE> <6A0C>
+<DCEF> <6A72>
+<DCF0> <6A36>
+<DCF1> <6A78>
+<DCF2> <6A47>
+<DCF3> <6A62>
+<DCF4> <6A59>
+<DCF5> <6A66>
+<DCF6> <6A48>
+<DCF7> <6A38>
+<DCF8> <6A22>
+<DCF9> <6A90>
+<DCFA> <6A8D>
+<DCFB> <6AA0>
+<DCFC> <6A84>
+<DCFD> <6AA2>
+<DCFE> <6AA3>
+<DDA1> <6A97>
+<DDA2> <8617>
+<DDA3> <6ABB>
+<DDA4> <6AC3>
+<DDA5> <6AC2>
+<DDA6> <6AB8>
+<DDA7> <6AB3>
+<DDA8> <6AAC>
+<DDA9> <6ADE>
+<DDAA> <6AD1>
+<DDAB> <6ADF>
+<DDAC> <6AAA>
+<DDAD> <6ADA>
+<DDAE> <6AEA>
+<DDAF> <6AFB>
+<DDB0> <6B05>
+<DDB1> <8616>
+<DDB2> <6AFA>
+<DDB3> <6B12>
+<DDB4> <6B16>
+<DDB5> <9B31>
+<DDB6> <6B1F>
+<DDB7> <6B38>
+<DDB8> <6B37>
+<DDB9> <76DC>
+<DDBA> <6B39>
+<DDBB> <98EE>
+<DDBC> <6B47>
+<DDBD> <6B43>
+<DDBE> <6B49>
+<DDBF> <6B50>
+<DDC0> <6B59>
+<DDC1> <6B54>
+<DDC2> <6B5B>
+<DDC3> <6B5F>
+<DDC4> <6B61>
+<DDC5> <6B78>
+<DDC6> <6B79>
+<DDC7> <6B7F>
+endbfchar
+
+100 beginbfchar
+<DDC8> <6B80>
+<DDC9> <6B84>
+<DDCA> <6B83>
+<DDCB> <6B8D>
+<DDCC> <6B98>
+<DDCD> <6B95>
+<DDCE> <6B9E>
+<DDCF> <6BA4>
+<DDD0> <6BAA>
+<DDD1> <6BAB>
+<DDD2> <6BAF>
+<DDD3> <6BB2>
+<DDD4> <6BB1>
+<DDD5> <6BB3>
+<DDD6> <6BB7>
+<DDD7> <6BBC>
+<DDD8> <6BC6>
+<DDD9> <6BCB>
+<DDDA> <6BD3>
+<DDDB> <6BDF>
+<DDDC> <6BEC>
+<DDDD> <6BEB>
+<DDDE> <6BF3>
+<DDDF> <6BEF>
+<DDE0> <9EBE>
+<DDE1> <6C08>
+<DDE2> <6C13>
+<DDE3> <6C14>
+<DDE4> <6C1B>
+<DDE5> <6C24>
+<DDE6> <6C23>
+<DDE7> <6C5E>
+<DDE8> <6C55>
+<DDE9> <6C62>
+<DDEA> <6C6A>
+<DDEB> <6C82>
+<DDEC> <6C8D>
+<DDED> <6C9A>
+<DDEE> <6C81>
+<DDEF> <6C9B>
+<DDF0> <6C7E>
+<DDF1> <6C68>
+<DDF2> <6C73>
+<DDF3> <6C92>
+<DDF4> <6C90>
+<DDF5> <6CC4>
+<DDF6> <6CF1>
+<DDF7> <6CD3>
+<DDF8> <6CBD>
+<DDF9> <6CD7>
+<DDFA> <6CC5>
+<DDFB> <6CDD>
+<DDFC> <6CAE>
+<DDFD> <6CB1>
+<DDFE> <6CBE>
+<DEA1> <6CBA>
+<DEA2> <6CDB>
+<DEA3> <6CEF>
+<DEA4> <6CD9>
+<DEA5> <6CEA>
+<DEA6> <6D1F>
+<DEA7> <884D>
+<DEA8> <6D36>
+<DEA9> <6D2B>
+<DEAA> <6D3D>
+<DEAB> <6D38>
+<DEAC> <6D19>
+<DEAD> <6D35>
+<DEAE> <6D33>
+<DEAF> <6D12>
+<DEB0> <6D0C>
+<DEB1> <6D63>
+<DEB2> <6D93>
+<DEB3> <6D64>
+<DEB4> <6D5A>
+<DEB5> <6D79>
+<DEB6> <6D59>
+<DEB7> <6D8E>
+<DEB8> <6D95>
+<DEB9> <6FE4>
+<DEBA> <6D85>
+<DEBB> <6DF9>
+<DEBC> <6E15>
+<DEBD> <6E0A>
+<DEBE> <6DB5>
+<DEBF> <6DC7>
+<DEC0> <6DE6>
+<DEC1> <6DB8>
+<DEC2> <6DC6>
+<DEC3> <6DEC>
+<DEC4> <6DDE>
+<DEC5> <6DCC>
+<DEC6> <6DE8>
+<DEC7> <6DD2>
+<DEC8> <6DC5>
+<DEC9> <6DFA>
+<DECA> <6DD9>
+<DECB> <6DE4>
+<DECC> <6DD5>
+<DECD> <6DEA>
+endbfchar
+
+100 beginbfchar
+<DECE> <6DEE>
+<DECF> <6E2D>
+<DED0> <6E6E>
+<DED1> <6E2E>
+<DED2> <6E19>
+<DED3> <6E72>
+<DED4> <6E5F>
+<DED5> <6E3E>
+<DED6> <6E23>
+<DED7> <6E6B>
+<DED8> <6E2B>
+<DED9> <6E76>
+<DEDA> <6E4D>
+<DEDB> <6E1F>
+<DEDC> <6E43>
+<DEDD> <6E3A>
+<DEDE> <6E4E>
+<DEDF> <6E24>
+<DEE0> <6EFF>
+<DEE1> <6E1D>
+<DEE2> <6E38>
+<DEE3> <6E82>
+<DEE4> <6EAA>
+<DEE5> <6E98>
+<DEE6> <6EC9>
+<DEE7> <6EB7>
+<DEE8> <6ED3>
+<DEE9> <6EBD>
+<DEEA> <6EAF>
+<DEEB> <6EC4>
+<DEEC> <6EB2>
+<DEED> <6ED4>
+<DEEE> <6ED5>
+<DEEF> <6E8F>
+<DEF0> <6EA5>
+<DEF1> <6EC2>
+<DEF2> <6E9F>
+<DEF3> <6F41>
+<DEF4> <6F11>
+<DEF5> <704C>
+<DEF6> <6EEC>
+<DEF7> <6EF8>
+<DEF8> <6EFE>
+<DEF9> <6F3F>
+<DEFA> <6EF2>
+<DEFB> <6F31>
+<DEFC> <6EEF>
+<DEFD> <6F32>
+<DEFE> <6ECC>
+<DFA1> <6F3E>
+<DFA2> <6F13>
+<DFA3> <6EF7>
+<DFA4> <6F86>
+<DFA5> <6F7A>
+<DFA6> <6F78>
+<DFA7> <6F81>
+<DFA8> <6F80>
+<DFA9> <6F6F>
+<DFAA> <6F5B>
+<DFAB> <6FF3>
+<DFAC> <6F6D>
+<DFAD> <6F82>
+<DFAE> <6F7C>
+<DFAF> <6F58>
+<DFB0> <6F8E>
+<DFB1> <6F91>
+<DFB2> <6FC2>
+<DFB3> <6F66>
+<DFB4> <6FB3>
+<DFB5> <6FA3>
+<DFB6> <6FA1>
+<DFB7> <6FA4>
+<DFB8> <6FB9>
+<DFB9> <6FC6>
+<DFBA> <6FAA>
+<DFBB> <6FDF>
+<DFBC> <6FD5>
+<DFBD> <6FEC>
+<DFBE> <6FD4>
+<DFBF> <6FD8>
+<DFC0> <6FF1>
+<DFC1> <6FEE>
+<DFC2> <6FDB>
+<DFC3> <7009>
+<DFC4> <700B>
+<DFC5> <6FFA>
+<DFC6> <7011>
+<DFC7> <7001>
+<DFC8> <700F>
+<DFC9> <6FFE>
+<DFCA> <701B>
+<DFCB> <701A>
+<DFCC> <6F74>
+<DFCD> <701D>
+<DFCE> <7018>
+<DFCF> <701F>
+<DFD0> <7030>
+<DFD1> <703E>
+<DFD2> <7032>
+<DFD3> <7051>
+endbfchar
+
+100 beginbfchar
+<DFD4> <7063>
+<DFD5> <7099>
+<DFD6> <7092>
+<DFD7> <70AF>
+<DFD8> <70F1>
+<DFD9> <70AC>
+<DFDA> <70B8>
+<DFDB> <70B3>
+<DFDC> <70AE>
+<DFDD> <70DF>
+<DFDE> <70CB>
+<DFDF> <70DD>
+<DFE0> <70D9>
+<DFE1> <7109>
+<DFE2> <70FD>
+<DFE3> <711C>
+<DFE4> <7119>
+<DFE5> <7165>
+<DFE6> <7155>
+<DFE7> <7188>
+<DFE8> <7166>
+<DFE9> <7162>
+<DFEA> <714C>
+<DFEB> <7156>
+<DFEC> <716C>
+<DFED> <718F>
+<DFEE> <71FB>
+<DFEF> <7184>
+<DFF0> <7195>
+<DFF1> <71A8>
+<DFF2> <71AC>
+<DFF3> <71D7>
+<DFF4> <71B9>
+<DFF5> <71BE>
+<DFF6> <71D2>
+<DFF7> <71C9>
+<DFF8> <71D4>
+<DFF9> <71CE>
+<DFFA> <71E0>
+<DFFB> <71EC>
+<DFFC> <71E7>
+<DFFD> <71F5>
+<DFFE> <71FC>
+<E0A1> <71F9>
+<E0A2> <71FF>
+<E0A3> <720D>
+<E0A4> <7210>
+<E0A5> <721B>
+<E0A6> <7228>
+<E0A7> <722D>
+<E0A8> <722C>
+<E0A9> <7230>
+<E0AA> <7232>
+<E0AB> <723B>
+<E0AC> <723C>
+<E0AD> <723F>
+<E0AE> <7240>
+<E0AF> <7246>
+<E0B0> <724B>
+<E0B1> <7258>
+<E0B2> <7274>
+<E0B3> <727E>
+<E0B4> <7282>
+<E0B5> <7281>
+<E0B6> <7287>
+<E0B7> <7292>
+<E0B8> <7296>
+<E0B9> <72A2>
+<E0BA> <72A7>
+<E0BB> <72B9>
+<E0BC> <72B2>
+<E0BD> <72C3>
+<E0BE> <72C6>
+<E0BF> <72C4>
+<E0C0> <72CE>
+<E0C1> <72D2>
+<E0C2> <72E2>
+<E0C3> <72E0>
+<E0C4> <72E1>
+<E0C5> <72F9>
+<E0C6> <72F7>
+<E0C7> <500F>
+<E0C8> <7317>
+<E0C9> <730A>
+<E0CA> <731C>
+<E0CB> <7316>
+<E0CC> <731D>
+<E0CD> <7334>
+<E0CE> <732F>
+<E0CF> <7329>
+<E0D0> <7325>
+<E0D1> <733E>
+<E0D2> <734E>
+<E0D3> <734F>
+<E0D4> <9ED8>
+<E0D5> <7357>
+<E0D6> <736A>
+<E0D7> <7368>
+<E0D8> <7370>
+<E0D9> <7378>
+endbfchar
+
+100 beginbfchar
+<E0DA> <7375>
+<E0DB> <737B>
+<E0DC> <737A>
+<E0DD> <73C8>
+<E0DE> <73B3>
+<E0DF> <73CE>
+<E0E0> <73BB>
+<E0E1> <73C0>
+<E0E2> <73E5>
+<E0E3> <73EE>
+<E0E4> <73DE>
+<E0E5> <74A2>
+<E0E6> <7405>
+<E0E7> <746F>
+<E0E8> <7425>
+<E0E9> <73F8>
+<E0EA> <7432>
+<E0EB> <743A>
+<E0EC> <7455>
+<E0ED> <743F>
+<E0EE> <745F>
+<E0EF> <7459>
+<E0F0> <7441>
+<E0F1> <745C>
+<E0F2> <7469>
+<E0F3> <7470>
+<E0F4> <7463>
+<E0F5> <746A>
+<E0F6> <7476>
+<E0F7> <747E>
+<E0F8> <748B>
+<E0F9> <749E>
+<E0FA> <74A7>
+<E0FB> <74CA>
+<E0FC> <74CF>
+<E0FD> <74D4>
+<E0FE> <73F1>
+<E1A1> <74E0>
+<E1A2> <74E3>
+<E1A3> <74E7>
+<E1A4> <74E9>
+<E1A5> <74EE>
+<E1A6> <74F2>
+<E1A7> <74F0>
+<E1A8> <74F1>
+<E1A9> <74F8>
+<E1AA> <74F7>
+<E1AB> <7504>
+<E1AC> <7503>
+<E1AD> <7505>
+<E1AE> <750C>
+<E1AF> <750E>
+<E1B0> <750D>
+<E1B1> <7515>
+<E1B2> <7513>
+<E1B3> <751E>
+<E1B4> <7526>
+<E1B5> <752C>
+<E1B6> <753C>
+<E1B7> <7544>
+<E1B8> <754D>
+<E1B9> <754A>
+<E1BA> <7549>
+<E1BB> <755B>
+<E1BC> <7546>
+<E1BD> <755A>
+<E1BE> <7569>
+<E1BF> <7564>
+<E1C0> <7567>
+<E1C1> <756B>
+<E1C2> <756D>
+<E1C3> <7578>
+<E1C4> <7576>
+<E1C5> <7586>
+<E1C6> <7587>
+<E1C7> <7574>
+<E1C8> <758A>
+<E1C9> <7589>
+<E1CA> <7582>
+<E1CB> <7594>
+<E1CC> <759A>
+<E1CD> <759D>
+<E1CE> <75A5>
+<E1CF> <75A3>
+<E1D0> <75C2>
+<E1D1> <75B3>
+<E1D2> <75C3>
+<E1D3> <75B5>
+<E1D4> <75BD>
+<E1D5> <75B8>
+<E1D6> <75BC>
+<E1D7> <75B1>
+<E1D8> <75CD>
+<E1D9> <75CA>
+<E1DA> <75D2>
+<E1DB> <75D9>
+<E1DC> <75E3>
+<E1DD> <75DE>
+<E1DE> <75FE>
+<E1DF> <75FF>
+endbfchar
+
+100 beginbfchar
+<E1E0> <75FC>
+<E1E1> <7601>
+<E1E2> <75F0>
+<E1E3> <75FA>
+<E1E4> <75F2>
+<E1E5> <75F3>
+<E1E6> <760B>
+<E1E7> <760D>
+<E1E8> <7609>
+<E1E9> <761F>
+<E1EA> <7627>
+<E1EB> <7620>
+<E1EC> <7621>
+<E1ED> <7622>
+<E1EE> <7624>
+<E1EF> <7634>
+<E1F0> <7630>
+<E1F1> <763B>
+<E1F2> <7647>
+<E1F3> <7648>
+<E1F4> <7646>
+<E1F5> <765C>
+<E1F6> <7658>
+<E1F7> <7661>
+<E1F8> <7662>
+<E1F9> <7668>
+<E1FA> <7669>
+<E1FB> <766A>
+<E1FC> <7667>
+<E1FD> <766C>
+<E1FE> <7670>
+<E2A1> <7672>
+<E2A2> <7676>
+<E2A3> <7678>
+<E2A4> <767C>
+<E2A5> <7680>
+<E2A6> <7683>
+<E2A7> <7688>
+<E2A8> <768B>
+<E2A9> <768E>
+<E2AA> <7696>
+<E2AB> <7693>
+<E2AC> <7699>
+<E2AD> <769A>
+<E2AE> <76B0>
+<E2AF> <76B4>
+<E2B0> <76B8>
+<E2B1> <76B9>
+<E2B2> <76BA>
+<E2B3> <76C2>
+<E2B4> <76CD>
+<E2B5> <76D6>
+<E2B6> <76D2>
+<E2B7> <76DE>
+<E2B8> <76E1>
+<E2B9> <76E5>
+<E2BA> <76E7>
+<E2BB> <76EA>
+<E2BC> <862F>
+<E2BD> <76FB>
+<E2BE> <7708>
+<E2BF> <7707>
+<E2C0> <7704>
+<E2C1> <7729>
+<E2C2> <7724>
+<E2C3> <771E>
+<E2C4> <7725>
+<E2C5> <7726>
+<E2C6> <771B>
+<E2C7> <7737>
+<E2C8> <7738>
+<E2C9> <7747>
+<E2CA> <775A>
+<E2CB> <7768>
+<E2CC> <776B>
+<E2CD> <775B>
+<E2CE> <7765>
+<E2CF> <777F>
+<E2D0> <777E>
+<E2D1> <7779>
+<E2D2> <778E>
+<E2D3> <778B>
+<E2D4> <7791>
+<E2D5> <77A0>
+<E2D6> <779E>
+<E2D7> <77B0>
+<E2D8> <77B6>
+<E2D9> <77B9>
+<E2DA> <77BF>
+<E2DB> <77BC>
+<E2DC> <77BD>
+<E2DD> <77BB>
+<E2DE> <77C7>
+<E2DF> <77CD>
+<E2E0> <77D7>
+<E2E1> <77DA>
+<E2E2> <77DC>
+<E2E3> <77E3>
+<E2E4> <77EE>
+<E2E5> <77FC>
+endbfchar
+
+100 beginbfchar
+<E2E6> <780C>
+<E2E7> <7812>
+<E2E8> <7926>
+<E2E9> <7820>
+<E2EA> <792A>
+<E2EB> <7845>
+<E2EC> <788E>
+<E2ED> <7874>
+<E2EE> <7886>
+<E2EF> <787C>
+<E2F0> <789A>
+<E2F1> <788C>
+<E2F2> <78A3>
+<E2F3> <78B5>
+<E2F4> <78AA>
+<E2F5> <78AF>
+<E2F6> <78D1>
+<E2F7> <78C6>
+<E2F8> <78CB>
+<E2F9> <78D4>
+<E2FA> <78BE>
+<E2FB> <78BC>
+<E2FC> <78C5>
+<E2FD> <78CA>
+<E2FE> <78EC>
+<E3A1> <78E7>
+<E3A2> <78DA>
+<E3A3> <78FD>
+<E3A4> <78F4>
+<E3A5> <7907>
+<E3A6> <7912>
+<E3A7> <7911>
+<E3A8> <7919>
+<E3A9> <792C>
+<E3AA> <792B>
+<E3AB> <7940>
+<E3AC> <7960>
+<E3AD> <7957>
+<E3AE> <795F>
+<E3AF> <795A>
+<E3B0> <7955>
+<E3B1> <7953>
+<E3B2> <797A>
+<E3B3> <797F>
+<E3B4> <798A>
+<E3B5> <799D>
+<E3B6> <79A7>
+<E3B7> <9F4B>
+<E3B8> <79AA>
+<E3B9> <79AE>
+<E3BA> <79B3>
+<E3BB> <79B9>
+<E3BC> <79BA>
+<E3BD> <79C9>
+<E3BE> <79D5>
+<E3BF> <79E7>
+<E3C0> <79EC>
+<E3C1> <79E1>
+<E3C2> <79E3>
+<E3C3> <7A08>
+<E3C4> <7A0D>
+<E3C5> <7A18>
+<E3C6> <7A19>
+<E3C7> <7A20>
+<E3C8> <7A1F>
+<E3C9> <7980>
+<E3CA> <7A31>
+<E3CB> <7A3B>
+<E3CC> <7A3E>
+<E3CD> <7A37>
+<E3CE> <7A43>
+<E3CF> <7A57>
+<E3D0> <7A49>
+<E3D1> <7A61>
+<E3D2> <7A62>
+<E3D3> <7A69>
+<E3D4> <9F9D>
+<E3D5> <7A70>
+<E3D6> <7A79>
+<E3D7> <7A7D>
+<E3D8> <7A88>
+<E3D9> <7A97>
+<E3DA> <7A95>
+<E3DB> <7A98>
+<E3DC> <7A96>
+<E3DD> <7AA9>
+<E3DE> <7AC8>
+<E3DF> <7AB0>
+<E3E0> <7AB6>
+<E3E1> <7AC5>
+<E3E2> <7AC4>
+<E3E3> <7ABF>
+<E3E4> <9083>
+<E3E5> <7AC7>
+<E3E6> <7ACA>
+<E3E7> <7ACD>
+<E3E8> <7ACF>
+<E3E9> <7AD5>
+<E3EA> <7AD3>
+<E3EB> <7AD9>
+endbfchar
+
+100 beginbfchar
+<E3EC> <7ADA>
+<E3ED> <7ADD>
+<E3EE> <7AE1>
+<E3EF> <7AE2>
+<E3F0> <7AE6>
+<E3F1> <7AED>
+<E3F2> <7AF0>
+<E3F3> <7B02>
+<E3F4> <7B0F>
+<E3F5> <7B0A>
+<E3F6> <7B06>
+<E3F7> <7B33>
+<E3F8> <7B18>
+<E3F9> <7B19>
+<E3FA> <7B1E>
+<E3FB> <7B35>
+<E3FC> <7B28>
+<E3FD> <7B36>
+<E3FE> <7B50>
+<E4A1> <7B7A>
+<E4A2> <7B04>
+<E4A3> <7B4D>
+<E4A4> <7B0B>
+<E4A5> <7B4C>
+<E4A6> <7B45>
+<E4A7> <7B75>
+<E4A8> <7B65>
+<E4A9> <7B74>
+<E4AA> <7B67>
+<E4AB> <7B70>
+<E4AC> <7B71>
+<E4AD> <7B6C>
+<E4AE> <7B6E>
+<E4AF> <7B9D>
+<E4B0> <7B98>
+<E4B1> <7B9F>
+<E4B2> <7B8D>
+<E4B3> <7B9C>
+<E4B4> <7B9A>
+<E4B5> <7B8B>
+<E4B6> <7B92>
+<E4B7> <7B8F>
+<E4B8> <7B5D>
+<E4B9> <7B99>
+<E4BA> <7BCB>
+<E4BB> <7BC1>
+<E4BC> <7BCC>
+<E4BD> <7BCF>
+<E4BE> <7BB4>
+<E4BF> <7BC6>
+<E4C0> <7BDD>
+<E4C1> <7BE9>
+<E4C2> <7C11>
+<E4C3> <7C14>
+<E4C4> <7BE6>
+<E4C5> <7BE5>
+<E4C6> <7C60>
+<E4C7> <7C00>
+<E4C8> <7C07>
+<E4C9> <7C13>
+<E4CA> <7BF3>
+<E4CB> <7BF7>
+<E4CC> <7C17>
+<E4CD> <7C0D>
+<E4CE> <7BF6>
+<E4CF> <7C23>
+<E4D0> <7C27>
+<E4D1> <7C2A>
+<E4D2> <7C1F>
+<E4D3> <7C37>
+<E4D4> <7C2B>
+<E4D5> <7C3D>
+<E4D6> <7C4C>
+<E4D7> <7C43>
+<E4D8> <7C54>
+<E4D9> <7C4F>
+<E4DA> <7C40>
+<E4DB> <7C50>
+<E4DC> <7C58>
+<E4DD> <7C5F>
+<E4DE> <7C64>
+<E4DF> <7C56>
+<E4E0> <7C65>
+<E4E1> <7C6C>
+<E4E2> <7C75>
+<E4E3> <7C83>
+<E4E4> <7C90>
+<E4E5> <7CA4>
+<E4E6> <7CAD>
+<E4E7> <7CA2>
+<E4E8> <7CAB>
+<E4E9> <7CA1>
+<E4EA> <7CA8>
+<E4EB> <7CB3>
+<E4EC> <7CB2>
+<E4ED> <7CB1>
+<E4EE> <7CAE>
+<E4EF> <7CB9>
+<E4F0> <7CBD>
+<E4F1> <7CC0>
+endbfchar
+
+100 beginbfchar
+<E4F2> <7CC5>
+<E4F3> <7CC2>
+<E4F4> <7CD8>
+<E4F5> <7CD2>
+<E4F6> <7CDC>
+<E4F7> <7CE2>
+<E4F8> <9B3B>
+<E4F9> <7CEF>
+<E4FA> <7CF2>
+<E4FB> <7CF4>
+<E4FC> <7CF6>
+<E4FD> <7CFA>
+<E4FE> <7D06>
+<E5A1> <7D02>
+<E5A2> <7D1C>
+<E5A3> <7D15>
+<E5A4> <7D0A>
+<E5A5> <7D45>
+<E5A6> <7D4B>
+<E5A7> <7D2E>
+<E5A8> <7D32>
+<E5A9> <7D3F>
+<E5AA> <7D35>
+<E5AB> <7D46>
+<E5AC> <7D73>
+<E5AD> <7D56>
+<E5AE> <7D4E>
+<E5AF> <7D72>
+<E5B0> <7D68>
+<E5B1> <7D6E>
+<E5B2> <7D4F>
+<E5B3> <7D63>
+<E5B4> <7D93>
+<E5B5> <7D89>
+<E5B6> <7D5B>
+<E5B7> <7D8F>
+<E5B8> <7D7D>
+<E5B9> <7D9B>
+<E5BA> <7DBA>
+<E5BB> <7DAE>
+<E5BC> <7DA3>
+<E5BD> <7DB5>
+<E5BE> <7DC7>
+<E5BF> <7DBD>
+<E5C0> <7DAB>
+<E5C1> <7E3D>
+<E5C2> <7DA2>
+<E5C3> <7DAF>
+<E5C4> <7DDC>
+<E5C5> <7DB8>
+<E5C6> <7D9F>
+<E5C7> <7DB0>
+<E5C8> <7DD8>
+<E5C9> <7DDD>
+<E5CA> <7DE4>
+<E5CB> <7DDE>
+<E5CC> <7DFB>
+<E5CD> <7DF2>
+<E5CE> <7DE1>
+<E5CF> <7E05>
+<E5D0> <7E0A>
+<E5D1> <7E23>
+<E5D2> <7E21>
+<E5D3> <7E12>
+<E5D4> <7E31>
+<E5D5> <7E1F>
+<E5D6> <7E09>
+<E5D7> <7E0B>
+<E5D8> <7E22>
+<E5D9> <7E46>
+<E5DA> <7E66>
+<E5DB> <7E3B>
+<E5DC> <7E35>
+<E5DD> <7E39>
+<E5DE> <7E43>
+<E5DF> <7E37>
+<E5E0> <7E32>
+<E5E1> <7E3A>
+<E5E2> <7E67>
+<E5E3> <7E5D>
+<E5E4> <7E56>
+<E5E5> <7E5E>
+<E5E6> <7E59>
+<E5E7> <7E5A>
+<E5E8> <7E79>
+<E5E9> <7E6A>
+<E5EA> <7E69>
+<E5EB> <7E7C>
+<E5EC> <7E7B>
+<E5ED> <7E83>
+<E5EE> <7DD5>
+<E5EF> <7E7D>
+<E5F0> <8FAE>
+<E5F1> <7E7F>
+<E5F2> <7E88>
+<E5F3> <7E89>
+<E5F4> <7E8C>
+<E5F5> <7E92>
+<E5F6> <7E90>
+<E5F7> <7E93>
+endbfchar
+
+100 beginbfchar
+<E5F8> <7E94>
+<E5F9> <7E96>
+<E5FA> <7E8E>
+<E5FB> <7E9B>
+<E5FC> <7E9C>
+<E5FD> <7F38>
+<E5FE> <7F3A>
+<E6A1> <7F45>
+<E6A2> <7F4C>
+<E6A3> <7F4D>
+<E6A4> <7F4E>
+<E6A5> <7F50>
+<E6A6> <7F51>
+<E6A7> <7F55>
+<E6A8> <7F54>
+<E6A9> <7F58>
+<E6AA> <7F5F>
+<E6AB> <7F60>
+<E6AC> <7F68>
+<E6AD> <7F69>
+<E6AE> <7F67>
+<E6AF> <7F78>
+<E6B0> <7F82>
+<E6B1> <7F86>
+<E6B2> <7F83>
+<E6B3> <7F88>
+<E6B4> <7F87>
+<E6B5> <7F8C>
+<E6B6> <7F94>
+<E6B7> <7F9E>
+<E6B8> <7F9D>
+<E6B9> <7F9A>
+<E6BA> <7FA3>
+<E6BB> <7FAF>
+<E6BC> <7FB2>
+<E6BD> <7FB9>
+<E6BE> <7FAE>
+<E6BF> <7FB6>
+<E6C0> <7FB8>
+<E6C1> <8B71>
+<E6C2> <7FC5>
+<E6C3> <7FC6>
+<E6C4> <7FCA>
+<E6C5> <7FD5>
+<E6C6> <7FD4>
+<E6C7> <7FE1>
+<E6C8> <7FE6>
+<E6C9> <7FE9>
+<E6CA> <7FF3>
+<E6CB> <7FF9>
+<E6CC> <98DC>
+<E6CD> <8006>
+<E6CE> <8004>
+<E6CF> <800B>
+<E6D0> <8012>
+<E6D1> <8018>
+<E6D2> <8019>
+<E6D3> <801C>
+<E6D4> <8021>
+<E6D5> <8028>
+<E6D6> <803F>
+<E6D7> <803B>
+<E6D8> <804A>
+<E6D9> <8046>
+<E6DA> <8052>
+<E6DB> <8058>
+<E6DC> <805A>
+<E6DD> <805F>
+<E6DE> <8062>
+<E6DF> <8068>
+<E6E0> <8073>
+<E6E1> <8072>
+<E6E2> <8070>
+<E6E3> <8076>
+<E6E4> <8079>
+<E6E5> <807D>
+<E6E6> <807F>
+<E6E7> <8084>
+<E6E8> <8086>
+<E6E9> <8085>
+<E6EA> <809B>
+<E6EB> <8093>
+<E6EC> <809A>
+<E6ED> <80AD>
+<E6EE> <5190>
+<E6EF> <80AC>
+<E6F0> <80DB>
+<E6F1> <80E5>
+<E6F2> <80D9>
+<E6F3> <80DD>
+<E6F4> <80C4>
+<E6F5> <80DA>
+<E6F6> <80D6>
+<E6F7> <8109>
+<E6F8> <80EF>
+<E6F9> <80F1>
+<E6FA> <811B>
+<E6FB> <8129>
+<E6FC> <8123>
+<E6FD> <812F>
+endbfchar
+
+100 beginbfchar
+<E6FE> <814B>
+<E7A1> <968B>
+<E7A2> <8146>
+<E7A3> <813E>
+<E7A4> <8153>
+<E7A5> <8151>
+<E7A6> <80FC>
+<E7A7> <8171>
+<E7A8> <816E>
+<E7A9> <8165>
+<E7AA> <8166>
+<E7AB> <8174>
+<E7AC> <8183>
+<E7AD> <8188>
+<E7AE> <818A>
+<E7AF> <8180>
+<E7B0> <8182>
+<E7B1> <81A0>
+<E7B2> <8195>
+<E7B3> <81A4>
+<E7B4> <81A3>
+<E7B5> <815F>
+<E7B6> <8193>
+<E7B7> <81A9>
+<E7B8> <81B0>
+<E7B9> <81B5>
+<E7BA> <81BE>
+<E7BB> <81B8>
+<E7BC> <81BD>
+<E7BD> <81C0>
+<E7BE> <81C2>
+<E7BF> <81BA>
+<E7C0> <81C9>
+<E7C1> <81CD>
+<E7C2> <81D1>
+<E7C3> <81D9>
+<E7C4> <81D8>
+<E7C5> <81C8>
+<E7C6> <81DA>
+<E7C7> <81DF>
+<E7C8> <81E0>
+<E7C9> <81E7>
+<E7CA> <81FA>
+<E7CB> <81FB>
+<E7CC> <81FE>
+<E7CD> <8201>
+<E7CE> <8202>
+<E7CF> <8205>
+<E7D0> <8207>
+<E7D1> <820A>
+<E7D2> <820D>
+<E7D3> <8210>
+<E7D4> <8216>
+<E7D5> <8229>
+<E7D6> <822B>
+<E7D7> <8238>
+<E7D8> <8233>
+<E7D9> <8240>
+<E7DA> <8259>
+<E7DB> <8258>
+<E7DC> <825D>
+<E7DD> <825A>
+<E7DE> <825F>
+<E7DF> <8264>
+<E7E0> <8262>
+<E7E1> <8268>
+<E7E2> <826A>
+<E7E3> <826B>
+<E7E4> <822E>
+<E7E5> <8271>
+<E7E6> <8277>
+<E7E7> <8278>
+<E7E8> <827E>
+<E7E9> <828D>
+<E7EA> <8292>
+<E7EB> <82AB>
+<E7EC> <829F>
+<E7ED> <82BB>
+<E7EE> <82AC>
+<E7EF> <82E1>
+<E7F0> <82E3>
+<E7F1> <82DF>
+<E7F2> <82D2>
+<E7F3> <82F4>
+<E7F4> <82F3>
+<E7F5> <82FA>
+<E7F6> <8393>
+<E7F7> <8303>
+<E7F8> <82FB>
+<E7F9> <82F9>
+<E7FA> <82DE>
+<E7FB> <8306>
+<E7FC> <82DC>
+<E7FD> <8309>
+<E7FE> <82D9>
+<E8A1> <8335>
+<E8A2> <8334>
+<E8A3> <8316>
+<E8A4> <8332>
+<E8A5> <8331>
+endbfchar
+
+100 beginbfchar
+<E8A6> <8340>
+<E8A7> <8339>
+<E8A8> <8350>
+<E8A9> <8345>
+<E8AA> <832F>
+<E8AB> <832B>
+<E8AC> <8317>
+<E8AD> <8318>
+<E8AE> <8385>
+<E8AF> <839A>
+<E8B0> <83AA>
+<E8B1> <839F>
+<E8B2> <83A2>
+<E8B3> <8396>
+<E8B4> <8323>
+<E8B5> <838E>
+<E8B6> <8387>
+<E8B7> <838A>
+<E8B8> <837C>
+<E8B9> <83B5>
+<E8BA> <8373>
+<E8BB> <8375>
+<E8BC> <83A0>
+<E8BD> <8389>
+<E8BE> <83A8>
+<E8BF> <83F4>
+<E8C0> <8413>
+<E8C1> <83EB>
+<E8C2> <83CE>
+<E8C3> <83FD>
+<E8C4> <8403>
+<E8C5> <83D8>
+<E8C6> <840B>
+<E8C7> <83C1>
+<E8C8> <83F7>
+<E8C9> <8407>
+<E8CA> <83E0>
+<E8CB> <83F2>
+<E8CC> <840D>
+<E8CD> <8422>
+<E8CE> <8420>
+<E8CF> <83BD>
+<E8D0> <8438>
+<E8D1> <8506>
+<E8D2> <83FB>
+<E8D3> <846D>
+<E8D4> <842A>
+<E8D5> <843C>
+<E8D6> <855A>
+<E8D7> <8484>
+<E8D8> <8477>
+<E8D9> <846B>
+<E8DA> <84AD>
+<E8DB> <846E>
+<E8DC> <8482>
+<E8DD> <8469>
+<E8DE> <8446>
+<E8DF> <842C>
+<E8E0> <846F>
+<E8E1> <8479>
+<E8E2> <8435>
+<E8E3> <84CA>
+<E8E4> <8462>
+<E8E5> <84B9>
+<E8E6> <84BF>
+<E8E7> <849F>
+<E8E8> <84D9>
+<E8E9> <84CD>
+<E8EA> <84BB>
+<E8EB> <84DA>
+<E8EC> <84D0>
+<E8ED> <84C1>
+<E8EE> <84C6>
+<E8EF> <84D6>
+<E8F0> <84A1>
+<E8F1> <8521>
+<E8F2> <84FF>
+<E8F3> <84F4>
+<E8F4> <8517>
+<E8F5> <8518>
+<E8F6> <852C>
+<E8F7> <851F>
+<E8F8> <8515>
+<E8F9> <8514>
+<E8FA> <84FC>
+<E8FB> <8540>
+<E8FC> <8563>
+<E8FD> <8558>
+<E8FE> <8548>
+<E9A1> <8541>
+<E9A2> <8602>
+<E9A3> <854B>
+<E9A4> <8555>
+<E9A5> <8580>
+<E9A6> <85A4>
+<E9A7> <8588>
+<E9A8> <8591>
+<E9A9> <858A>
+<E9AA> <85A8>
+<E9AB> <856D>
+endbfchar
+
+100 beginbfchar
+<E9AC> <8594>
+<E9AD> <859B>
+<E9AE> <85EA>
+<E9AF> <8587>
+<E9B0> <859C>
+<E9B1> <8577>
+<E9B2> <857E>
+<E9B3> <8590>
+<E9B4> <85C9>
+<E9B5> <85BA>
+<E9B6> <85CF>
+<E9B7> <85B9>
+<E9B8> <85D0>
+<E9B9> <85D5>
+<E9BA> <85DD>
+<E9BB> <85E5>
+<E9BC> <85DC>
+<E9BD> <85F9>
+<E9BE> <860A>
+<E9BF> <8613>
+<E9C0> <860B>
+<E9C1> <85FE>
+<E9C2> <85FA>
+<E9C3> <8606>
+<E9C4> <8622>
+<E9C5> <861A>
+<E9C6> <8630>
+<E9C7> <863F>
+<E9C8> <864D>
+<E9C9> <4E55>
+<E9CA> <8654>
+<E9CB> <865F>
+<E9CC> <8667>
+<E9CD> <8671>
+<E9CE> <8693>
+<E9CF> <86A3>
+<E9D0> <86A9>
+<E9D1> <86AA>
+<E9D2> <868B>
+<E9D3> <868C>
+<E9D4> <86B6>
+<E9D5> <86AF>
+<E9D6> <86C4>
+<E9D7> <86C6>
+<E9D8> <86B0>
+<E9D9> <86C9>
+<E9DA> <8823>
+<E9DB> <86AB>
+<E9DC> <86D4>
+<E9DD> <86DE>
+<E9DE> <86E9>
+<E9DF> <86EC>
+<E9E0> <86DF>
+<E9E1> <86DB>
+<E9E2> <86EF>
+<E9E3> <8712>
+<E9E4> <8706>
+<E9E5> <8708>
+<E9E6> <8700>
+<E9E7> <8703>
+<E9E8> <86FB>
+<E9E9> <8711>
+<E9EA> <8709>
+<E9EB> <870D>
+<E9EC> <86F9>
+<E9ED> <870A>
+<E9EE> <8734>
+<E9EF> <873F>
+<E9F0> <8737>
+<E9F1> <873B>
+<E9F2> <8725>
+<E9F3> <8729>
+<E9F4> <871A>
+<E9F5> <8760>
+<E9F6> <875F>
+<E9F7> <8778>
+<E9F8> <874C>
+<E9F9> <874E>
+<E9FA> <8774>
+<E9FB> <8757>
+<E9FC> <8768>
+<E9FD> <876E>
+<E9FE> <8759>
+<EAA1> <8753>
+<EAA2> <8763>
+<EAA3> <876A>
+<EAA4> <8805>
+<EAA5> <87A2>
+<EAA6> <879F>
+<EAA7> <8782>
+<EAA8> <87AF>
+<EAA9> <87CB>
+<EAAA> <87BD>
+<EAAB> <87C0>
+<EAAC> <87D0>
+<EAAD> <96D6>
+<EAAE> <87AB>
+<EAAF> <87C4>
+<EAB0> <87B3>
+<EAB1> <87C7>
+endbfchar
+
+100 beginbfchar
+<EAB2> <87C6>
+<EAB3> <87BB>
+<EAB4> <87EF>
+<EAB5> <87F2>
+<EAB6> <87E0>
+<EAB7> <880F>
+<EAB8> <880D>
+<EAB9> <87FE>
+<EABA> <87F6>
+<EABB> <87F7>
+<EABC> <880E>
+<EABD> <87D2>
+<EABE> <8811>
+<EABF> <8816>
+<EAC0> <8815>
+<EAC1> <8822>
+<EAC2> <8821>
+<EAC3> <8831>
+<EAC4> <8836>
+<EAC5> <8839>
+<EAC6> <8827>
+<EAC7> <883B>
+<EAC8> <8844>
+<EAC9> <8842>
+<EACA> <8852>
+<EACB> <8859>
+<EACC> <885E>
+<EACD> <8862>
+<EACE> <886B>
+<EACF> <8881>
+<EAD0> <887E>
+<EAD1> <889E>
+<EAD2> <8875>
+<EAD3> <887D>
+<EAD4> <88B5>
+<EAD5> <8872>
+<EAD6> <8882>
+<EAD7> <8897>
+<EAD8> <8892>
+<EAD9> <88AE>
+<EADA> <8899>
+<EADB> <88A2>
+<EADC> <888D>
+<EADD> <88A4>
+<EADE> <88B0>
+<EADF> <88BF>
+<EAE0> <88B1>
+<EAE1> <88C3>
+<EAE2> <88C4>
+<EAE3> <88D4>
+<EAE4> <88D8>
+<EAE5> <88D9>
+<EAE6> <88DD>
+<EAE7> <88F9>
+<EAE8> <8902>
+<EAE9> <88FC>
+<EAEA> <88F4>
+<EAEB> <88E8>
+<EAEC> <88F2>
+<EAED> <8904>
+<EAEE> <890C>
+<EAEF> <890A>
+<EAF0> <8913>
+<EAF1> <8943>
+<EAF2> <891E>
+<EAF3> <8925>
+<EAF4> <892A>
+<EAF5> <892B>
+<EAF6> <8941>
+<EAF7> <8944>
+<EAF8> <893B>
+<EAF9> <8936>
+<EAFA> <8938>
+<EAFB> <894C>
+<EAFC> <891D>
+<EAFD> <8960>
+<EAFE> <895E>
+<EBA1> <8966>
+<EBA2> <8964>
+<EBA3> <896D>
+<EBA4> <896A>
+<EBA5> <896F>
+<EBA6> <8974>
+<EBA7> <8977>
+<EBA8> <897E>
+<EBA9> <8983>
+<EBAA> <8988>
+<EBAB> <898A>
+<EBAC> <8993>
+<EBAD> <8998>
+<EBAE> <89A1>
+<EBAF> <89A9>
+<EBB0> <89A6>
+<EBB1> <89AC>
+<EBB2> <89AF>
+<EBB3> <89B2>
+<EBB4> <89BA>
+<EBB5> <89BD>
+<EBB6> <89BF>
+<EBB7> <89C0>
+endbfchar
+
+100 beginbfchar
+<EBB8> <89DA>
+<EBB9> <89DC>
+<EBBA> <89DD>
+<EBBB> <89E7>
+<EBBC> <89F4>
+<EBBD> <89F8>
+<EBBE> <8A03>
+<EBBF> <8A16>
+<EBC0> <8A10>
+<EBC1> <8A0C>
+<EBC2> <8A1B>
+<EBC3> <8A1D>
+<EBC4> <8A25>
+<EBC5> <8A36>
+<EBC6> <8A41>
+<EBC7> <8A5B>
+<EBC8> <8A52>
+<EBC9> <8A46>
+<EBCA> <8A48>
+<EBCB> <8A7C>
+<EBCC> <8A6D>
+<EBCD> <8A6C>
+<EBCE> <8A62>
+<EBCF> <8A85>
+<EBD0> <8A82>
+<EBD1> <8A84>
+<EBD2> <8AA8>
+<EBD3> <8AA1>
+<EBD4> <8A91>
+<EBD5> <8AA5>
+<EBD6> <8AA6>
+<EBD7> <8A9A>
+<EBD8> <8AA3>
+<EBD9> <8AC4>
+<EBDA> <8ACD>
+<EBDB> <8AC2>
+<EBDC> <8ADA>
+<EBDD> <8AEB>
+<EBDE> <8AF3>
+<EBDF> <8AE7>
+<EBE0> <8AE4>
+<EBE1> <8AF1>
+<EBE2> <8B14>
+<EBE3> <8AE0>
+<EBE4> <8AE2>
+<EBE5> <8AF7>
+<EBE6> <8ADE>
+<EBE7> <8ADB>
+<EBE8> <8B0C>
+<EBE9> <8B07>
+<EBEA> <8B1A>
+<EBEB> <8AE1>
+<EBEC> <8B16>
+<EBED> <8B10>
+<EBEE> <8B17>
+<EBEF> <8B20>
+<EBF0> <8B33>
+<EBF1> <97AB>
+<EBF2> <8B26>
+<EBF3> <8B2B>
+<EBF4> <8B3E>
+<EBF5> <8B28>
+<EBF6> <8B41>
+<EBF7> <8B4C>
+<EBF8> <8B4F>
+<EBF9> <8B4E>
+<EBFA> <8B49>
+<EBFB> <8B56>
+<EBFC> <8B5B>
+<EBFD> <8B5A>
+<EBFE> <8B6B>
+<ECA1> <8B5F>
+<ECA2> <8B6C>
+<ECA3> <8B6F>
+<ECA4> <8B74>
+<ECA5> <8B7D>
+<ECA6> <8B80>
+<ECA7> <8B8C>
+<ECA8> <8B8E>
+<ECA9> <8B92>
+<ECAA> <8B93>
+<ECAB> <8B96>
+<ECAC> <8B99>
+<ECAD> <8B9A>
+<ECAE> <8C3A>
+<ECAF> <8C41>
+<ECB0> <8C3F>
+<ECB1> <8C48>
+<ECB2> <8C4C>
+<ECB3> <8C4E>
+<ECB4> <8C50>
+<ECB5> <8C55>
+<ECB6> <8C62>
+<ECB7> <8C6C>
+<ECB8> <8C78>
+<ECB9> <8C7A>
+<ECBA> <8C82>
+<ECBB> <8C89>
+<ECBC> <8C85>
+<ECBD> <8C8A>
+endbfchar
+
+100 beginbfchar
+<ECBE> <8C8D>
+<ECBF> <8C8E>
+<ECC0> <8C94>
+<ECC1> <8C7C>
+<ECC2> <8C98>
+<ECC3> <621D>
+<ECC4> <8CAD>
+<ECC5> <8CAA>
+<ECC6> <8CBD>
+<ECC7> <8CB2>
+<ECC8> <8CB3>
+<ECC9> <8CAE>
+<ECCA> <8CB6>
+<ECCB> <8CC8>
+<ECCC> <8CC1>
+<ECCD> <8CE4>
+<ECCE> <8CE3>
+<ECCF> <8CDA>
+<ECD0> <8CFD>
+<ECD1> <8CFA>
+<ECD2> <8CFB>
+<ECD3> <8D04>
+<ECD4> <8D05>
+<ECD5> <8D0A>
+<ECD6> <8D07>
+<ECD7> <8D0F>
+<ECD8> <8D0D>
+<ECD9> <8D10>
+<ECDA> <9F4E>
+<ECDB> <8D13>
+<ECDC> <8CCD>
+<ECDD> <8D14>
+<ECDE> <8D16>
+<ECDF> <8D67>
+<ECE0> <8D6D>
+<ECE1> <8D71>
+<ECE2> <8D73>
+<ECE3> <8D81>
+<ECE4> <8D99>
+<ECE5> <8DC2>
+<ECE6> <8DBE>
+<ECE7> <8DBA>
+<ECE8> <8DCF>
+<ECE9> <8DDA>
+<ECEA> <8DD6>
+<ECEB> <8DCC>
+<ECEC> <8DDB>
+<ECED> <8DCB>
+<ECEE> <8DEA>
+<ECEF> <8DEB>
+<ECF0> <8DDF>
+<ECF1> <8DE3>
+<ECF2> <8DFC>
+<ECF3> <8E08>
+<ECF4> <8E09>
+<ECF5> <8DFF>
+<ECF6> <8E1D>
+<ECF7> <8E1E>
+<ECF8> <8E10>
+<ECF9> <8E1F>
+<ECFA> <8E42>
+<ECFB> <8E35>
+<ECFC> <8E30>
+<ECFD> <8E34>
+<ECFE> <8E4A>
+<EDA1> <8E47>
+<EDA2> <8E49>
+<EDA3> <8E4C>
+<EDA4> <8E50>
+<EDA5> <8E48>
+<EDA6> <8E59>
+<EDA7> <8E64>
+<EDA8> <8E60>
+<EDA9> <8E2A>
+<EDAA> <8E63>
+<EDAB> <8E55>
+<EDAC> <8E76>
+<EDAD> <8E72>
+<EDAE> <8E7C>
+<EDAF> <8E81>
+<EDB0> <8E87>
+<EDB1> <8E85>
+<EDB2> <8E84>
+<EDB3> <8E8B>
+<EDB4> <8E8A>
+<EDB5> <8E93>
+<EDB6> <8E91>
+<EDB7> <8E94>
+<EDB8> <8E99>
+<EDB9> <8EAA>
+<EDBA> <8EA1>
+<EDBB> <8EAC>
+<EDBC> <8EB0>
+<EDBD> <8EC6>
+<EDBE> <8EB1>
+<EDBF> <8EBE>
+<EDC0> <8EC5>
+<EDC1> <8EC8>
+<EDC2> <8ECB>
+<EDC3> <8EDB>
+endbfchar
+
+100 beginbfchar
+<EDC4> <8EE3>
+<EDC5> <8EFC>
+<EDC6> <8EFB>
+<EDC7> <8EEB>
+<EDC8> <8EFE>
+<EDC9> <8F0A>
+<EDCA> <8F05>
+<EDCB> <8F15>
+<EDCC> <8F12>
+<EDCD> <8F19>
+<EDCE> <8F13>
+<EDCF> <8F1C>
+<EDD0> <8F1F>
+<EDD1> <8F1B>
+<EDD2> <8F0C>
+<EDD3> <8F26>
+<EDD4> <8F33>
+<EDD5> <8F3B>
+<EDD6> <8F39>
+<EDD7> <8F45>
+<EDD8> <8F42>
+<EDD9> <8F3E>
+<EDDA> <8F4C>
+<EDDB> <8F49>
+<EDDC> <8F46>
+<EDDD> <8F4E>
+<EDDE> <8F57>
+<EDDF> <8F5C>
+<EDE0> <8F62>
+<EDE1> <8F63>
+<EDE2> <8F64>
+<EDE3> <8F9C>
+<EDE4> <8F9F>
+<EDE5> <8FA3>
+<EDE6> <8FAD>
+<EDE7> <8FAF>
+<EDE8> <8FB7>
+<EDE9> <8FDA>
+<EDEA> <8FE5>
+<EDEB> <8FE2>
+<EDEC> <8FEA>
+<EDED> <8FEF>
+<EDEE> <9087>
+<EDEF> <8FF4>
+<EDF0> <9005>
+<EDF1> <8FF9>
+<EDF2> <8FFA>
+<EDF3> <9011>
+<EDF4> <9015>
+<EDF5> <9021>
+<EDF6> <900D>
+<EDF7> <901E>
+<EDF8> <9016>
+<EDF9> <900B>
+<EDFA> <9027>
+<EDFB> <9036>
+<EDFC> <9035>
+<EDFD> <9039>
+<EDFE> <8FF8>
+<EEA1> <904F>
+<EEA2> <9050>
+<EEA3> <9051>
+<EEA4> <9052>
+<EEA5> <900E>
+<EEA6> <9049>
+<EEA7> <903E>
+<EEA8> <9056>
+<EEA9> <9058>
+<EEAA> <905E>
+<EEAB> <9068>
+<EEAC> <906F>
+<EEAD> <9076>
+<EEAE> <96A8>
+<EEAF> <9072>
+<EEB0> <9082>
+<EEB1> <907D>
+<EEB2> <9081>
+<EEB3> <9080>
+<EEB4> <908A>
+<EEB5> <9089>
+<EEB6> <908F>
+<EEB7> <90A8>
+<EEB8> <90AF>
+<EEB9> <90B1>
+<EEBA> <90B5>
+<EEBB> <90E2>
+<EEBC> <90E4>
+<EEBD> <6248>
+<EEBE> <90DB>
+<EEBF> <9102>
+<EEC0> <9112>
+<EEC1> <9119>
+<EEC2> <9132>
+<EEC3> <9130>
+<EEC4> <914A>
+<EEC5> <9156>
+<EEC6> <9158>
+<EEC7> <9163>
+<EEC8> <9165>
+<EEC9> <9169>
+endbfchar
+
+100 beginbfchar
+<EECA> <9173>
+<EECB> <9172>
+<EECC> <918B>
+<EECD> <9189>
+<EECE> <9182>
+<EECF> <91A2>
+<EED0> <91AB>
+<EED1> <91AF>
+<EED2> <91AA>
+<EED3> <91B5>
+<EED4> <91B4>
+<EED5> <91BA>
+<EED6> <91C0>
+<EED7> <91C1>
+<EED8> <91C9>
+<EED9> <91CB>
+<EEDA> <91D0>
+<EEDB> <91D6>
+<EEDC> <91DF>
+<EEDD> <91E1>
+<EEDE> <91DB>
+<EEDF> <91FC>
+<EEE0> <91F5>
+<EEE1> <91F6>
+<EEE2> <921E>
+<EEE3> <91FF>
+<EEE4> <9214>
+<EEE5> <922C>
+<EEE6> <9215>
+<EEE7> <9211>
+<EEE8> <925E>
+<EEE9> <9257>
+<EEEA> <9245>
+<EEEB> <9249>
+<EEEC> <9264>
+<EEED> <9248>
+<EEEE> <9295>
+<EEEF> <923F>
+<EEF0> <924B>
+<EEF1> <9250>
+<EEF2> <929C>
+<EEF3> <9296>
+<EEF4> <9293>
+<EEF5> <929B>
+<EEF6> <925A>
+<EEF7> <92CF>
+<EEF8> <92B9>
+<EEF9> <92B7>
+<EEFA> <92E9>
+<EEFB> <930F>
+<EEFC> <92FA>
+<EEFD> <9344>
+<EEFE> <932E>
+<EFA1> <9319>
+<EFA2> <9322>
+<EFA3> <931A>
+<EFA4> <9323>
+<EFA5> <933A>
+<EFA6> <9335>
+<EFA7> <933B>
+<EFA8> <935C>
+<EFA9> <9360>
+<EFAA> <937C>
+<EFAB> <936E>
+<EFAC> <9356>
+<EFAD> <93B0>
+<EFAE> <93AC>
+<EFAF> <93AD>
+<EFB0> <9394>
+<EFB1> <93B9>
+<EFB2> <93D6>
+<EFB3> <93D7>
+<EFB4> <93E8>
+<EFB5> <93E5>
+<EFB6> <93D8>
+<EFB7> <93C3>
+<EFB8> <93DD>
+<EFB9> <93D0>
+<EFBA> <93C8>
+<EFBB> <93E4>
+<EFBC> <941A>
+<EFBD> <9414>
+<EFBE> <9413>
+<EFBF> <9403>
+<EFC0> <9407>
+<EFC1> <9410>
+<EFC2> <9436>
+<EFC3> <942B>
+<EFC4> <9435>
+<EFC5> <9421>
+<EFC6> <943A>
+<EFC7> <9441>
+<EFC8> <9452>
+<EFC9> <9444>
+<EFCA> <945B>
+<EFCB> <9460>
+<EFCC> <9462>
+<EFCD> <945E>
+<EFCE> <946A>
+<EFCF> <9229>
+endbfchar
+
+100 beginbfchar
+<EFD0> <9470>
+<EFD1> <9475>
+<EFD2> <9477>
+<EFD3> <947D>
+<EFD4> <945A>
+<EFD5> <947C>
+<EFD6> <947E>
+<EFD7> <9481>
+<EFD8> <947F>
+<EFD9> <9582>
+<EFDA> <9587>
+<EFDB> <958A>
+<EFDC> <9594>
+<EFDD> <9596>
+<EFDE> <9598>
+<EFDF> <9599>
+<EFE0> <95A0>
+<EFE1> <95A8>
+<EFE2> <95A7>
+<EFE3> <95AD>
+<EFE4> <95BC>
+<EFE5> <95BB>
+<EFE6> <95B9>
+<EFE7> <95BE>
+<EFE8> <95CA>
+<EFE9> <6FF6>
+<EFEA> <95C3>
+<EFEB> <95CD>
+<EFEC> <95CC>
+<EFED> <95D5>
+<EFEE> <95D4>
+<EFEF> <95D6>
+<EFF0> <95DC>
+<EFF1> <95E1>
+<EFF2> <95E5>
+<EFF3> <95E2>
+<EFF4> <9621>
+<EFF5> <9628>
+<EFF6> <962E>
+<EFF7> <962F>
+<EFF8> <9642>
+<EFF9> <964C>
+<EFFA> <964F>
+<EFFB> <964B>
+<EFFC> <9677>
+<EFFD> <965C>
+<EFFE> <965E>
+<F0A1> <965D>
+<F0A2> <965F>
+<F0A3> <9666>
+<F0A4> <9672>
+<F0A5> <966C>
+<F0A6> <968D>
+<F0A7> <9698>
+<F0A8> <9695>
+<F0A9> <9697>
+<F0AA> <96AA>
+<F0AB> <96A7>
+<F0AC> <96B1>
+<F0AD> <96B2>
+<F0AE> <96B0>
+<F0AF> <96B4>
+<F0B0> <96B6>
+<F0B1> <96B8>
+<F0B2> <96B9>
+<F0B3> <96CE>
+<F0B4> <96CB>
+<F0B5> <96C9>
+<F0B6> <96CD>
+<F0B7> <894D>
+<F0B8> <96DC>
+<F0B9> <970D>
+<F0BA> <96D5>
+<F0BB> <96F9>
+<F0BC> <9704>
+<F0BD> <9706>
+<F0BE> <9708>
+<F0BF> <9713>
+<F0C0> <970E>
+<F0C1> <9711>
+<F0C2> <970F>
+<F0C3> <9716>
+<F0C4> <9719>
+<F0C5> <9724>
+<F0C6> <972A>
+<F0C7> <9730>
+<F0C8> <9739>
+<F0C9> <973D>
+<F0CA> <973E>
+<F0CB> <9744>
+<F0CC> <9746>
+<F0CD> <9748>
+<F0CE> <9742>
+<F0CF> <9749>
+<F0D0> <975C>
+<F0D1> <9760>
+<F0D2> <9764>
+<F0D3> <9766>
+<F0D4> <9768>
+<F0D5> <52D2>
+endbfchar
+
+100 beginbfchar
+<F0D6> <976B>
+<F0D7> <9771>
+<F0D8> <9779>
+<F0D9> <9785>
+<F0DA> <977C>
+<F0DB> <9781>
+<F0DC> <977A>
+<F0DD> <9786>
+<F0DE> <978B>
+<F0DF> <978F>
+<F0E0> <9790>
+<F0E1> <979C>
+<F0E2> <97A8>
+<F0E3> <97A6>
+<F0E4> <97A3>
+<F0E5> <97B3>
+<F0E6> <97B4>
+<F0E7> <97C3>
+<F0E8> <97C6>
+<F0E9> <97C8>
+<F0EA> <97CB>
+<F0EB> <97DC>
+<F0EC> <97ED>
+<F0ED> <9F4F>
+<F0EE> <97F2>
+<F0EF> <7ADF>
+<F0F0> <97F6>
+<F0F1> <97F5>
+<F0F2> <980F>
+<F0F3> <980C>
+<F0F4> <9838>
+<F0F5> <9824>
+<F0F6> <9821>
+<F0F7> <9837>
+<F0F8> <983D>
+<F0F9> <9846>
+<F0FA> <984F>
+<F0FB> <984B>
+<F0FC> <986B>
+<F0FD> <986F>
+<F0FE> <9870>
+<F1A1> <9871>
+<F1A2> <9874>
+<F1A3> <9873>
+<F1A4> <98AA>
+<F1A5> <98AF>
+<F1A6> <98B1>
+<F1A7> <98B6>
+<F1A8> <98C4>
+<F1A9> <98C3>
+<F1AA> <98C6>
+<F1AB> <98E9>
+<F1AC> <98EB>
+<F1AD> <9903>
+<F1AE> <9909>
+<F1AF> <9912>
+<F1B0> <9914>
+<F1B1> <9918>
+<F1B2> <9921>
+<F1B3> <991D>
+<F1B4> <991E>
+<F1B5> <9924>
+<F1B6> <9920>
+<F1B7> <992C>
+<F1B8> <992E>
+<F1B9> <993D>
+<F1BA> <993E>
+<F1BB> <9942>
+<F1BC> <9949>
+<F1BD> <9945>
+<F1BE> <9950>
+<F1BF> <994B>
+<F1C0> <9951>
+<F1C1> <9952>
+<F1C2> <994C>
+<F1C3> <9955>
+<F1C4> <9997>
+<F1C5> <9998>
+<F1C6> <99A5>
+<F1C7> <99AD>
+<F1C8> <99AE>
+<F1C9> <99BC>
+<F1CA> <99DF>
+<F1CB> <99DB>
+<F1CC> <99DD>
+<F1CD> <99D8>
+<F1CE> <99D1>
+<F1CF> <99ED>
+<F1D0> <99EE>
+<F1D1> <99F1>
+<F1D2> <99F2>
+<F1D3> <99FB>
+<F1D4> <99F8>
+<F1D5> <9A01>
+<F1D6> <9A0F>
+<F1D7> <9A05>
+<F1D8> <99E2>
+<F1D9> <9A19>
+<F1DA> <9A2B>
+<F1DB> <9A37>
+endbfchar
+
+100 beginbfchar
+<F1DC> <9A45>
+<F1DD> <9A42>
+<F1DE> <9A40>
+<F1DF> <9A43>
+<F1E0> <9A3E>
+<F1E1> <9A55>
+<F1E2> <9A4D>
+<F1E3> <9A5B>
+<F1E4> <9A57>
+<F1E5> <9A5F>
+<F1E6> <9A62>
+<F1E7> <9A65>
+<F1E8> <9A64>
+<F1E9> <9A69>
+<F1EA> <9A6B>
+<F1EB> <9A6A>
+<F1EC> <9AAD>
+<F1ED> <9AB0>
+<F1EE> <9ABC>
+<F1EF> <9AC0>
+<F1F0> <9ACF>
+<F1F1> <9AD1>
+<F1F2> <9AD3>
+<F1F3> <9AD4>
+<F1F4> <9ADE>
+<F1F5> <9ADF>
+<F1F6> <9AE2>
+<F1F7> <9AE3>
+<F1F8> <9AE6>
+<F1F9> <9AEF>
+<F1FA> <9AEB>
+<F1FB> <9AEE>
+<F1FC> <9AF4>
+<F1FD> <9AF1>
+<F1FE> <9AF7>
+<F2A1> <9AFB>
+<F2A2> <9B06>
+<F2A3> <9B18>
+<F2A4> <9B1A>
+<F2A5> <9B1F>
+<F2A6> <9B22>
+<F2A7> <9B23>
+<F2A8> <9B25>
+<F2A9> <9B27>
+<F2AA> <9B28>
+<F2AB> <9B29>
+<F2AC> <9B2A>
+<F2AD> <9B2E>
+<F2AE> <9B2F>
+<F2AF> <9B32>
+<F2B0> <9B44>
+<F2B1> <9B43>
+<F2B2> <9B4F>
+<F2B3> <9B4D>
+<F2B4> <9B4E>
+<F2B5> <9B51>
+<F2B6> <9B58>
+<F2B7> <9B74>
+<F2B8> <9B93>
+<F2B9> <9B83>
+<F2BA> <9B91>
+<F2BB> <9B96>
+<F2BC> <9B97>
+<F2BD> <9B9F>
+<F2BE> <9BA0>
+<F2BF> <9BA8>
+<F2C0> <9BB4>
+<F2C1> <9BC0>
+<F2C2> <9BCA>
+<F2C3> <9BB9>
+<F2C4> <9BC6>
+<F2C5> <9BCF>
+<F2C6> <9BD1>
+<F2C7> <9BD2>
+<F2C8> <9BE3>
+<F2C9> <9BE2>
+<F2CA> <9BE4>
+<F2CB> <9BD4>
+<F2CC> <9BE1>
+<F2CD> <9C3A>
+<F2CE> <9BF2>
+<F2CF> <9BF1>
+<F2D0> <9BF0>
+<F2D1> <9C15>
+<F2D2> <9C14>
+<F2D3> <9C09>
+<F2D4> <9C13>
+<F2D5> <9C0C>
+<F2D6> <9C06>
+<F2D7> <9C08>
+<F2D8> <9C12>
+<F2D9> <9C0A>
+<F2DA> <9C04>
+<F2DB> <9C2E>
+<F2DC> <9C1B>
+<F2DD> <9C25>
+<F2DE> <9C24>
+<F2DF> <9C21>
+<F2E0> <9C30>
+<F2E1> <9C47>
+endbfchar
+
+100 beginbfchar
+<F2E2> <9C32>
+<F2E3> <9C46>
+<F2E4> <9C3E>
+<F2E5> <9C5A>
+<F2E6> <9C60>
+<F2E7> <9C67>
+<F2E8> <9C76>
+<F2E9> <9C78>
+<F2EA> <9CE7>
+<F2EB> <9CEC>
+<F2EC> <9CF0>
+<F2ED> <9D09>
+<F2EE> <9D08>
+<F2EF> <9CEB>
+<F2F0> <9D03>
+<F2F1> <9D06>
+<F2F2> <9D2A>
+<F2F3> <9D26>
+<F2F4> <9DAF>
+<F2F5> <9D23>
+<F2F6> <9D1F>
+<F2F7> <9D44>
+<F2F8> <9D15>
+<F2F9> <9D12>
+<F2FA> <9D41>
+<F2FB> <9D3F>
+<F2FC> <9D3E>
+<F2FD> <9D46>
+<F2FE> <9D48>
+<F3A1> <9D5D>
+<F3A2> <9D5E>
+<F3A3> <9D64>
+<F3A4> <9D51>
+<F3A5> <9D50>
+<F3A6> <9D59>
+<F3A7> <9D72>
+<F3A8> <9D89>
+<F3A9> <9D87>
+<F3AA> <9DAB>
+<F3AB> <9D6F>
+<F3AC> <9D7A>
+<F3AD> <9D9A>
+<F3AE> <9DA4>
+<F3AF> <9DA9>
+<F3B0> <9DB2>
+<F3B1> <9DC4>
+<F3B2> <9DC1>
+<F3B3> <9DBB>
+<F3B4> <9DB8>
+<F3B5> <9DBA>
+<F3B6> <9DC6>
+<F3B7> <9DCF>
+<F3B8> <9DC2>
+<F3B9> <9DD9>
+<F3BA> <9DD3>
+<F3BB> <9DF8>
+<F3BC> <9DE6>
+<F3BD> <9DED>
+<F3BE> <9DEF>
+<F3BF> <9DFD>
+<F3C0> <9E1A>
+<F3C1> <9E1B>
+<F3C2> <9E1E>
+<F3C3> <9E75>
+<F3C4> <9E79>
+<F3C5> <9E7D>
+<F3C6> <9E81>
+<F3C7> <9E88>
+<F3C8> <9E8B>
+<F3C9> <9E8C>
+<F3CA> <9E92>
+<F3CB> <9E95>
+<F3CC> <9E91>
+<F3CD> <9E9D>
+<F3CE> <9EA5>
+<F3CF> <9EA9>
+<F3D0> <9EB8>
+<F3D1> <9EAA>
+<F3D2> <9EAD>
+<F3D3> <9761>
+<F3D4> <9ECC>
+<F3D5> <9ECE>
+<F3D6> <9ECF>
+<F3D7> <9ED0>
+<F3D8> <9ED4>
+<F3D9> <9EDC>
+<F3DA> <9EDE>
+<F3DB> <9EDD>
+<F3DC> <9EE0>
+<F3DD> <9EE5>
+<F3DE> <9EE8>
+<F3DF> <9EEF>
+<F3E0> <9EF4>
+<F3E1> <9EF6>
+<F3E2> <9EF7>
+<F3E3> <9EF9>
+<F3E4> <9EFB>
+<F3E5> <9EFC>
+<F3E6> <9EFD>
+<F3E7> <9F07>
+endbfchar
+
+29 beginbfchar
+<F3E8> <9F08>
+<F3E9> <76B7>
+<F3EA> <9F15>
+<F3EB> <9F21>
+<F3EC> <9F2C>
+<F3ED> <9F3E>
+<F3EE> <9F4A>
+<F3EF> <9F52>
+<F3F0> <9F54>
+<F3F1> <9F63>
+<F3F2> <9F5F>
+<F3F3> <9F60>
+<F3F4> <9F61>
+<F3F5> <9F66>
+<F3F6> <9F67>
+<F3F7> <9F6C>
+<F3F8> <9F6A>
+<F3F9> <9F77>
+<F3FA> <9F72>
+<F3FB> <9F76>
+<F3FC> <9F95>
+<F3FD> <9F9C>
+<F3FE> <9FA0>
+<F4A1> <582F>
+<F4A2> <69C7>
+<F4A3> <9059>
+<F4A4> <7464>
+<F4A5> <51DC>
+<F4A6> <7199>
+endbfchar
+
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+
+%%EndResource
+%%EOF
diff --git a/Build/source/texk/dvipdfmx/data/Makefile.am b/Build/source/texk/dvipdfmx/data/Makefile.am index 45183b7f382..4699b0fc553 100644 --- a/Build/source/texk/dvipdfmx/data/Makefile.am +++ b/Build/source/texk/dvipdfmx/data/Makefile.am @@ -10,3 +10,7 @@ dist_glyphlistdata_DATA = \ mapdatadir = ${prefix}/texmf/fonts/map/dvipdfm/dvipdfmx dist_mapdata_DATA = \ $(srcdir)/cid-x.map + +cmapdatadir = $(datadir)/texmf/fonts/cmap/dvipdfmx +dist_cmapdata_DATA = \ + $(srcdir)/EUC-UCS2 diff --git a/Build/source/texk/dvipdfmx/data/Makefile.in b/Build/source/texk/dvipdfmx/data/Makefile.in index c6c67f00519..15719e2d11c 100644 --- a/Build/source/texk/dvipdfmx/data/Makefile.in +++ b/Build/source/texk/dvipdfmx/data/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,8 +17,9 @@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -33,9 +35,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data -DIST_COMMON = $(dist_configdata_DATA) $(dist_glyphlistdata_DATA) \ - $(dist_mapdata_DATA) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(dist_cmapdata_DATA) $(dist_configdata_DATA) \ + $(dist_glyphlistdata_DATA) $(dist_mapdata_DATA) \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../m4/cho-kpse.m4 \ $(top_srcdir)/../../m4/cho-libs.m4 \ @@ -51,9 +53,10 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/cho-kpse.m4 \ $(top_srcdir)/../../m4/maw-time.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d +mkinstalldirs = $(SHELL) $(top_srcdir)/../../build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; @@ -61,14 +64,27 @@ am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(configdatadir)" \ - "$(DESTDIR)$(glyphlistdatadir)" "$(DESTDIR)$(mapdatadir)" -dist_configdataDATA_INSTALL = $(INSTALL_DATA) -dist_glyphlistdataDATA_INSTALL = $(INSTALL_DATA) -dist_mapdataDATA_INSTALL = $(INSTALL_DATA) -DATA = $(dist_configdata_DATA) $(dist_glyphlistdata_DATA) \ - $(dist_mapdata_DATA) +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(cmapdatadir)" \ + "$(DESTDIR)$(configdatadir)" "$(DESTDIR)$(glyphlistdatadir)" \ + "$(DESTDIR)$(mapdatadir)" +DATA = $(dist_cmapdata_DATA) $(dist_configdata_DATA) \ + $(dist_glyphlistdata_DATA) $(dist_mapdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -203,6 +219,10 @@ mapdatadir = ${prefix}/texmf/fonts/map/dvipdfm/dvipdfmx dist_mapdata_DATA = \ $(srcdir)/cid-x.map +cmapdatadir = $(datadir)/texmf/fonts/cmap/dvipdfmx +dist_cmapdata_DATA = \ + $(srcdir)/EUC-UCS2 + all: all-am .SUFFIXES: @@ -215,9 +235,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign data/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign data/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -235,63 +255,93 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs +install-dist_cmapdataDATA: $(dist_cmapdata_DATA) + @$(NORMAL_INSTALL) + test -z "$(cmapdatadir)" || $(MKDIR_P) "$(DESTDIR)$(cmapdatadir)" + @list='$(dist_cmapdata_DATA)'; test -n "$(cmapdatadir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(cmapdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(cmapdatadir)" || exit $$?; \ + done + +uninstall-dist_cmapdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_cmapdata_DATA)'; test -n "$(cmapdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(cmapdatadir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(cmapdatadir)" && rm -f $$files install-dist_configdataDATA: $(dist_configdata_DATA) @$(NORMAL_INSTALL) test -z "$(configdatadir)" || $(MKDIR_P) "$(DESTDIR)$(configdatadir)" - @list='$(dist_configdata_DATA)'; for p in $$list; do \ + @list='$(dist_configdata_DATA)'; test -n "$(configdatadir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(dist_configdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(configdatadir)/$$f'"; \ - $(dist_configdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(configdatadir)/$$f"; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(configdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(configdatadir)" || exit $$?; \ done uninstall-dist_configdataDATA: @$(NORMAL_UNINSTALL) - @list='$(dist_configdata_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(configdatadir)/$$f'"; \ - rm -f "$(DESTDIR)$(configdatadir)/$$f"; \ - done + @list='$(dist_configdata_DATA)'; test -n "$(configdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(configdatadir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(configdatadir)" && rm -f $$files install-dist_glyphlistdataDATA: $(dist_glyphlistdata_DATA) @$(NORMAL_INSTALL) test -z "$(glyphlistdatadir)" || $(MKDIR_P) "$(DESTDIR)$(glyphlistdatadir)" - @list='$(dist_glyphlistdata_DATA)'; for p in $$list; do \ + @list='$(dist_glyphlistdata_DATA)'; test -n "$(glyphlistdatadir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(dist_glyphlistdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(glyphlistdatadir)/$$f'"; \ - $(dist_glyphlistdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(glyphlistdatadir)/$$f"; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glyphlistdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(glyphlistdatadir)" || exit $$?; \ done uninstall-dist_glyphlistdataDATA: @$(NORMAL_UNINSTALL) - @list='$(dist_glyphlistdata_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(glyphlistdatadir)/$$f'"; \ - rm -f "$(DESTDIR)$(glyphlistdatadir)/$$f"; \ - done + @list='$(dist_glyphlistdata_DATA)'; test -n "$(glyphlistdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(glyphlistdatadir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(glyphlistdatadir)" && rm -f $$files install-dist_mapdataDATA: $(dist_mapdata_DATA) @$(NORMAL_INSTALL) test -z "$(mapdatadir)" || $(MKDIR_P) "$(DESTDIR)$(mapdatadir)" - @list='$(dist_mapdata_DATA)'; for p in $$list; do \ + @list='$(dist_mapdata_DATA)'; test -n "$(mapdatadir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(dist_mapdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(mapdatadir)/$$f'"; \ - $(dist_mapdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(mapdatadir)/$$f"; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mapdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(mapdatadir)" || exit $$?; \ done uninstall-dist_mapdataDATA: @$(NORMAL_UNINSTALL) - @list='$(dist_mapdata_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(mapdatadir)/$$f'"; \ - rm -f "$(DESTDIR)$(mapdatadir)/$$f"; \ - done + @list='$(dist_mapdata_DATA)'; test -n "$(mapdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(mapdatadir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(mapdatadir)" && rm -f $$files tags: TAGS TAGS: @@ -315,13 +365,17 @@ distdir: $(DISTFILES) if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -329,7 +383,7 @@ check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: - for dir in "$(DESTDIR)$(configdatadir)" "$(DESTDIR)$(glyphlistdatadir)" "$(DESTDIR)$(mapdatadir)"; do \ + for dir in "$(DESTDIR)$(cmapdatadir)" "$(DESTDIR)$(configdatadir)" "$(DESTDIR)$(glyphlistdatadir)" "$(DESTDIR)$(mapdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -352,6 +406,7 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -370,27 +425,39 @@ dvi-am: html: html-am +html-am: + info: info-am info-am: -install-data-am: install-dist_configdataDATA \ +install-data-am: install-dist_cmapdataDATA install-dist_configdataDATA \ install-dist_glyphlistdataDATA install-dist_mapdataDATA install-dvi: install-dvi-am +install-dvi-am: + install-exec-am: install-html: install-html-am +install-html-am: + install-info: install-info-am +install-info-am: + install-man: install-pdf: install-pdf-am +install-pdf-am: + install-ps: install-ps-am +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-am @@ -409,25 +476,28 @@ ps: ps-am ps-am: -uninstall-am: uninstall-dist_configdataDATA \ - uninstall-dist_glyphlistdataDATA uninstall-dist_mapdataDATA +uninstall-am: uninstall-dist_cmapdataDATA \ + uninstall-dist_configdataDATA uninstall-dist_glyphlistdataDATA \ + uninstall-dist_mapdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dist_configdataDATA \ - install-dist_glyphlistdataDATA install-dist_mapdataDATA \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am uninstall uninstall-am uninstall-dist_configdataDATA \ + install-data install-data-am install-dist_cmapdataDATA \ + install-dist_configdataDATA install-dist_glyphlistdataDATA \ + install-dist_mapdataDATA install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-dist_cmapdataDATA uninstall-dist_configdataDATA \ uninstall-dist_glyphlistdataDATA uninstall-dist_mapdataDATA + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/Build/source/texk/dvipdfmx/data/dvipdfmx.cfg b/Build/source/texk/dvipdfmx/data/dvipdfmx.cfg index f9537aaca8a..8b7c9d74c53 100644 --- a/Build/source/texk/dvipdfmx/data/dvipdfmx.cfg +++ b/Build/source/texk/dvipdfmx/data/dvipdfmx.cfg @@ -1,10 +1,3 @@ -%% -%% ** PLEASE CHECK FILE ACCESS PERMISSION OF THIS FILE ** -%% -%% With 'D' option dvipdfmx may invoke shell command via system() -%% function call. -%% -%% %% PDF Version Setting %% %% PDF (minor) version stamp to use in output file. @@ -16,7 +9,6 @@ % V 4 -%% %% Dvipdfmx Compatibility Flags %% %% 0x0002 Use semi-transparent filling for tpic shading command, @@ -25,11 +17,11 @@ %% This is only for backward compatibility. Don't use that. %% 0x0008 Do not replace duplicate fontmap entries. %% Dvipdfm's (not 'x') behaviour. -%% 0x0010 Do not remove unused PDF destinations (experimental). +%% 0x0010 Do not optimize PDF destinations. +%% (Optimization is still experimental.) C 0x0010 -%% %% PDF Document Settings %% %% Papersize Option: @@ -50,7 +42,7 @@ p a4 %% that encloses the material. That's not always what you want. %% Annotations created by pdf:bannot/pdf:eannot is also affected. -%g 1 +%g 0 %% Bookmark Open Level: %% @@ -103,6 +95,9 @@ P 0x003C %% Image Handler %% +%% With 'D' option dvipdfmx may invoke shell command via system() +%% function call. +%% %% Command-line template for a-to-b conversion: %% %% Supported target format ('b') is currently PDF. @@ -114,30 +109,32 @@ P 0x003C %% success or failure) %% %b The "base" name of the input file, e.g., "foo" instead of %% "foo.eps". +%% %v The PDF version to be converted to, e.g. "1.4" for PDF 1.4. %% %% Replaced with single '%'. + +%% GhostScript (PS-to-PDF and PDF-to-PDF): %% -%% *Examples* for GhostScript (PS-to-PDF) +%% ps2pdf is a front-end to gs. For a complete list of options, see +%% http://pages.cs.wisc.edu/~ghost/doc/cvs/Ps2pdf.htm#Options %% -%% The following example decode all DCT (i.e., JPEG) encoded images -%% and then recompress images with Flate (zlib, same as PNG) encode -%% filter. If you are using recent version of gs, then please remove -%% -dAutoFilterXXXImages and -dXXXImageFilter. -%% /FlateEncode is introduced to avoid quality loss of "EPS JPEG" -%% images. +%% By default, gs encodes all images contained in a PS file using +%% the lossy DCT (i.e., JPEG) filter. This often leads to inferior +%% result (see the discussion at http://electron.mit.edu/~gsteele/pdf/). +%% The "-dAutoFilterXXXImages" and "-dXXXImageFilter" options used +%% below force all images to be encoded with the lossless Flate (zlib, +%% same as PNG) filter. Note that if the PS file already contains DCT +%% encoded images (which is possible in PS level 2), then these images +%% will also be re-encoded using Flate. To turn the conversion off, +%% simply remove the options mentioned above. %% %% Also note that PAPERSIZE=a0 is specified below. This convert PS %% files (including EPS) to A0 papersize PDF. This is necessary to %% prevent gs from clipping PS figure at some papersize. (A0 above -%% simply means large size paper) -%% -%% If you have figures even larger than A0, and their llx=lly=0, you can -%% use -dEPSCrop instead of -sPAPERSIZE=a0 +%% simply means large size paper.) If you have figures even larger +%% than A0, and their llx=lly=0, you can use "-dEPSCrop" instead of +%% "-sPAPERSIZE=a0" %% -%% GhostScript (Unix/Linux): -D "gs -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=%o %i -c quit" - -%% GhostScript (Win32): -%D "gswin32c -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=%o %i -c quit" +D "ps2pdf -dCompatibilityLevel=%v -sPAPERSIZE=a0 -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode %i %o" %% Frank Siegert's PStill: %D "/usr/local/bin/pstill -c -o %o %i" diff --git a/Build/source/texk/dvipdfmx/src/Makefile.in b/Build/source/texk/dvipdfmx/src/Makefile.in index dded26e67c5..b49126ddb0b 100644 --- a/Build/source/texk/dvipdfmx/src/Makefile.in +++ b/Build/source/texk/dvipdfmx/src/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,8 +17,9 @@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -50,11 +52,11 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/cho-kpse.m4 \ $(top_srcdir)/../../m4/maw-time.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d +mkinstalldirs = $(SHELL) $(top_srcdir)/../../build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_dvipdfmx_OBJECTS = agl.$(OBJEXT) bmpimage.$(OBJEXT) cff.$(OBJEXT) \ cff_dict.$(OBJEXT) cid.$(OBJEXT) cidtype0.$(OBJEXT) \ @@ -85,6 +87,7 @@ am__DEPENDENCIES_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp am__depfiles_maybe = depfiles +am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -262,9 +265,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -282,34 +285,50 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - if test -f $$p \ - || test -f $$p1 \ - ; then \ - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ - else :; fi; \ - done + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p || test -f $$p1; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ - rm -f "$(DESTDIR)$(bindir)/$$f"; \ - done + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f $$p $$f"; \ - rm -f $$p $$f ; \ - done + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list dvipdfmx$(EXEEXT): $(dvipdfmx_OBJECTS) $(dvipdfmx_DEPENDENCIES) @rm -f dvipdfmx$(EXEEXT) $(LINK) $(dvipdfmx_OBJECTS) $(dvipdfmx_LDADD) $(LIBS) @@ -392,21 +411,21 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< @@ -429,7 +448,7 @@ tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -437,29 +456,34 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -480,13 +504,17 @@ distdir: $(DISTFILES) if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -517,6 +545,7 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -537,6 +566,8 @@ dvi-am: html: html-am +html-am: + info: info-am info-am: @@ -545,20 +576,29 @@ install-data-am: install-dvi: install-dvi-am +install-dvi-am: + install-exec-am: install-binPROGRAMS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook - install-html: install-html-am +install-html-am: + install-info: install-info-am +install-info-am: + install-man: install-pdf: install-pdf-am +install-pdf-am: + install-ps: install-ps-am +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-am @@ -582,7 +622,6 @@ ps-am: uninstall-am: uninstall-binPROGRAMS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook - .MAKE: install-am install-exec-am install-strip uninstall-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ @@ -613,6 +652,7 @@ install-exec-hook: uninstall-hook: rm -f $(DESTDIR)$(bindir)/ebb$(EXEEXT) rm -f $(DESTDIR)$(bindir)/extractbb$(EXEEXT) + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/Build/source/texk/dvipdfmx/src/cff.c b/Build/source/texk/dvipdfmx/src/cff.c index 6dbcaf6094f..000334b64e4 100644 --- a/Build/source/texk/dvipdfmx/src/cff.c +++ b/Build/source/texk/dvipdfmx/src/cff.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/cff.c,v 1.16 2008/10/13 19:42:48 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/cff.c,v 1.17 2009/03/24 07:55:52 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -24,6 +24,7 @@ #include <string.h> #include "system.h" +#include "system.h" #include "mem.h" #include "error.h" #include "mfileio.h" diff --git a/Build/source/texk/dvipdfmx/src/cid.c b/Build/source/texk/dvipdfmx/src/cid.c index b7a56494b75..3213e3aa102 100644 --- a/Build/source/texk/dvipdfmx/src/cid.c +++ b/Build/source/texk/dvipdfmx/src/cid.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/cid.c,v 1.32 2008/11/30 21:12:27 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/cid.c,v 1.33 2009/05/06 01:50:55 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -59,16 +59,18 @@ static struct { const char *registry; const char *ordering; - /* Heighest Supplement values supported by PDF-1.0, 1.1, ... */ + /* Heighest Supplement values supported by PDF-1.0, 1.1, ...; see + * also http://partners.adobe.com/public/developer/font/index.html#ckf + */ int supplement[16]; } CIDFont_stdcc_def[] = { - {"Adobe", "UCS", {-1, -1, 0, 0, 0, 0, 0}}, - {"Adobe", "GB1", {-1, -1, 0, 2, 4, 4, 4}}, - {"Adobe", "CNS1", {-1, -1, 0, 0, 3, 4, 4}}, - {"Adobe", "Japan1", {-1, -1, 2, 2, 4, 5, 6}}, - {"Adobe", "Korea1", {-1, -1, 1, 1, 2, 2, 2}}, - {"Adobe", "Identity", {-1, -1, 0, 0, 0, 0, 0}}, - {NULL, NULL, {0,0,0,0,0,0,0}} + {"Adobe", "UCS", {-1, -1, 0, 0, 0, 0, 0, 0}}, + {"Adobe", "GB1", {-1, -1, 0, 2, 4, 4, 4, 4}}, + {"Adobe", "CNS1", {-1, -1, 0, 0, 3, 4, 4, 4}}, + {"Adobe", "Japan1", {-1, -1, 2, 2, 4, 5, 6, 6}}, + {"Adobe", "Korea1", {-1, -1, 1, 1, 2, 2, 2, 2}}, + {"Adobe", "Identity", {-1, -1, 0, 0, 0, 0, 0, 0}}, + {NULL, NULL, {0,0,0,0,0,0,0,0}} }; #define UCS_CC 0 #define ACC_START 1 diff --git a/Build/source/texk/dvipdfmx/src/cmap_read.c b/Build/source/texk/dvipdfmx/src/cmap_read.c index f927b40de77..7830350d926 100644 --- a/Build/source/texk/dvipdfmx/src/cmap_read.c +++ b/Build/source/texk/dvipdfmx/src/cmap_read.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/cmap_read.c,v 1.3 2008/01/11 18:04:15 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/cmap_read.c,v 1.4 2009/05/06 01:51:01 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -510,7 +510,7 @@ CMap_parse_check_sig (FILE *fp) if (fread(sig, sizeof(char), CMAP_SIG_MAX, fp) != CMAP_SIG_MAX) result = -1; else { - sig[CMAP_SIG_MAX+1] = 0; + sig[CMAP_SIG_MAX] = 0; if (strncmp(sig, "%!PS", 4)) result = -1; else if (strstr(sig+4, "Resource-CMap")) diff --git a/Build/source/texk/dvipdfmx/src/dpxfile.c b/Build/source/texk/dvipdfmx/src/dpxfile.c index 1107e73a943..e95cf9bfb8a 100644 --- a/Build/source/texk/dvipdfmx/src/dpxfile.c +++ b/Build/source/texk/dvipdfmx/src/dpxfile.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/dpxfile.c,v 1.24 2008/05/22 10:08:02 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/dpxfile.c,v 1.25 2009/03/12 19:29:48 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -705,7 +705,9 @@ dpx_delete_temp_file (char *tmp) * Please modify as appropriate (see also pdfximage.c and dvipdfmx.c). */ int -dpx_file_apply_filter (const char *cmdtmpl, const char *input, const char *output) +dpx_file_apply_filter (const char *cmdtmpl, + const char *input, const char *output, + unsigned char version) { char *cmd = NULL; char *p, *q; @@ -746,6 +748,13 @@ if ((l) + (n) >= (m)) { \ } else { strcpy(cmd + n, input); n += strlen(input); } + case 'v': /* Version number, e.g. 1.4 */ { + char buf[6]; + sprintf(buf, "1.%hhu", version); + need(cmd, n, size, strlen(buf)); + strcpy(cmd + n, buf); n += strlen(buf); + break; + } case 0: break; case '%': diff --git a/Build/source/texk/dvipdfmx/src/dpxfile.h b/Build/source/texk/dvipdfmx/src/dpxfile.h index fd6d8e17a2d..5e61e59cc36 100644 --- a/Build/source/texk/dvipdfmx/src/dpxfile.h +++ b/Build/source/texk/dvipdfmx/src/dpxfile.h @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/dpxfile.h,v 1.8 2008/05/18 12:05:22 chofchof Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/dpxfile.h,v 1.9 2009/03/12 19:29:48 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -53,7 +53,9 @@ extern FILE *dpx_open_file (const char *filename, int type); extern void dpx_file_set_verbose (void); -extern int dpx_file_apply_filter (const char *cmdtmpl, const char *input, const char *output); +extern int dpx_file_apply_filter (const char *cmdtmpl, + const char *input, const char *output, + unsigned char version); extern char *dpx_create_temp_file (void); extern void dpx_delete_temp_file (char *tmp); /* tmp freed here */ diff --git a/Build/source/texk/dvipdfmx/src/dpxutil.c b/Build/source/texk/dvipdfmx/src/dpxutil.c index e153d050476..0de3631f73f 100644 --- a/Build/source/texk/dvipdfmx/src/dpxutil.c +++ b/Build/source/texk/dvipdfmx/src/dpxutil.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/dpxutil.c,v 1.9 2008/11/03 22:49:29 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/dpxutil.c,v 1.11 2009/04/26 21:23:29 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -29,6 +29,7 @@ #include <time.h> #include "system.h" +#include "system.h" #include "mem.h" #include "error.h" @@ -202,6 +203,13 @@ ht_clear_table (struct ht_table *ht, void (*hval_free_fn) (void *)) ht->count = 0; } +long ht_table_size (struct ht_table *ht) +{ + ASSERT(ht); + + return ht->count; +} + static unsigned int get_hash (const void *key, int keylen) { diff --git a/Build/source/texk/dvipdfmx/src/dpxutil.h b/Build/source/texk/dvipdfmx/src/dpxutil.h index 09a755c22b8..5d230c655af 100644 --- a/Build/source/texk/dvipdfmx/src/dpxutil.h +++ b/Build/source/texk/dvipdfmx/src/dpxutil.h @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/dpxutil.h,v 1.8 2007/11/14 03:36:01 chofchof Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/dpxutil.h,v 1.9 2009/04/26 21:23:29 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -73,6 +73,7 @@ struct ht_table { extern void ht_init_table (struct ht_table *ht); extern void ht_clear_table (struct ht_table *ht, void (*hval_free_fn) (void *)); +extern long ht_table_size (struct ht_table *ht); extern void *ht_lookup_table (struct ht_table *ht, const void *key, int keylen); extern void ht_append_table (struct ht_table *ht, const void *key, int keylen, void *value) ; diff --git a/Build/source/texk/dvipdfmx/src/dvi.c b/Build/source/texk/dvipdfmx/src/dvi.c index 571489c15e5..2c98895796b 100644 --- a/Build/source/texk/dvipdfmx/src/dvi.c +++ b/Build/source/texk/dvipdfmx/src/dvi.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/dvi.c,v 1.39 2008/11/30 21:12:27 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/dvi.c,v 1.40 2009/04/04 02:10:44 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -1660,6 +1660,7 @@ read_length (double *vp, double mag, char **pp, char *endptr) q = parse_c_ident(&p, endptr); if (q) { + char *qq = q; if (strlen(q) > strlen("true") && !memcmp(q, "true", strlen("true"))) { u /= mag != 0.0 ? mag : 1.0; /* inverse magnify */ @@ -1673,11 +1674,11 @@ read_length (double *vp, double mag, char **pp, char *endptr) case K_UNIT__MM: u *= 72.0 / 25.4 ; break; case K_UNIT__BP: u *= 1.0 ; break; default: - WARN("Unknown unit of measure: %s", q); + WARN("Unknown unit of measure: %s", qq); error = -1; break; } - RELEASE(q); + RELEASE(qq); } *vp = v * u; *pp = p; diff --git a/Build/source/texk/dvipdfmx/src/dvipdfmx.c b/Build/source/texk/dvipdfmx/src/dvipdfmx.c index 27b0792afa2..1e71b205b66 100644 --- a/Build/source/texk/dvipdfmx/src/dvipdfmx.c +++ b/Build/source/texk/dvipdfmx/src/dvipdfmx.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/dvipdfmx.c,v 1.68 2009/01/15 21:46:08 chofchof Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/dvipdfmx.c,v 1.74 2009/05/06 06:07:09 chofchof Exp $ This is DVIPDFMx, an eXtended version of DVIPDFM by Mark A. Wicks. @@ -30,6 +30,7 @@ #include <string.h> #include <limits.h> #include <ctype.h> +#include <libgen.h> #include "system.h" #include "mem.h" @@ -40,6 +41,7 @@ #include "dvi.h" +#include "pdflimits.h" #include "pdfdoc.h" #include "pdfdev.h" #include "pdfparse.h" @@ -125,6 +127,9 @@ set_default_pdf_filename(void) static void usage (void) { + if (really_quiet) + return; + fprintf (stdout, "\nThis is %s-%s by the DVIPDFMx project team,\n", PACKAGE, VERSION); fprintf (stdout, "an extended version of dvipdfm-0.13.2c developed by Mark A. Wicks.\n"); fprintf (stdout, "\nCopyright (C) 2002-2009 by the DVIPDFMx project team\n"); @@ -157,7 +162,7 @@ usage (void) fprintf (stdout, "\t\t\t instead of opaque gray color. (requires PDF 1.4)\n"); fprintf (stdout, "\t\t 0x0004 Treat all CIDFont as fixed-pitch font.\n"); fprintf (stdout, "\t\t 0x0008 Do not replace duplicate fontmap entries.\n"); - fprintf (stdout, "\t\t 0x0010 Do not remove unused PDF destinations.\n"); + fprintf (stdout, "\t\t 0x0010 Do not optimize PDF destinations.\n"); fprintf (stdout, "\t\tPositive values are always ORed with previously given flags.\n"); fprintf (stdout, "\t\tAnd negative values replace old values.\n"); fprintf (stdout, "-D template\tPS->PDF conversion command line template [none]\n"); @@ -311,7 +316,8 @@ select_pages (const char *pagespec) #define POP_ARG() {argv += 1; argc -= 1;} /* It doesn't work as expected (due to dvi filename). */ #define CHECK_ARG(n,m) if (argc < (n) + 1) {\ - fprintf (stderr, "\nMissing %s after \"-%c\".\n", (m), *flag);\ + if (!really_quiet)\ + fprintf (stderr, "\nMissing %s after \"-%c\".\n", (m), *flag);\ usage();\ } @@ -443,11 +449,11 @@ do_args (int argc, char *argv[]) ver_minor = atoi(argv[1]); POP_ARG(); } - if (ver_minor < 3 || ver_minor > 6) { - WARN("PDF version 1.%d not supported. (1.4 used instead)", ver_minor); - ver_minor = 4; - } - pdf_set_version((unsigned) ver_minor); + if (ver_minor < PDF_VERSION_MIN || ver_minor > PDF_VERSION_MAX) { + WARN("PDF version 1.%d not supported. Using PDF 1.%d instead.", + ver_minor, pdf_get_version()); + } else + pdf_set_version((unsigned) ver_minor); } break; case 'z': @@ -517,7 +523,8 @@ do_args (int argc, char *argv[]) POP_ARG(); break; default: - fprintf (stderr, "Unknown option in \"%s\"", flag); + if (!really_quiet) + fprintf (stderr, "Unknown option in \"%s\"", flag); usage(); break; } @@ -526,7 +533,8 @@ do_args (int argc, char *argv[]) } if (argc > 1) { - fprintf(stderr, "Multiple dvi filenames?"); + if (!really_quiet) + fprintf(stderr, "Multiple dvi filenames?"); usage(); } else if (argc > 0) { /* @@ -619,7 +627,8 @@ error_cleanup (void) pdf_error_cleanup(); if (pdf_filename) { remove(pdf_filename); - fprintf(stderr, "\nOutput file removed.\n"); + if (!really_quiet) + fprintf(stderr, "\nOutput file removed.\n"); } } @@ -778,15 +787,19 @@ main (int argc, char *argv[]) { double dvi2pts; - if (strcmp(argv[0], "ebb") == 0) - return extractbb(argc, argv, EBB_OUTPUT); - else if (strcmp(argv[0], "xbb") == 0 || strcmp(argv[0], "extractbb") == 0) - return extractbb(argc, argv, XBB_OUTPUT); + { + char *base = basename(argv[0]); + if (strcmp(base, "ebb") == 0) + return extractbb(argc, argv, EBB_OUTPUT); + else if (strcmp(base, "xbb") == 0 || strcmp(base, "extractbb") == 0) + return extractbb(argc, argv, XBB_OUTPUT); + } mem_debug_init(); if (argc < 2) { - fprintf(stderr, "No dvi filename specified."); + if (!really_quiet) + fprintf(stderr, "No dvi filename specified."); usage(); return 1; } @@ -833,9 +846,10 @@ main (int argc, char *argv[]) MESG("%s -> %s\n", dvi_filename, pdf_filename); if (do_encryption) { + if (key_bits > 40 && pdf_get_version() <= PDF_VERSION_MIN) + ERROR("Chosen key length requires at least PDF 1.4. " + "Use \"-V 4\" to change."); pdf_enc_set_passwd(key_bits, permission, dvi_filename, pdf_filename); - if (key_bits > 40 && pdf_get_version() < 4) - pdf_set_version(4); } if (mp_mode) { diff --git a/Build/source/texk/dvipdfmx/src/epdf.c b/Build/source/texk/dvipdfmx/src/epdf.c index 0da13e58a7b..78e269e04c3 100644 --- a/Build/source/texk/dvipdfmx/src/epdf.c +++ b/Build/source/texk/dvipdfmx/src/epdf.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/epdf.c,v 1.25 2008/10/01 00:48:46 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/epdf.c,v 1.27 2009/05/04 00:41:42 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -49,31 +49,32 @@ #include "epdf.h" int -pdf_include_page (pdf_ximage *ximage, FILE *image_file) +pdf_include_page (pdf_ximage *ximage, FILE *image_file, const char *filename) { - char *ident = pdf_ximage_get_ident(ximage); pdf_file *pf; xform_info info; - pdf_obj *trailer, *contents = NULL; + pdf_obj *contents = NULL, *catalog; pdf_obj *page = NULL, *resources = NULL, *markinfo = NULL; long page_no, count; - pdf_ximage_init_form_info(&info); - - pf = pdf_open(ident, image_file); + pf = pdf_open(filename, image_file); if (!pf) return -1; - trailer = pdf_file_get_trailer(pf); + if (pdf_file_get_version(pf) > pdf_get_version()) + goto too_recent; + + pdf_ximage_init_form_info(&info); page_no = pdf_ximage_get_page(ximage); - page = pdf_doc_get_page(trailer, &page_no, &count, - &info.bbox, &resources, &markinfo); + page = pdf_doc_get_page(pf, &page_no, &count, &info.bbox, &resources); if(!page) goto error_silent; + catalog = pdf_file_get_catalog(pf); + markinfo = pdf_deref_obj(pdf_lookup_dict(catalog, "MarkInfo")); if (markinfo) { pdf_obj *tmp = pdf_deref_obj(pdf_lookup_dict(markinfo, "Marked")); pdf_release_obj(markinfo); @@ -199,4 +200,10 @@ pdf_include_page (pdf_ximage *ximage, FILE *image_file) pdf_close(pf); return -1; + + too_recent: + WARN("PDF version of input file more recent than in output file."); + WARN("Converting. Use \"-V\" switch to change output PDF version."); + pdf_close(pf); + return 1; } diff --git a/Build/source/texk/dvipdfmx/src/epdf.h b/Build/source/texk/dvipdfmx/src/epdf.h index 21703a8c96c..849589f3ebe 100644 --- a/Build/source/texk/dvipdfmx/src/epdf.h +++ b/Build/source/texk/dvipdfmx/src/epdf.h @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/epdf.h,v 1.8 2004/09/11 14:50:28 hirata Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/epdf.h,v 1.9 2009/05/03 00:13:04 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -28,6 +28,7 @@ #include "mfileio.h" #include "pdfximage.h" -extern int pdf_include_page (pdf_ximage *ximage, FILE *file); +extern int pdf_include_page (pdf_ximage *ximage, FILE *file, + const char *filename); #endif /* _EPDF_H_ */ diff --git a/Build/source/texk/dvipdfmx/src/jpegimage.c b/Build/source/texk/dvipdfmx/src/jpegimage.c index c605394311e..ed8d69165a2 100644 --- a/Build/source/texk/dvipdfmx/src/jpegimage.c +++ b/Build/source/texk/dvipdfmx/src/jpegimage.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/jpegimage.c,v 1.9 2007/05/18 05:19:01 chofchof Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/jpegimage.c,v 1.10 2009/03/24 02:07:48 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -194,6 +194,8 @@ static int JPEG_copy_stream (struct JPEG_info *j_info, static void JPEG_info_init (struct JPEG_info *j_info); static void JPEG_info_clear (struct JPEG_info *j_info); static pdf_obj *JPEG_get_iccp (struct JPEG_info *j_info); +static void jpeg_get_density (struct JPEG_info *j_info, + double *xdensity, double *ydensity); int check_for_jpeg (FILE *fp) @@ -331,36 +333,44 @@ jpeg_include_image (pdf_ximage *ximage, FILE *fp) info.bits_per_component = j_info.bits_per_component; info.num_components = j_info.num_components; -#define IS_JFIF(j) ((j).flags & HAVE_APPn_JFIF) + jpeg_get_density(&j_info, &info.xdensity, &info.ydensity); + + pdf_ximage_set_image(ximage, &info, stream); + JPEG_info_clear(&j_info); + + return 0; +} + +#define IS_JFIF(j) ((j)->flags & HAVE_APPn_JFIF) + +static void +jpeg_get_density (struct JPEG_info *j_info, + double *xdensity, double *ydensity) +{ if (IS_JFIF(j_info)) { struct JPEG_APPn_JFIF *app_data; int i; - for (i = 0; i < j_info.num_appn; i++) { - if (j_info.appn[i].marker != JM_APP0 || - j_info.appn[i].app_sig != JS_APPn_JFIF) - continue; + for (i = 0; i < j_info->num_appn; i++) { + if (j_info->appn[i].marker == JM_APP0 || + j_info->appn[i].app_sig == JS_APPn_JFIF) + break; } - if (i < j_info.num_appn) { - app_data = (struct JPEG_APPn_JFIF *)j_info.appn[i].app_data; + if (i < j_info->num_appn) { + app_data = (struct JPEG_APPn_JFIF *)j_info->appn[i].app_data; switch (app_data->units) { case 1: /* pixels per inch */ - info.xdensity = 72.0 / app_data->Xdensity; - info.ydensity = 72.0 / app_data->Ydensity; + *xdensity = 72.0 / app_data->Xdensity; + *ydensity = 72.0 / app_data->Ydensity; break; case 2: /* pixels per centimeter */ - info.xdensity = 72.0 / 2.54 / app_data->Xdensity; - info.ydensity = 72.0 / 2.54 / app_data->Ydensity; + *xdensity = 72.0 / 2.54 / app_data->Xdensity; + *ydensity = 72.0 / 2.54 / app_data->Ydensity; break; default: break; } } } - - pdf_ximage_set_image(ximage, &info, stream); - JPEG_info_clear(&j_info); - - return 0; } static void @@ -749,3 +759,27 @@ JPEG_scan_file (struct JPEG_info *j_info, FILE *fp) return (found_SOFn ? 0 : -1); } + +int +jpeg_get_bbox (FILE *fp, long *width, long *height, + double *xdensity, double *ydensity) +{ + struct JPEG_info j_info; + + JPEG_info_init(&j_info); + + if (JPEG_scan_file(&j_info, fp) < 0) { + WARN("%s: Not a JPEG file?", JPEG_DEBUG_STR); + JPEG_info_clear(&j_info); + return -1; + } + + *width = j_info.width; + *height = j_info.height; + + jpeg_get_density(&j_info, xdensity, ydensity); + + JPEG_info_clear(&j_info); + + return 0; +} diff --git a/Build/source/texk/dvipdfmx/src/jpegimage.h b/Build/source/texk/dvipdfmx/src/jpegimage.h index a47da0c0434..4b1e57c1e2c 100644 --- a/Build/source/texk/dvipdfmx/src/jpegimage.h +++ b/Build/source/texk/dvipdfmx/src/jpegimage.h @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/jpegimage.h,v 1.2 2004/03/11 11:50:21 hirata Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/jpegimage.h,v 1.3 2009/03/24 02:07:48 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -30,6 +30,8 @@ extern int check_for_jpeg (FILE *fp); extern int jpeg_include_image (pdf_ximage *ximage, FILE *fp); +extern int jpeg_get_bbox (FILE *fp, long *width, long *height, + double *xdensity, double *ydensity); #endif /* _JPEGIMAGE_H_ */ diff --git a/Build/source/texk/dvipdfmx/src/mem.c b/Build/source/texk/dvipdfmx/src/mem.c index a5435cee40d..7e50f9f3c74 100644 --- a/Build/source/texk/dvipdfmx/src/mem.c +++ b/Build/source/texk/dvipdfmx/src/mem.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/mem.c,v 1.6 2008/11/03 22:49:29 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/mem.c,v 1.7 2009/03/24 07:55:52 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -26,6 +26,7 @@ #include <stdlib.h> #include "system.h" +#include "system.h" #include "mem.h" #include "error.h" diff --git a/Build/source/texk/dvipdfmx/src/pdfdev.c b/Build/source/texk/dvipdfmx/src/pdfdev.c index 21ea4e781a7..c539add58f7 100644 --- a/Build/source/texk/dvipdfmx/src/pdfdev.c +++ b/Build/source/texk/dvipdfmx/src/pdfdev.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfdev.c,v 1.70 2008/12/11 16:03:04 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfdev.c,v 1.71 2009/03/16 22:26:40 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -536,7 +536,7 @@ dev_set_text_matrix (spt_t xpos, spt_t ypos, double slant, double extend, int ro format_buffer[len++] = 'T'; format_buffer[len++] = 'm'; - pdf_doc_add_page_content(format_buffer, len); + pdf_doc_add_page_content(format_buffer, len); /* op: Tm */ text_state.ref_x = xpos; text_state.ref_y = ypos; @@ -556,7 +556,7 @@ reset_text_state (void) /* * We need to reset the line matrix to handle slanted fonts. */ - pdf_doc_add_page_content(" BT", 3); + pdf_doc_add_page_content(" BT", 3); /* op: BT */ /* * text_state.matrix is identity at top of page. * This sometimes write unnecessary "Tm"s when transition from @@ -584,7 +584,7 @@ text_mode (void) case TEXT_MODE: break; case STRING_MODE: - pdf_doc_add_page_content(text_state.is_mb ? ">]TJ" : ")]TJ", 4); + pdf_doc_add_page_content(text_state.is_mb ? ">]TJ" : ")]TJ", 4); /* op: TJ */ break; case GRAPHICS_MODE: reset_text_state(); @@ -601,10 +601,10 @@ graphics_mode (void) case GRAPHICS_MODE: break; case STRING_MODE: - pdf_doc_add_page_content(text_state.is_mb ? ">]TJ" : ")]TJ", 4); + pdf_doc_add_page_content(text_state.is_mb ? ">]TJ" : ")]TJ", 4); /* op: TJ */ /* continue */ case TEXT_MODE: - pdf_doc_add_page_content(" ET", 3); + pdf_doc_add_page_content(" ET", 3); /* op: ET */ text_state.force_reset = 0; text_state.font_id = -1; break; @@ -731,12 +731,12 @@ start_string (spt_t xpos, spt_t ypos, double slant, double extend, int rotate) len += dev_sprint_bp(format_buffer+len, desired_dely, &error_dely); break; } - pdf_doc_add_page_content(format_buffer, len); + pdf_doc_add_page_content(format_buffer, len); /* op: */ /* * dvipdfm wrongly using "TD" in place of "Td". * The TD operator set leading, but we are not using T* etc. */ - pdf_doc_add_page_content(text_state.is_mb ? " Td[<" : " Td[(", 5); + pdf_doc_add_page_content(text_state.is_mb ? " Td[<" : " Td[(", 5); /* op: Td */ /* Error correction */ text_state.ref_x = xpos - error_delx; @@ -757,7 +757,7 @@ string_mode (spt_t xpos, spt_t ypos, double slant, double extend, int rotate) case TEXT_MODE: if (text_state.force_reset) { dev_set_text_matrix(xpos, ypos, slant, extend, rotate); - pdf_doc_add_page_content(text_state.is_mb ? "[<" : "[(", 2); + pdf_doc_add_page_content(text_state.is_mb ? "[<" : "[(", 2); /* op: */ text_state.force_reset = 0; } else { start_string(xpos, ypos, slant, extend, rotate); @@ -832,14 +832,14 @@ dev_set_font (int font_id) format_buffer[len++] = ' '; format_buffer[len++] = 'T'; format_buffer[len++] = 'f'; - pdf_doc_add_page_content(format_buffer, len); + pdf_doc_add_page_content(format_buffer, len); /* op: Tf */ if (font->bold > 0.0 || font->bold != text_state.bold_param) { if (font->bold <= 0.0) len = sprintf(format_buffer, " 0 Tr"); else len = sprintf(format_buffer, " 2 Tr %.2f w", font->bold); /* _FIXME_ */ - pdf_doc_add_page_content(format_buffer, len); + pdf_doc_add_page_content(format_buffer, len); /* op: Tr w */ } text_state.bold_param = font->bold; @@ -1134,7 +1134,7 @@ pdf_dev_set_string (spt_t xpos, spt_t ypos, len += p_itoa( kern, format_buffer + len); } format_buffer[len++] = text_state.is_mb ? '<' : '('; - pdf_doc_add_page_content(format_buffer, len); + pdf_doc_add_page_content(format_buffer, len); /* op: */ len = 0; } @@ -1154,7 +1154,7 @@ pdf_dev_set_string (spt_t xpos, spt_t ypos, FORMAT_BUF_SIZE - len, str_ptr, length); } /* I think if you really care about speed, you should avoid memcopy here. */ - pdf_doc_add_page_content(format_buffer, len); + pdf_doc_add_page_content(format_buffer, len); /* op: */ text_state.offset += width; } @@ -1533,7 +1533,7 @@ pdf_dev_set_rule (spt_t xpos, spt_t ypos, spt_t width, spt_t height) } format_buffer[len++] = ' '; format_buffer[len++] = 'Q'; - pdf_doc_add_page_content(format_buffer, len); + pdf_doc_add_page_content(format_buffer, len); /* op: q re f Q */ } /* Rectangle in device space coordinate. */ @@ -1740,7 +1740,7 @@ pdf_dev_put_image (int id, res_name = pdf_ximage_get_resname(id); len = sprintf(work_buffer, " /%s Do", res_name); - pdf_doc_add_page_content(work_buffer, len); + pdf_doc_add_page_content(work_buffer, len); /* op: Do */ pdf_dev_grestore(); diff --git a/Build/source/texk/dvipdfmx/src/pdfdoc.c b/Build/source/texk/dvipdfmx/src/pdfdoc.c index 6b226ed08d6..087ca41e1ee 100644 --- a/Build/source/texk/dvipdfmx/src/pdfdoc.c +++ b/Build/source/texk/dvipdfmx/src/pdfdoc.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfdoc.c,v 1.65 2008/12/11 16:03:05 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfdoc.c,v 1.70 2009/05/04 00:41:42 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -373,7 +373,7 @@ static void pdf_doc_close_page_tree (pdf_doc *p); static void pdf_doc_init_names (pdf_doc *p, int check_gotos); static void pdf_doc_close_names (pdf_doc *p); -static void pdf_doc_add_gotos (pdf_obj *annot_dict); +static void pdf_doc_add_goto (pdf_obj *annot_dict); static void pdf_doc_init_docinfo (pdf_doc *p); static void pdf_doc_close_docinfo (pdf_doc *p); @@ -929,33 +929,16 @@ pdf_doc_close_page_tree (pdf_doc *p) */ pdf_obj * -pdf_doc_get_page (pdf_obj *trailer, long *page_p, long *count_p, - pdf_rect *bbox, pdf_obj **resources_p, - pdf_obj **markinfo_p) { +pdf_doc_get_page (pdf_file *pf, long *page_p, long *count_p, + pdf_rect *bbox, pdf_obj **resources_p) { pdf_obj *page_tree = NULL; pdf_obj *resources = NULL, *box = NULL, *rotate = NULL; pdf_obj *catalog; long page_no = *page_p, page_idx; - if (pdf_lookup_dict(trailer, "Encrypt")) { - WARN("This PDF document is encrypted."); - pdf_release_obj(trailer); - goto error_silent; - } - - catalog = pdf_deref_obj(pdf_lookup_dict(trailer, "Root")); - pdf_release_obj(trailer); - if (!PDF_OBJ_DICTTYPE(catalog)) { - if (catalog) - pdf_release_obj(catalog); - goto error; - } - - if (markinfo_p) - *markinfo_p = pdf_deref_obj(pdf_lookup_dict(catalog, "MarkInfo")); + catalog = pdf_file_get_catalog(pf); page_tree = pdf_deref_obj(pdf_lookup_dict(catalog, "Pages")); - pdf_release_obj(catalog); if (!PDF_OBJ_DICTTYPE(page_tree)) goto error; @@ -1094,7 +1077,7 @@ pdf_doc_get_page (pdf_obj *trailer, long *page_p, long *count_p, { int i; - for (i = 4; --i; ) { + for (i = 4; i--; ) { double x; pdf_obj *tmp = pdf_deref_obj(pdf_get_array(box, i)); if (!PDF_OBJ_NUMBERTYPE(tmp)) { @@ -1382,7 +1365,7 @@ pdf_doc_bookmarks_add (pdf_obj *dict, int is_open) p->outlines.current = item; - pdf_doc_add_gotos(dict); + pdf_doc_add_goto(dict); return; } @@ -1475,63 +1458,54 @@ pdf_doc_add_names (const char *category, } static void -pdf_doc_add_gotos (pdf_obj *annot_dict) +pdf_doc_add_goto (pdf_obj *annot_dict) { - pdf_obj *subtype, *A, *S, *D = NULL, *tmp; - char *dest; + pdf_obj *subtype = NULL, *A = NULL, *S = NULL, *D = NULL, *D_new, *dict; + char *dest, *key; if (!pdoc.check_gotos) return; /* - * We cannot use pdf_deref_obj because if it return NULL - * we don't know whether a dictionary does not exist - * or has been declared as @foo and not yet defined. (As - * long as @foo is undefined, it is stored as "null" object.) - */ - - /* * An annotation dictionary coming from an annotation special * must have a "Subtype". An annotation dictionary coming from * an outline special has none. */ - subtype = pdf_lookup_dict(annot_dict, "Subtype"); - if (PDF_OBJ_INDIRECTTYPE(subtype)) - goto indirect; - else if (subtype && !PDF_OBJ_NULLTYPE(subtype)) { - if (!PDF_OBJ_NAMETYPE(subtype)) + subtype = pdf_deref_obj(pdf_lookup_dict(annot_dict, "Subtype")); + if (subtype) { + if (PDF_OBJ_UNDEFINED(subtype)) + goto undefined; + else if (!PDF_OBJ_NAMETYPE(subtype)) goto error; else if (strcmp(pdf_name_value(subtype), "Link")) - return; + goto cleanup; } - A = pdf_lookup_dict(annot_dict, "A"); - if (PDF_OBJ_DICTTYPE(A)) { - S = pdf_lookup_dict(A, "S"); - if (PDF_OBJ_INDIRECTTYPE(S)) - goto indirect; - else if (!PDF_OBJ_NAMETYPE(S)) - goto error; - else if (strcmp(pdf_name_value(S), "GoTo")) - return; - - D = pdf_lookup_dict(A, "D"); - if (PDF_OBJ_NULLTYPE(D)) - D = NULL; - } else if (PDF_OBJ_INDIRECTTYPE(A)) - goto indirect; - else if (A && !PDF_OBJ_NULLTYPE(A)) - goto error; - - tmp = pdf_lookup_dict(annot_dict, "Dest"); - if (PDF_OBJ_NULLTYPE(tmp)) - tmp = NULL; + dict = annot_dict; + key = "Dest"; + D = pdf_deref_obj(pdf_lookup_dict(annot_dict, key)); + if (PDF_OBJ_UNDEFINED(D)) + goto undefined; - if (tmp) { - if (D) + A = pdf_deref_obj(pdf_lookup_dict(annot_dict, "A")); + if (A) { + if (PDF_OBJ_UNDEFINED(A)) + goto undefined; + else if (D || !PDF_OBJ_DICTTYPE(A)) goto error; - else - D = tmp; + else { + S = pdf_deref_obj(pdf_lookup_dict(A, "S")); + if (PDF_OBJ_UNDEFINED(S)) + goto undefined; + else if (!PDF_OBJ_NAMETYPE(S)) + goto error; + else if (strcmp(pdf_name_value(S), "GoTo")) + goto cleanup; + + dict = A; + key = "D"; + D = pdf_deref_obj(pdf_lookup_dict(A, key)); + } } if (PDF_OBJ_STRINGTYPE(D)) @@ -1542,26 +1516,51 @@ pdf_doc_add_gotos (pdf_obj *annot_dict) dest = pdf_name_value(D); #endif else if (PDF_OBJ_ARRAYTYPE(D)) - return; - else if (PDF_OBJ_INDIRECTTYPE(D)) - goto indirect; + goto cleanup; + else if (PDF_OBJ_UNDEFINED(D)) + goto undefined; else goto error; - ht_insert_table(&pdoc.gotos, dest, strlen(dest), NULL+1, NULL); - /* NULL+1 is just some non-null pointer */ - return; + D_new = ht_lookup_table(&pdoc.gotos, dest, strlen(dest)); + if (!D_new) { + char buf[10]; + + /* We use hexadecimal notation for our numeric destinations. + * Other bases (e.g., 10+26 or 10+2*26) would be more efficient. + */ + sprintf(buf, "%lx", ht_table_size(&pdoc.gotos)); + D_new = pdf_new_string(buf, strlen(buf)); + ht_insert_table(&pdoc.gotos, dest, strlen(dest), + D_new, (void (*) (void *)) pdf_release_obj); + } + + { + pdf_obj *key_obj = pdf_new_name(key); + if (!pdf_add_dict(dict, key_obj, pdf_link_obj(D_new))) + pdf_release_obj(key_obj); + } + + cleanup: + if (subtype) + pdf_release_obj(subtype); + if (A) + pdf_release_obj(A); + if (S) + pdf_release_obj(S); + if (D) + pdf_release_obj(D); - indirect: - pdoc.check_gotos = 0; - if (verbose) - MESG("\nFound unexpected annotation format." - " Will not remove PDF destinations\n"); return; error: - WARN("Unknown PDF annotation format."); - return; + WARN("Unknown PDF annotation format. Output file may be broken."); + goto cleanup; + + undefined: + WARN("Cannot optimize PDF annotations. Output file may be broken." + " Please restart with option \"-C 0x10\"\n"); + goto cleanup; } static void @@ -1645,57 +1644,57 @@ pdf_doc_close_names (pdf_doc *p) RELEASE(p->names); p->names = NULL; - ht_clear_table(&p->gotos, NULL); + ht_clear_table(&p->gotos, (void (*) (void *)) pdf_release_obj); return; } void -pdf_doc_add_annot (unsigned page_no, const pdf_rect *rect, pdf_obj *annot_dict) +pdf_doc_add_annot (unsigned page_no, const pdf_rect *rect, + pdf_obj *annot_dict, int new_annot) { pdf_doc *p = &pdoc; pdf_page *page; pdf_obj *rect_array; double annot_grow = p->opt.annot_grow; + double xpos, ypos; + pdf_rect mediabox, annbox; page = doc_get_page_entry(p, page_no); if (!page->annots) page->annots = pdf_new_array(); -#if 1 - { - pdf_rect mediabox; - - pdf_doc_get_mediabox(page_no, &mediabox); - if (rect->llx < mediabox.llx || - rect->urx > mediabox.urx || - rect->lly < mediabox.lly || - rect->ury > mediabox.ury) { - WARN("Annotation out of page boundary."); - WARN("Current page's MediaBox: [%g %g %g %g]", - mediabox.llx, mediabox.lly, mediabox.urx, mediabox.ury); - WARN("Annotation: [%g %g %g %g]", - rect->llx, rect->lly, rect->urx, rect->ury); - WARN("Maybe incorrect paper size specified."); - } - if (rect->llx > rect->urx || rect->lly > rect->ury) { - WARN("Rectangle with negative width/height: [%g %g %g %g]", - rect->llx, rect->lly, rect->urx, rect->ury); - } + pdf_doc_get_mediabox(page_no, &mediabox); + pdf_dev_get_coord(&xpos, &ypos); + annbox.llx = rect->llx - xpos; annbox.lly = rect->lly - ypos; + annbox.urx = rect->urx - xpos; annbox.ury = rect->ury - ypos; + + if (annbox.llx < mediabox.llx || annbox.urx > mediabox.urx || + annbox.lly < mediabox.lly || annbox.ury > mediabox.ury) { + WARN("Annotation out of page boundary."); + WARN("Current page's MediaBox: [%g %g %g %g]", + mediabox.llx, mediabox.lly, mediabox.urx, mediabox.ury); + WARN("Annotation: [%g %g %g %g]", + annbox.llx, annbox.lly, annbox.urx, annbox.ury); + WARN("Maybe incorrect paper size specified."); + } + if (annbox.llx > annbox.urx || annbox.lly > annbox.ury) { + WARN("Rectangle with negative width/height: [%g %g %g %g]", + annbox.llx, annbox.lly, annbox.urx, annbox.ury); } -#endif rect_array = pdf_new_array(); - pdf_add_array(rect_array, pdf_new_number(ROUND(rect->llx - annot_grow, 0.001))); - pdf_add_array(rect_array, pdf_new_number(ROUND(rect->lly - annot_grow, 0.001))); - pdf_add_array(rect_array, pdf_new_number(ROUND(rect->urx + annot_grow, 0.001))); - pdf_add_array(rect_array, pdf_new_number(ROUND(rect->ury + annot_grow, 0.001))); + pdf_add_array(rect_array, pdf_new_number(ROUND(annbox.llx - annot_grow, 0.001))); + pdf_add_array(rect_array, pdf_new_number(ROUND(annbox.lly - annot_grow, 0.001))); + pdf_add_array(rect_array, pdf_new_number(ROUND(annbox.urx + annot_grow, 0.001))); + pdf_add_array(rect_array, pdf_new_number(ROUND(annbox.ury + annot_grow, 0.001))); pdf_add_dict (annot_dict, pdf_new_name("Rect"), rect_array); pdf_add_array(page->annots, pdf_ref_obj(annot_dict)); - pdf_doc_add_gotos(annot_dict); + if (new_annot) + pdf_doc_add_goto(annot_dict); return; } @@ -2653,17 +2652,16 @@ pdf_doc_end_grabbing (pdf_obj *attrib) static struct { int dirty; + int broken; pdf_obj *annot_dict; pdf_rect rect; -} breaking_state = {0, NULL, {0.0, 0.0, 0.0, 0.0}}; +} breaking_state = {0, 0, NULL, {0.0, 0.0, 0.0, 0.0}}; static void reset_box (void) { - breaking_state.rect.llx = 10000.0; /* large value */ - breaking_state.rect.lly = 10000.0; /* large value */ - breaking_state.rect.urx = 0.0; /* small value */ - breaking_state.rect.ury = 0.0; /* small value */ + breaking_state.rect.llx = breaking_state.rect.lly = HUGE_VAL; + breaking_state.rect.urx = breaking_state.rect.ury = -HUGE_VAL; breaking_state.dirty = 0; } @@ -2671,6 +2669,7 @@ void pdf_doc_begin_annot (pdf_obj *dict) { breaking_state.annot_dict = dict; + breaking_state.broken = 0; reset_box(); } @@ -2690,9 +2689,11 @@ pdf_doc_break_annot (void) /* Copy dict */ annot_dict = pdf_new_dict(); pdf_merge_dict(annot_dict, breaking_state.annot_dict); - pdf_doc_add_annot(pdf_doc_current_page_number(), - &(breaking_state.rect), annot_dict); + pdf_doc_add_annot(pdf_doc_current_page_number(), &(breaking_state.rect), + annot_dict, !breaking_state.broken); pdf_release_obj(annot_dict); + + breaking_state.broken = 1; } reset_box(); } diff --git a/Build/source/texk/dvipdfmx/src/pdfdoc.h b/Build/source/texk/dvipdfmx/src/pdfdoc.h index 2056c84c35e..b824888bd9e 100644 --- a/Build/source/texk/dvipdfmx/src/pdfdoc.h +++ b/Build/source/texk/dvipdfmx/src/pdfdoc.h @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfdoc.h,v 1.28 2008/11/30 21:12:27 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfdoc.h,v 1.31 2009/05/04 00:41:43 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -56,10 +56,9 @@ extern pdf_obj *pdf_doc_get_reference (const char *category); #define pdf_doc_names() pdf_doc_get_dictionary("Names") #define pdf_doc_this_page() pdf_doc_get_dictionary("@THISPAGE") -extern pdf_obj *pdf_doc_get_page (pdf_obj *trailer, +extern pdf_obj *pdf_doc_get_page (pdf_file *pf, long *page_p, long *count_p, - pdf_rect *bbox, pdf_obj **resources_p, - pdf_obj **markinfo_p); + pdf_rect *bbox, pdf_obj **resources_p); extern long pdf_doc_current_page_number (void); extern pdf_obj *pdf_doc_current_page_resources (void); @@ -116,7 +115,9 @@ extern void pdf_doc_end_grabbing (pdf_obj *attrib); /* Annotation */ extern void pdf_doc_add_annot (unsigned page_no, - const pdf_rect *rect, pdf_obj *annot_dict); + const pdf_rect *rect, + pdf_obj *annot_dict, + int dest_is_new); /* Annotation with auto- clip and line (or page) break */ extern void pdf_doc_begin_annot (pdf_obj *dict); diff --git a/Build/source/texk/dvipdfmx/src/pdfdraw.c b/Build/source/texk/dvipdfmx/src/pdfdraw.c index 5bbc8d39ab5..6474282ffe1 100644 --- a/Build/source/texk/dvipdfmx/src/pdfdraw.c +++ b/Build/source/texk/dvipdfmx/src/pdfdraw.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfdraw.c,v 1.18 2008/12/11 16:03:05 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfdraw.c,v 1.19 2009/03/16 22:26:40 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -799,7 +799,7 @@ pdf_dev__rectshape (pdf_dev *P, buf[len++] = ' '; buf[len++] = isclip ? 'n' : 'Q'; - pdf_doc_add_page_content(buf, len); len = 0; + pdf_doc_add_page_content(buf, len); /* op: q cm n re Q */ return 0; } @@ -842,7 +842,8 @@ pdf_dev__flushpath (pdf_dev *P, b[len++] = ' '; b[len++] = 'r'; b[len++] = 'e'; - pdf_doc_add_page_content(b, len); len = 0; + pdf_doc_add_page_content(b, len); /* op: re */ + len = 0; } else { n_seg = PA_LENGTH(pa); for (i = 0, len = 0, pe = &pa->path[0]; @@ -856,11 +857,13 @@ pdf_dev__flushpath (pdf_dev *P, b[len++] = ' '; b[len++] = PE_OPCHR(pe); if (len + 128 > b_len) { - pdf_doc_add_page_content(b, len); len = 0; + pdf_doc_add_page_content(b, len); /* op: m l c v y h */ + len = 0; } } if (len > 0) { - pdf_doc_add_page_content(b, len); len = 0; + pdf_doc_add_page_content(b, len); /* op: m l c v y h */ + len = 0; } } @@ -869,7 +872,7 @@ pdf_dev__flushpath (pdf_dev *P, if (rule == PDF_FILL_RULE_EVENODD) b[len++] = '*'; - pdf_doc_add_page_content(b, len); + pdf_doc_add_page_content(b, len); /* op: f F s S b B W f* F* s* S* b* B* W* */ return 0; } @@ -1107,7 +1110,7 @@ pdf_dev_gsave (void) copy_a_gstate(gs1, gs0); m_stack_push(&gs_stack, gs1); - pdf_doc_add_page_content(" q", 2); + pdf_doc_add_page_content(" q", 2); /* op: q */ return 0; } @@ -1126,7 +1129,7 @@ pdf_dev_grestore (void) clear_a_gstate(gs); RELEASE(gs); - pdf_doc_add_page_content(" Q", 2); + pdf_doc_add_page_content(" Q", 2); /* op: Q */ pdf_dev_reset_fonts(); @@ -1188,7 +1191,7 @@ pdf_dev_grestore_to (int depth) } while (m_stack_depth(gss) > depth + 1) { - pdf_doc_add_page_content(" Q", 2); + pdf_doc_add_page_content(" Q", 2); /* op: Q */ gs = m_stack_pop(gss); clear_a_gstate(gs); RELEASE(gs); @@ -1283,7 +1286,7 @@ pdf_dev_set_color (const pdf_color *color, char mask, int force) default: /* already verified the given color */ break; } - pdf_doc_add_page_content(fmt_buf, len); + pdf_doc_add_page_content(fmt_buf, len); /* op: RG K G rg k g */ pdf_color_copycolor(current, color); } @@ -1327,7 +1330,7 @@ pdf_dev_concat (const pdf_tmatrix *M) buf[len++] = ' '; buf[len++] = 'c'; buf[len++] = 'm'; - pdf_doc_add_page_content(buf, len); + pdf_doc_add_page_content(buf, len); /* op: cm */ pdf_concatmatrix(CTM, M); @@ -1362,7 +1365,7 @@ pdf_dev_setmiterlimit (double mlimit) len += pdf_sprint_length(buf + len, mlimit); buf[len++] = ' '; buf[len++] = 'M'; - pdf_doc_add_page_content(buf, len); + pdf_doc_add_page_content(buf, len); /* op: M */ gs->miterlimit = mlimit; } @@ -1379,7 +1382,7 @@ pdf_dev_setlinecap (int capstyle) if (gs->linecap != capstyle) { len = sprintf(buf, " %d J", capstyle); - pdf_doc_add_page_content(buf, len); + pdf_doc_add_page_content(buf, len); /* op: J */ gs->linecap = capstyle; } @@ -1396,7 +1399,7 @@ pdf_dev_setlinejoin (int joinstyle) if (gs->linejoin != joinstyle) { len = sprintf(buf, " %d j", joinstyle); - pdf_doc_add_page_content(buf, len); + pdf_doc_add_page_content(buf, len); /* op: j */ gs->linejoin = joinstyle; } @@ -1416,7 +1419,7 @@ pdf_dev_setlinewidth (double width) len += pdf_sprint_length(buf + len, width); buf[len++] = ' '; buf[len++] = 'w'; - pdf_doc_add_page_content(buf, len); + pdf_doc_add_page_content(buf, len); /* op: w */ gs->linewidth = width; } @@ -1434,17 +1437,17 @@ pdf_dev_setdash (int count, double *pattern, double offset) gs->linedash.num_dash = count; gs->linedash.offset = offset; - pdf_doc_add_page_content(" [", 2); + pdf_doc_add_page_content(" [", 2); /* op: */ for (i = 0; i < count; i++) { buf[0] = ' '; len = pdf_sprint_length (buf + 1, pattern[i]); - pdf_doc_add_page_content(buf, len + 1); + pdf_doc_add_page_content(buf, len + 1); /* op: */ gs->linedash.pattern[i] = pattern[i]; } - pdf_doc_add_page_content("] ", 2); + pdf_doc_add_page_content("] ", 2); /* op: */ len = pdf_sprint_length (buf, offset); - pdf_doc_add_page_content(buf, len); - pdf_doc_add_page_content(" d", 2); + pdf_doc_add_page_content(buf, len); /* op: */ + pdf_doc_add_page_content(" d", 2); /* op: d */ return 0; } @@ -1464,7 +1467,7 @@ pdf_dev_setflat (int flatness) if (gs->flatness != flatness) { gs->flatness = flatness; len = sprintf(buf, " %d i", flatness); - pdf_doc_add_page_content(buf, len); + pdf_doc_add_page_content(buf, len); /* op: i */ } return 0; @@ -1523,7 +1526,7 @@ pdf_dev_newpath (void) pdf_path__clearpath (p); } /* The following is required for "newpath" operator in mpost.c. */ - pdf_doc_add_page_content(" n", 2); + pdf_doc_add_page_content(" n", 2); /* op: n */ return 0; } diff --git a/Build/source/texk/dvipdfmx/src/pdfencoding.c b/Build/source/texk/dvipdfmx/src/pdfencoding.c index 296674d9880..108500adbb1 100644 --- a/Build/source/texk/dvipdfmx/src/pdfencoding.c +++ b/Build/source/texk/dvipdfmx/src/pdfencoding.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfencoding.c,v 1.11 2008/05/22 11:03:09 chofchof Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfencoding.c,v 1.12 2009/03/24 07:55:52 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -29,6 +29,7 @@ #include <string.h> #include "system.h" +#include "system.h" #include "mem.h" #include "error.h" #include "dpxutil.h" diff --git a/Build/source/texk/dvipdfmx/src/pdfencrypt.c b/Build/source/texk/dvipdfmx/src/pdfencrypt.c index e76f18eedaa..42902371fcf 100644 --- a/Build/source/texk/dvipdfmx/src/pdfencrypt.c +++ b/Build/source/texk/dvipdfmx/src/pdfencrypt.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfencrypt.c,v 1.10 2008/02/12 18:44:40 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfencrypt.c,v 1.13 2009/03/27 23:47:01 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -37,6 +37,7 @@ #endif /* WIN32 */ #include "system.h" +#include "system.h" #include "mem.h" #include "error.h" #include "pdfobj.h" @@ -49,7 +50,7 @@ #define MAX_PWD_LEN 128 static unsigned char algorithm, revision, key_size; -static unsigned long permission; +static long permission; static unsigned char key_data[MAX_KEY_LEN], id_string[MAX_KEY_LEN]; static unsigned char opwd_string[MAX_STR_LEN], upwd_string[MAX_STR_LEN]; @@ -389,10 +390,10 @@ void pdf_enc_set_passwd (unsigned bits, unsigned perm, char *dviname, char *pdfn key_size = (unsigned char)(bits / 8); algorithm = (key_size == 5 ? 1 : 2); - permission = (unsigned long)perm | 0x000000C0; - revision = ((algorithm == 1 && permission < 0x100) ? 2 : 3); + permission = (long) (perm | 0xC0U); + revision = ((algorithm == 1 && permission < 0x100L) ? 2 : 3); if (revision == 3) - permission |= 0xFFFFF000; + permission |= ~0xFFFL; compute_id_string(dviname, pdfname); compute_owner_password(); @@ -501,7 +502,7 @@ pdf_obj *pdf_encrypt_obj (void) pdf_new_name ("U"), pdf_new_string (upwd_string, 32)); /* KEY : P - * TYPE : integer + * TYPE : (signed 32 bit) integer * VALUE: (Required) A set of flags specifying which operations are * permitted when the document is opened with user access. */ diff --git a/Build/source/texk/dvipdfmx/src/pdflimits.h b/Build/source/texk/dvipdfmx/src/pdflimits.h index 6cc162857f6..f3871dea24a 100644 --- a/Build/source/texk/dvipdfmx/src/pdflimits.h +++ b/Build/source/texk/dvipdfmx/src/pdflimits.h @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdflimits.h,v 1.4 2004/09/05 13:30:05 hirata Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdflimits.h,v 1.6 2009/05/06 06:07:09 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -26,6 +26,15 @@ #define _PDFLIMITS_H_ /* + * The minimal and maximal PDF version supported by DVIPDFMx. + * NOTE: Don't forget to update CIDFont_stdcc_def[] in cid.c + * if you increase PDF_VERSION_MAX! + */ +#define PDF_VERSION_MIN 3 +#define PDF_VERSION_MAX 7 +#define PDF_VERSION_DEFAULT 4 + +/* * PDF_NAME_LEN_MAX: see, Appendix C of PDF Ref. v1.3, 2nd. ed. * This is Acrobat implementation limit. */ diff --git a/Build/source/texk/dvipdfmx/src/pdfnames.c b/Build/source/texk/dvipdfmx/src/pdfnames.c index ed7a9b7c6a2..a209e110397 100644 --- a/Build/source/texk/dvipdfmx/src/pdfnames.c +++ b/Build/source/texk/dvipdfmx/src/pdfnames.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfnames.c,v 1.5 2008/11/03 22:49:29 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfnames.c,v 1.6 2009/04/26 21:23:29 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -44,9 +44,8 @@ struct obj_data { - pdf_obj *object_ref; pdf_obj *object; - int reserve; /* 1 if object is not actually defined. */ + int closed; /* 1 if object is closed */ }; char * @@ -86,7 +85,7 @@ pdf_new_name_tree (void) } static void -flush_objects (struct ht_table *ht_tab) +check_objects_defined (struct ht_table *ht_tab) { struct ht_iter iter; @@ -98,19 +97,12 @@ flush_objects (struct ht_table *ht_tab) key = ht_iter_getkey(&iter, &keylen); value = ht_iter_getval(&iter); - if (value->reserve) { - WARN("Unresolved object reference \"%s\" found!!!", + ASSERT(value->object); + if (PDF_OBJ_UNDEFINED(value->object)) { + pdf_names_add_object(ht_tab, key, keylen, pdf_new_null()); + WARN("Object @%s used, but not defined. Replaced by null.", printable_key(key, keylen)); } - if (value->object) { - pdf_release_obj(value->object); - } - if (value->object_ref) { - pdf_release_obj(value->object_ref); - } - value->object = NULL; - value->object_ref = NULL; - value->reserve = 0; } while (ht_iter_next(&iter) >= 0); ht_clear_iter(&iter); } @@ -122,14 +114,11 @@ hval_free (void *hval) struct obj_data *value; value = (struct obj_data *) hval; - if (value->object) - pdf_release_obj(value->object); - if (value->object_ref) - pdf_release_obj(value->object_ref); - value->object = NULL; - value->object_ref = NULL; - value->reserve = 0; + if (value->object) { + pdf_release_obj(value->object); + value->object = NULL; + } RELEASE(value); @@ -141,7 +130,8 @@ pdf_delete_name_tree (struct ht_table **names) { ASSERT(names && *names); - flush_objects (*names); + check_objects_defined(*names); + ht_clear_table(*names, hval_free); RELEASE(*names); *names = NULL; @@ -163,64 +153,20 @@ pdf_names_add_object (struct ht_table *names, value = ht_lookup_table(names, key, keylen); if (!value) { value = NEW(1, struct obj_data); - value->object = object; - value->object_ref = NULL; - value->reserve = 0; + value->object = object; + value->closed = 0; ht_append_table(names, key, keylen, value); } else { - if (value->reserve) { - /* null object is used for undefined objects */ + ASSERT(value->object); + if (PDF_OBJ_UNDEFINED(value->object)) { pdf_transfer_label(object, value->object); pdf_release_obj(value->object); value->object = object; } else { - if (value->object || value->object_ref) { - WARN("Object reference with key \"%s\" is in use.", - printable_key(key, keylen)); - pdf_release_obj(object); - return -1; - } else { - value->object = object; - } - } - value->reserve = 0; - } - - return 0; -} - -int -pdf_names_add_reference (struct ht_table *names, - const void *key, int keylen, pdf_obj *object_ref) -{ - struct obj_data *value; - - ASSERT(names); - - if (!PDF_OBJ_INDIRECTTYPE(object_ref)) { - WARN("Invalid type: @%s is not reference...", - printable_key(key, keylen)); - return -1; - } - - value = ht_lookup_table(names, key, keylen); - if (!value) { - value = NEW(1, struct obj_data); - value->object = NULL; - value->object_ref = object_ref; - value->reserve = 0; - ht_append_table(names, key, keylen, value); - } else { - if (value->object || value->object_ref) { - WARN("Object reference \"%s\" is in use.", - printable_key(key, keylen)); - WARN("Please close it before redefining."); + WARN("Object @%s already defined.", printable_key(key, keylen)); + pdf_release_obj(object); return -1; - } else { - value->object = NULL; - value->object_ref = object_ref; } - value->reserve = 0; } return 0; @@ -234,29 +180,24 @@ pdf_names_lookup_reference (struct ht_table *names, const void *key, int keylen) { struct obj_data *value; + pdf_obj *object; ASSERT(names); value = ht_lookup_table(names, key, keylen); - /* Reserve object label */ - if (!value) { - value = NEW(1, struct obj_data); - value->object = pdf_new_null(); /* dummy */ - value->object_ref = NULL; - value->reserve = 1; - ht_append_table(names, key, keylen, value); - } - - if (!value->object_ref) { - if (value->object) - value->object_ref = pdf_ref_obj(value->object); - else { - WARN("Object @%s not defined or already closed.", - printable_key(key, keylen)); - } + if (value) { + object = value->object; + } else { + /* A null object as dummy would create problems because as value + * of a dictionary entry, a null object is be equivalent to no entry + * at all. This matters for optimization of PDF destinations. + */ + object = pdf_new_undefined(); + pdf_names_add_object(names, key, keylen, object); } + ASSERT(object); - return pdf_link_obj(value->object_ref); + return pdf_ref_obj(object); } pdf_obj * @@ -268,12 +209,9 @@ pdf_names_lookup_object (struct ht_table *names, ASSERT(names); value = ht_lookup_table(names, key, keylen); - if (!value) + if (!value || PDF_OBJ_UNDEFINED(value->object)) return NULL; - else if (!value->object) { - WARN("Object @%s not defined or already closed.", - printable_key(key, keylen)); - } + ASSERT(value->object); return value->object; } @@ -287,21 +225,19 @@ pdf_names_close_object (struct ht_table *names, ASSERT(names); value = ht_lookup_table(names, key, keylen); - if (!value) { - WARN("Tried to release nonexistent reference: %s", - printable_key(key, keylen)); + if (!value ||PDF_OBJ_UNDEFINED(value->object) ) { + WARN("Cannot close undefined object @%s.", printable_key(key, keylen)); return -1; } + ASSERT(value->object); - if (value->object) { - pdf_release_obj(value->object); - value->object = NULL; - } else { - WARN("Trying to close object @%s twice?", - printable_key(key, keylen)); + if (value->closed) { + WARN("Object @%s already closed.", printable_key(key, keylen)); return -1; } + value->closed = 1; + return 0; } @@ -434,32 +370,28 @@ flat_table (struct ht_table *ht_tab, long *num_entries, key = ht_iter_getkey(&iter, &keylen); - if (filter && !ht_lookup_table(filter, key, keylen)) - continue; + if (filter) { + pdf_obj *new_obj = ht_lookup_table(filter, key, keylen); + + if (!new_obj) + continue; + + key = pdf_string_value(new_obj); + keylen = pdf_string_length(new_obj); + } value = ht_iter_getval(&iter); - if (value->reserve) { - WARN("Named object \"%s\" not defined!!!", + ASSERT(value->object); + if (PDF_OBJ_UNDEFINED(value->object)) { + WARN("Object @%s\" not defined. Replaced by null.", printable_key(key, keylen)); - WARN("Replacing with null."); objects[count].key = (char *) key; objects[count].keylen = keylen; objects[count].value = pdf_new_null(); - } else if (value->object_ref) { - objects[count].key = (char *) key; - objects[count].keylen = keylen; - objects[count].value = pdf_link_obj(value->object_ref); } else if (value->object) { objects[count].key = (char *) key; objects[count].keylen = keylen; objects[count].value = pdf_link_obj(value->object); - } else { - WARN("Named object \"%s\" not defined!!!", - printable_key(key, keylen)); - WARN("Replacing with null."); - objects[count].key = (char *) key; - objects[count].keylen = keylen; - objects[count].value = pdf_new_null(); } count++; diff --git a/Build/source/texk/dvipdfmx/src/pdfnames.h b/Build/source/texk/dvipdfmx/src/pdfnames.h index e02e0eb29f9..4eaaffbb3f1 100644 --- a/Build/source/texk/dvipdfmx/src/pdfnames.h +++ b/Build/source/texk/dvipdfmx/src/pdfnames.h @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfnames.h,v 1.2 2008/11/03 22:49:29 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfnames.h,v 1.3 2009/04/26 21:23:29 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -35,8 +35,6 @@ extern void pdf_delete_name_tree (struct ht_table **names); extern int pdf_names_add_object (struct ht_table *names, const void *key, int keylen, pdf_obj *object); -extern int pdf_names_add_reference (struct ht_table *names, - const void *key, int keylen, pdf_obj *object_ref); extern pdf_obj *pdf_names_lookup_reference (struct ht_table *names, const void *key, int keylen); extern pdf_obj *pdf_names_lookup_object (struct ht_table *names, diff --git a/Build/source/texk/dvipdfmx/src/pdfobj.c b/Build/source/texk/dvipdfmx/src/pdfobj.c index e25d481f7c5..86b6c698abb 100644 --- a/Build/source/texk/dvipdfmx/src/pdfobj.c +++ b/Build/source/texk/dvipdfmx/src/pdfobj.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfobj.c,v 1.63 2008/11/30 21:12:27 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfobj.c,v 1.70 2009/05/06 06:07:09 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -161,6 +161,7 @@ struct pdf_file FILE *file; pdf_obj *trailer; xref_entry *xref_table; + pdf_obj *catalog; long num_obj; long file_size; int version; @@ -179,6 +180,8 @@ static pdf_obj *xref_stream; /* Internal static routines */ +static int check_for_pdf_version (FILE *file); + static void pdf_flush_obj (pdf_obj *object, FILE *file); static void pdf_label_obj (pdf_obj *object); static void pdf_write_obj (pdf_obj *object, FILE *file); @@ -240,13 +243,13 @@ pdf_set_compression (int level) return; } -static unsigned pdf_version = 4; +static unsigned pdf_version = PDF_VERSION_DEFAULT; void pdf_set_version (unsigned version) { /* Don't forget to update CIDFont_stdcc_def[] in cid.c too! */ - if (version >= 3 && version <= 6) { + if (version >= PDF_VERSION_MIN && version <= PDF_VERSION_MAX) { pdf_version = version; } } @@ -581,16 +584,13 @@ void pdf_out_white (FILE *file) ERROR("typecheck: Invalid object type: %d %d (line %d)", (o) ? (o)->type : -1, (t), __LINE__);\ } -#define INVALIDOBJ(o) ((o) == NULL || (o)->type <= 0 || (o)->type > PDF_INDIRECT) +#define INVALIDOBJ(o) ((o) == NULL || (o)->type <= 0 || (o)->type > PDF_UNDEFINED) static pdf_obj * pdf_new_obj(int type) { pdf_obj *result; - if (type > PDF_INDIRECT || type < PDF_UNDEFINED) - ERROR("Invalid object type: %d", type); - result = NEW(1, pdf_obj); result->type = type; result->data = NULL; @@ -599,6 +599,9 @@ pdf_new_obj(int type) result->refcount = 1; result->flags = 0; + if (INVALIDOBJ(result)) + ERROR("Invalid object type: %d", type); + return result; } @@ -696,6 +699,20 @@ write_indirect (pdf_indirect *indirect, FILE *file) pdf_out(file, format_buffer, length); } +/* The undefined object is used as a placeholder in pdfnames.c + * for objects which are referenced before they are defined. + */ +pdf_obj * +pdf_new_undefined (void) +{ + pdf_obj *result; + + result = pdf_new_obj(PDF_UNDEFINED); + result->data = NULL; + + return result; +} + pdf_obj * pdf_new_null (void) { @@ -834,19 +851,17 @@ pdf_new_string (const void *str, unsigned length) pdf_obj *result; pdf_string *data; + ASSERT(str); + result = pdf_new_obj(PDF_STRING); data = NEW(1, pdf_string); result->data = data; - if (length != 0) { - data->length = length; - data->string = NEW(length+1, unsigned char); - memcpy(data->string, str, length); - /* Shouldn't assume NULL terminated. */ - data->string[length] = '\0'; - } else { - data->length = 0; - data->string = NULL; - } + + data->length = length; + data->string = NEW(length+1, unsigned char); + memcpy(data->string, str, length); + /* Shouldn't assume NULL terminated. */ + data->string[length] = '\0'; return result; } @@ -1327,14 +1342,20 @@ pdf_pop_array (pdf_obj *array) static void write_dict (pdf_dict *dict, FILE *file) { +#if 0 pdf_out (file, "<<\n", 3); /* dropping \n saves few kb. */ +#else + pdf_out (file, "<<", 2); +#endif while (dict->key != NULL) { pdf_write_obj(dict->key, file); if (pdf_need_white(PDF_NAME, (dict->value)->type)) { pdf_out_white(file); } pdf_write_obj(dict->value, file); +#if 0 pdf_out_char (file, '\n'); /* removing this saves few kb. */ +#endif dict = dict->next; } pdf_out(file, ">>", 2); @@ -1925,7 +1946,7 @@ pdf_write_obj (pdf_obj *object, FILE *file) return; } - if (INVALIDOBJ(object)) + if (INVALIDOBJ(object) || PDF_OBJ_UNDEFINED(object)) ERROR("pdf_write_obj: Invalid object, type = %d\n", object->type); if (file == stderr) @@ -2735,7 +2756,6 @@ parse_xref_stream (pdf_file *pf, long xref_pos, pdf_obj **trailer) return 0; } -/* TODO: parse Version entry */ static pdf_obj * read_xref (pdf_file *pf) { @@ -2820,6 +2840,7 @@ pdf_file_new (FILE *file) pf->file = file; pf->trailer = NULL; pf->xref_table = NULL; + pf->catalog = NULL; pf->num_obj = 0; pf->version = 0; @@ -2845,8 +2866,15 @@ pdf_file_free (pdf_file *pf) pdf_release_obj(pf->xref_table[i].indirect); } - RELEASE(pf->xref_table); - pdf_release_obj(pf->trailer); + RELEASE(pf->xref_table); + if (pf->trailer) { + pdf_release_obj(pf->trailer); + pf->trailer = NULL; + } + if (pf->catalog) { + pdf_release_obj(pf->catalog); + pf->catalog = NULL; + } RELEASE(pf); } @@ -2858,15 +2886,31 @@ pdf_files_init (void) ht_init_table(pdf_files); } +int +pdf_file_get_version (pdf_file *pf) +{ + ASSERT(pf); + return pf->version; +} + +#if 0 pdf_obj * pdf_file_get_trailer (pdf_file *pf) { ASSERT(pf); - return pdf_link_obj(pf->trailer); + return pf->trailer; +} +#endif + +pdf_obj * +pdf_file_get_catalog (pdf_file *pf) +{ + ASSERT(pf); + return pf->catalog; } pdf_file * -pdf_open (char *ident, FILE *file) +pdf_open (const char *ident, FILE *file) { pdf_file *pf; @@ -2877,24 +2921,57 @@ pdf_open (char *ident, FILE *file) if (pf) { pf->file = file; } else { - int version = check_for_pdf(file); - if (!version) { - WARN("pdf_open: Not a PDF 1.[1-5] file."); + int version; + pdf_obj *new_version; + + version = check_for_pdf_version(file); + if (version < 0) { + WARN("Not a PDF file."); return NULL; } pf = pdf_file_new(file); pf->version = version; - if (!(pf->trailer = read_xref(pf))) { - pdf_file_free(pf); - return NULL; + if (!(pf->trailer = read_xref(pf))) + goto error; + + if (pdf_lookup_dict(pf->trailer, "Encrypt")) { + WARN("PDF document is encrypted."); + goto error; + } + + pf->catalog = pdf_deref_obj(pdf_lookup_dict(pf->trailer, "Root")); + if (!PDF_OBJ_DICTTYPE(pf->catalog)) { + WARN("Cannot read PDF document catalog. Broken PDF file?"); + goto error; + } + + new_version = pdf_deref_obj(pdf_lookup_dict(pf->catalog, "Version")); + if (new_version) { + unsigned char minor; + + if (!PDF_OBJ_NAMETYPE(new_version) || + sscanf(pdf_name_value(new_version), "1.%hhu", &minor) != 1) { + pdf_release_obj(new_version); + WARN("Illegal Version entry in document catalog. Broken PDF file?"); + goto error; + } + + if (pf->version < minor) + pf->version = minor; + + pdf_release_obj(new_version); } ht_append_table(pdf_files, ident, strlen(ident), pf); } return pf; + + error: + pdf_file_free(pf); + return NULL; } void @@ -2912,24 +2989,21 @@ pdf_files_close (void) RELEASE(pdf_files); } -int -check_for_pdf (FILE *file) +static int +check_for_pdf_version (FILE *file) { - int result = 0; + unsigned char minor; rewind(file); - if (fread(work_buffer, sizeof(char), strlen("%PDF-1.x"), file) == - strlen("%PDF-1.x") && - !strncmp(work_buffer, "%PDF-1.", strlen("%PDF-1."))) { - if (work_buffer[7] >= '0' && work_buffer[7] <= '0' + pdf_version) - result = 1; - else { - WARN("Version of PDF file (1.%c) is newer than version limit specification.", - work_buffer[7]); - } - } - return result; + return (ungetc(fgetc(file), file) == '%' && + fscanf(file, "%%PDF-1.%hhu", &minor) == 1) ? minor : -1; +} + +int +check_for_pdf (FILE *file) +{ + return (check_for_pdf_version(file) >= 0); } static int CDECL diff --git a/Build/source/texk/dvipdfmx/src/pdfobj.h b/Build/source/texk/dvipdfmx/src/pdfobj.h index a80e9a22147..a50220bfcd8 100644 --- a/Build/source/texk/dvipdfmx/src/pdfobj.h +++ b/Build/source/texk/dvipdfmx/src/pdfobj.h @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfobj.h,v 1.31 2008/11/30 21:12:27 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfobj.h,v 1.34 2009/05/03 00:13:04 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -38,9 +38,9 @@ #define PDF_STREAM 7 #define PDF_NULL 8 #define PDF_INDIRECT 9 +#define PDF_UNDEFINED 10 #define PDF_OBJ_INVALID 0 -#define PDF_UNDEFINED PDF_OBJ_INVALID #define STREAM_COMPRESS (1 << 0) @@ -73,6 +73,7 @@ extern int pdf_obj_typeof (pdf_obj *object); #define PDF_OBJ_DICTTYPE(o) ((o) && pdf_obj_typeof((o)) == PDF_DICT) #define PDF_OBJ_STREAMTYPE(o) ((o) && pdf_obj_typeof((o)) == PDF_STREAM) #define PDF_OBJ_INDIRECTTYPE(o) ((o) && pdf_obj_typeof((o)) == PDF_INDIRECT) +#define PDF_OBJ_UNDEFINED(o) ((o) && pdf_obj_typeof((o)) == PDF_UNDEFINED) #define PDF_OBJ_TYPEOF(o) pdf_obj_typeof((o)) @@ -81,6 +82,8 @@ extern pdf_obj *pdf_ref_obj (pdf_obj *object); extern pdf_obj *pdf_link_obj (pdf_obj *object); extern void pdf_transfer_label (pdf_obj *dst, pdf_obj *src); +extern pdf_obj *pdf_new_undefined (void); + extern pdf_obj *pdf_new_null (void); extern pdf_obj *pdf_new_boolean (char value); @@ -188,9 +191,13 @@ extern void pdf_set_encrypt (pdf_obj *encrypt, pdf_obj *id); extern void pdf_files_init (void); extern void pdf_files_close (void); extern int check_for_pdf (FILE *file); -extern pdf_file *pdf_open (char *ident, FILE *file); +extern pdf_file *pdf_open (const char *ident, FILE *file); extern void pdf_close (pdf_file *pf); +#if 0 extern pdf_obj *pdf_file_get_trailer (pdf_file *pf); +#endif +extern int pdf_file_get_version (pdf_file *pf); +extern pdf_obj *pdf_file_get_catalog (pdf_file *pf); extern pdf_obj *pdf_deref_obj (pdf_obj *object); extern pdf_obj *pdf_import_object (pdf_obj *object); diff --git a/Build/source/texk/dvipdfmx/src/pdfparse.c b/Build/source/texk/dvipdfmx/src/pdfparse.c index 111114ec362..7709e7fced7 100644 --- a/Build/source/texk/dvipdfmx/src/pdfparse.c +++ b/Build/source/texk/dvipdfmx/src/pdfparse.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfparse.c,v 1.43 2008/06/07 09:54:38 chofchof Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfparse.c,v 1.44 2009/04/29 11:20:21 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -503,10 +503,18 @@ parse_pdf_literal_string (char **pp, char *endptr) p++; - /* - * Accroding to the PDF spec., an end-of-line marker, not preceded - * by a backslash, must be converted to single \n. - */ + /* The carriage return (CR, 0x0d) and line feed (LF, 0x0a) characters, + * also called newline characters, are treated as end-of-line (EOL) + * markers. The combination of a carriage return followed immediately + * by a line feed is treated as one EOL marker. + * [PDF Reference, 6th ed., version 1.7, p. 50] */ + + /* If an end-of-line marker appears within a literal string + * without a preceding backslash, the result is equivalent to + * \n (regardless of whether the end-of-line marker was + * a carriage return, a line feed, or both). + * [PDF Reference, 6th ed., version 1.7, p. 55] */ + while (p < endptr) { ch = p[0]; @@ -666,7 +674,7 @@ parse_pdf_tainted_dict (char **pp, char *endptr) } #else /* PDF_PARSE_STRICT */ pdf_obj * -parse_pdf_tainted_dict (char **pp, char *endptr, int level) +parse_pdf_tainted_dict (char **pp, char *endptr) { return parse_pdf_dict(pp, endptr, NULL); } @@ -788,26 +796,19 @@ parse_pdf_stream (char **pp, char *endptr, pdf_obj *dict, pdf_file *pf) } p += 6; - /* Carrige return alone is not allowed after keyword "stream". - * See, PDF Reference, 4th ed., version 1.5, p. 36. - */ + /* The keyword stream that follows the stream dictionary + * should be followed by an end-of-line marker consisting of + * either a carriage return (0x0D;\r) and a line feed (0x0A;\n) + * or just a line feed, and not by a carriage return alone. + * [PDF Reference, 6th ed., version 1.7, pp. 60-61] */ + + /* Notice that TeX translates an end-of-line marker to a single space. */ if (p < endptr && p[0] == '\n') { p++; } else if (p + 1 < endptr && (p[0] == '\r' && p[1] == '\n')) { p += 2; } -#ifndef PDF_PARSE_STRICT - else { - /* TeX translate end-of-line marker to a single space. */ - if (parser_state.tainted) { - if (p < endptr && p[0] == ' ') { - p++; - } - } - } - /* The end-of-line marker not mandatory? */ -#endif /* !PDF_PARSE_STRICT */ /* Stream length */ { @@ -824,31 +825,6 @@ parse_pdf_stream (char **pp, char *endptr, pdf_obj *dict, pdf_file *pf) } pdf_release_obj(tmp2); } -#ifndef PDF_PARSE_STRICT - else if (p + 9 <= endptr) - { - /* - * This was added to allow TeX users to write PDF stream object - * directly in their TeX source. This violates PDF spec. - */ - char *q; - - stream_length = -1; - for (q = endptr - 1; q >= p + 8; q--) { - if (q[0] != 'm') - continue; - else { - if (!memcmp(q - 8, "endstrea", 8)) { - /* The end-of-line marker is not skipped here. There are - * no way to decide if it is a part of the stream or not. - */ - stream_length = ((long) (q - p)) - 8; - break; - } - } - } - } -#endif /* !PDF_PARSE_STRICT */ else { return NULL; } @@ -882,24 +858,14 @@ parse_pdf_stream (char **pp, char *endptr, pdf_obj *dict, pdf_file *pf) /* Check "endsteam" */ { - /* - * It is an error if the stream contained too much data except there - * may be an extra end-of-line marker before the keyword "endstream". - */ -#ifdef PDF_PARSE_STRICT + /* It is recommended that there be an end-of-line marker + * after the data and before endstream; this marker is not included + * in the stream length. + * [PDF Reference, 6th ed., version 1.7, pp. 61] */ if (p < endptr && p[0] == '\r') p++; if (p < endptr && p[0] == '\n') p++; -#else /* !PDF_PARSE_STRICT */ - /* - * This may skip data starting with '%' and terminated by a - * '\r' or '\n' or '\r\n'. The PDF syntax rule should not be - * applied to the content of the stream data. - * TeX may have converted end-of-line to single white space. - */ - skip_white(&p, endptr); -#endif /* !PDF_PARSE_STRICT */ if (p + 9 > endptr || memcmp(p, "endstream", 9)) { diff --git a/Build/source/texk/dvipdfmx/src/pdfximage.c b/Build/source/texk/dvipdfmx/src/pdfximage.c index d33b9629b51..b51541c8e67 100644 --- a/Build/source/texk/dvipdfmx/src/pdfximage.c +++ b/Build/source/texk/dvipdfmx/src/pdfximage.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfximage.c,v 1.21 2008/05/29 13:43:51 chofchof Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfximage.c,v 1.23 2009/05/03 00:13:04 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -261,8 +261,14 @@ load_image (const char *ident, const char *fullname, int format, FILE *fp, case IMAGE_TYPE_PDF: if (_opts.verbose) MESG("[PDF]"); - if (pdf_include_page(I, fp) < 0) - goto error; + { + int result = pdf_include_page(I, fp, ident); + if (result > 0) + /* PDF version too recent */ + result = ps_include_page(I, fullname); + if (result < 0) + goto error; + } if (_opts.verbose) MESG(",Page:%ld", I->page_no); I->subtype = PDF_XOBJECT_TYPE_FORM; @@ -443,12 +449,6 @@ pdf_ximage_init_image_info (ximage_info *info) info->xdensity = info->ydensity = 1.0; } -char * -pdf_ximage_get_ident (pdf_ximage *I) -{ - return I->ident; -} - void pdf_ximage_set_image (pdf_ximage *I, void *image_info, pdf_obj *resource) { @@ -827,7 +827,8 @@ ps_include_page (pdf_ximage *ximage, const char *filename) MESG("pdf_image>> ..."); } - error = dpx_file_apply_filter(distiller_template, filename, temp); + error = dpx_file_apply_filter(distiller_template, filename, temp, + (unsigned char) pdf_get_version()); if (error) { WARN("Image format conversion for \"%s\" failed...", filename); dpx_delete_temp_file(temp); @@ -840,7 +841,7 @@ ps_include_page (pdf_ximage *ximage, const char *filename) dpx_delete_temp_file(temp); return -1; } - error = pdf_include_page(ximage, fp); + error = pdf_include_page(ximage, fp, temp); MFCLOSE(fp); if (_opts.verbose > 1) { diff --git a/Build/source/texk/dvipdfmx/src/pdfximage.h b/Build/source/texk/dvipdfmx/src/pdfximage.h index dc74d373af7..34d4ef2518a 100644 --- a/Build/source/texk/dvipdfmx/src/pdfximage.h +++ b/Build/source/texk/dvipdfmx/src/pdfximage.h @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pdfximage.h,v 1.13 2008/05/29 13:43:51 chofchof Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfximage.h,v 1.14 2009/05/03 00:13:04 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -70,7 +70,6 @@ extern int pdf_ximage_defineresource (const char *ident, int subtype, /* Called by pngimage, jpegimage, epdf, mpost, etc. */ extern void pdf_ximage_init_image_info (ximage_info *info); extern void pdf_ximage_init_form_info (xform_info *info); -extern char *pdf_ximage_get_ident (pdf_ximage *ximage); extern void pdf_ximage_set_image (pdf_ximage *ximage, void *info, pdf_obj *resource); extern void pdf_ximage_set_form (pdf_ximage *ximage, void *info, pdf_obj *resource); extern void pdf_ximage_set_page (pdf_ximage *ximage, long page_no, long page_count); diff --git a/Build/source/texk/dvipdfmx/src/pngimage.c b/Build/source/texk/dvipdfmx/src/pngimage.c index f7eb4ba3513..6d4953650cd 100644 --- a/Build/source/texk/dvipdfmx/src/pngimage.c +++ b/Build/source/texk/dvipdfmx/src/pngimage.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pngimage.c,v 1.25 2007/05/18 05:19:01 chofchof Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pngimage.c,v 1.26 2009/03/24 02:07:48 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -206,9 +206,6 @@ png_include_image (pdf_ximage *ximage, FILE *png_file) png_read_update_info(png_ptr, png_info_ptr); rowbytes = png_get_rowbytes(png_ptr, png_info_ptr); - stream = pdf_new_stream (STREAM_COMPRESS); - stream_dict = pdf_stream_dict(stream); - /* Values listed below will not be modified in the remaining process. */ info.width = width; info.height = height; @@ -218,6 +215,9 @@ png_include_image (pdf_ximage *ximage, FILE *png_file) if (yppm > 0) info.ydensity = 72.0 / 0.0254 / yppm; + stream = pdf_new_stream (STREAM_COMPRESS); + stream_dict = pdf_stream_dict(stream); + stream_data_ptr = (png_bytep) NEW(rowbytes*height, png_byte); read_image_data(png_ptr, png_info_ptr, stream_data_ptr, height, rowbytes); @@ -1006,4 +1006,46 @@ read_image_data (png_structp png_ptr, png_infop info_ptr, /* info_ptr unused */ RELEASE(rows_p); } +int +png_get_bbox (FILE *png_file, long *width, long *height, + double *xdensity, double *ydensity) +{ + png_structp png_ptr; + png_infop png_info_ptr; + png_uint_32 xppm, yppm; + + rewind (png_file); + png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + if (png_ptr == NULL || + (png_info_ptr = png_create_info_struct (png_ptr)) == NULL) { + WARN("%s: Creating Libpng read/info struct failed.", PNG_DEBUG_STR); + if (png_ptr) + png_destroy_read_struct(&png_ptr, NULL, NULL); + return -1; + } + + /* Inititializing file IO. */ + png_init_io (png_ptr, png_file); + + /* Read PNG info-header and get some info. */ + png_read_info(png_ptr, png_info_ptr); + *width = png_get_image_width (png_ptr, png_info_ptr); + *height = png_get_image_height(png_ptr, png_info_ptr); + xppm = png_get_x_pixels_per_meter(png_ptr, png_info_ptr); + yppm = png_get_y_pixels_per_meter(png_ptr, png_info_ptr); + + /* Cleanup */ + if (png_info_ptr) + png_destroy_info_struct(png_ptr, &png_info_ptr); + if (png_ptr) + png_destroy_read_struct(&png_ptr, NULL, NULL); + + if (xppm > 0) + *xdensity = 72.0 / 0.0254 / xppm; + if (yppm > 0) + *ydensity = 72.0 / 0.0254 / yppm; + + return 0; +} + #endif /* HAVE_LIBPNG */ diff --git a/Build/source/texk/dvipdfmx/src/pngimage.h b/Build/source/texk/dvipdfmx/src/pngimage.h index fe9c4a7e1e8..4bb33726ab5 100644 --- a/Build/source/texk/dvipdfmx/src/pngimage.h +++ b/Build/source/texk/dvipdfmx/src/pngimage.h @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/pngimage.h,v 1.4 2004/03/11 11:50:25 hirata Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/pngimage.h,v 1.5 2009/03/24 02:07:48 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -37,6 +37,8 @@ extern int png_include_image (pdf_ximage *ximage, FILE *file); extern int check_for_png (FILE *file); +extern int png_get_bbox (FILE *fp, long *width, long *height, + double *xdensity, double *ydensity); #endif diff --git a/Build/source/texk/dvipdfmx/src/spc_color.c b/Build/source/texk/dvipdfmx/src/spc_color.c index dbbe5254999..c1b730b6059 100644 --- a/Build/source/texk/dvipdfmx/src/spc_color.c +++ b/Build/source/texk/dvipdfmx/src/spc_color.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/spc_color.c,v 1.8 2008/12/11 16:03:05 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/spc_color.c,v 1.9 2009/04/29 11:22:19 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -53,7 +53,7 @@ spc_handler_color_push (struct spc_env *spe, struct spc_arg *args) int error; pdf_color colorspec; - error = spc_util_read_colorspec(spe, &colorspec, args, 1); + error = spc_util_read_colorspec(spe, &colorspec, args); if (!error) { pdf_color_push(&colorspec, &colorspec); } @@ -78,7 +78,7 @@ spc_handler_color_default (struct spc_env *spe, struct spc_arg *args) int error; pdf_color colorspec; - error = spc_util_read_colorspec(spe, &colorspec, args, 1); + error = spc_util_read_colorspec(spe, &colorspec, args); if (!error) { pdf_color_clear_stack(); pdf_color_set(&colorspec, &colorspec); @@ -97,7 +97,7 @@ spc_handler_background (struct spc_env *spe, struct spc_arg *args) int error; pdf_color colorspec; - error = spc_util_read_colorspec(spe, &colorspec, args, 1); + error = spc_util_read_colorspec(spe, &colorspec, args); if (!error) pdf_doc_set_bgcolor(&colorspec); diff --git a/Build/source/texk/dvipdfmx/src/spc_html.c b/Build/source/texk/dvipdfmx/src/spc_html.c index 276f8b1c947..35fbdbbdbb9 100644 --- a/Build/source/texk/dvipdfmx/src/spc_html.c +++ b/Build/source/texk/dvipdfmx/src/spc_html.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/spc_html.c,v 1.9 2008/11/30 21:31:24 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/spc_html.c,v 1.10 2009/03/16 22:26:40 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -662,9 +662,9 @@ spc_html__img_empty (struct spc_env *spe, pdf_obj *attr, struct spc_html_ *sd) res_name, pdf_ref_obj(dict)); pdf_release_obj(dict); } - pdf_doc_add_page_content(" /", 2); - pdf_doc_add_page_content(res_name, strlen(res_name)); - pdf_doc_add_page_content(" gs", 3); + pdf_doc_add_page_content(" /", 2); /* op: */ + pdf_doc_add_page_content(res_name, strlen(res_name)); /* op: */ + pdf_doc_add_page_content(" gs", 3); /* op: gs */ RELEASE(res_name); } } @@ -677,9 +677,9 @@ spc_html__img_empty (struct spc_env *spe, pdf_obj *attr, struct spc_html_ *sd) pdf_dev_rectclip(r.llx, r.lly, r.urx - r.llx, r.ury - r.lly); res_name = pdf_ximage_get_resname(id); - pdf_doc_add_page_content(" /", 2); - pdf_doc_add_page_content(res_name, strlen(res_name)); - pdf_doc_add_page_content(" Do", 3); + pdf_doc_add_page_content(" /", 2); /* op: */ + pdf_doc_add_page_content(res_name, strlen(res_name)); /* op: */ + pdf_doc_add_page_content(" Do", 3); /* op: Do */ pdf_dev_grestore(); diff --git a/Build/source/texk/dvipdfmx/src/spc_pdfm.c b/Build/source/texk/dvipdfmx/src/spc_pdfm.c index e756420c404..beed3752125 100644 --- a/Build/source/texk/dvipdfmx/src/spc_pdfm.c +++ b/Build/source/texk/dvipdfmx/src/spc_pdfm.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/spc_pdfm.c,v 1.45 2008/12/11 16:03:05 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/spc_pdfm.c,v 1.48 2009/04/29 11:22:19 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -572,7 +572,7 @@ spc_handler_pdfm_annot (struct spc_env *spe, struct spc_arg *args) if (ident) spc_push_object(ident, pdf_link_obj(annot_dict)); /* This add reference. */ - pdf_doc_add_annot(pdf_doc_current_page_number(), &rect, annot_dict); + pdf_doc_add_annot(pdf_doc_current_page_number(), &rect, annot_dict, 1); if (ident) { spc_flush_object(ident); @@ -643,11 +643,13 @@ spc_handler_pdfm_bcolor (struct spc_env *spe, struct spc_arg *ap) { int error; pdf_color fc, sc; + pdf_color *pfc, *psc; - error = spc_util_read_colorspec(spe, &fc, ap, 0); + pdf_color_get_current(&psc, &pfc); + error = spc_util_read_pdfcolor(spe, &fc, ap, pfc); if (!error) { if (ap->curptr < ap->endptr) { - error = spc_util_read_colorspec(spe, &sc, ap, 0); + error = spc_util_read_pdfcolor(spe, &sc, ap, psc); } else { pdf_color_copycolor(&sc, &fc); } @@ -671,11 +673,13 @@ spc_handler_pdfm_scolor (struct spc_env *spe, struct spc_arg *ap) { int error; pdf_color fc, sc; + pdf_color *pfc, *psc; - error = spc_util_read_colorspec(spe, &fc, ap, 0); + pdf_color_get_current(&psc, &pfc); + error = spc_util_read_pdfcolor(spe, &fc, ap, pfc); if (!error) { if (ap->curptr < ap->endptr) { - error = spc_util_read_colorspec(spe, &sc, ap, 0); + error = spc_util_read_pdfcolor(spe, &sc, ap, psc); } else { pdf_color_copycolor(&sc, &fc); } @@ -1252,10 +1256,10 @@ spc_handler_pdfm_content (struct spc_env *spe, struct spc_arg *args) work_buffer[len++] = 'm'; work_buffer[len++] = ' '; - pdf_doc_add_page_content(work_buffer, len); + pdf_doc_add_page_content(work_buffer, len); /* op: q cm */ len = (long) (args->endptr - args->curptr); - pdf_doc_add_page_content(args->curptr, len); - pdf_doc_add_page_content(" Q", 2); + pdf_doc_add_page_content(args->curptr, len); /* op: ANY */ + pdf_doc_add_page_content(" Q", 2); /* op: Q */ } args->curptr = args->endptr; @@ -1290,8 +1294,8 @@ spc_handler_pdfm_literal (struct spc_env *spe, struct spc_arg *args) M.e = spe->x_user; M.f = spe->y_user; pdf_dev_concat(&M); } - pdf_doc_add_page_content(" ", 1); - pdf_doc_add_page_content(args->curptr, (long) (args->endptr - args->curptr)); + pdf_doc_add_page_content(" ", 1); /* op: */ + pdf_doc_add_page_content(args->curptr, (long) (args->endptr - args->curptr)); /* op: ANY */ if (!direct) { M.e = -spe->x_user; M.f = -spe->y_user; pdf_dev_concat(&M); @@ -1333,8 +1337,8 @@ spc_handler_pdfm_code (struct spc_env *spe, struct spc_arg *args) skip_white(&args->curptr, args->endptr); if (args->curptr < args->endptr) { - pdf_doc_add_page_content(" ", 1); - pdf_doc_add_page_content(args->curptr, (long) (args->endptr - args->curptr)); + pdf_doc_add_page_content(" ", 1); /* op: */ + pdf_doc_add_page_content(args->curptr, (long) (args->endptr - args->curptr)); /* op: ANY */ args->curptr = args->endptr; } @@ -1669,7 +1673,7 @@ spc_handler_pdfm_bgcolor (struct spc_env *spe, struct spc_arg *args) int error; pdf_color colorspec; - error = spc_util_read_colorspec(spe, &colorspec, args, 0); + error = spc_util_read_pdfcolor(spe, &colorspec, args, NULL); if (error) spc_warn(spe, "No valid color specified?"); else { diff --git a/Build/source/texk/dvipdfmx/src/spc_tpic.c b/Build/source/texk/dvipdfmx/src/spc_tpic.c index 2fab3d83839..100ead5eadf 100644 --- a/Build/source/texk/dvipdfmx/src/spc_tpic.c +++ b/Build/source/texk/dvipdfmx/src/spc_tpic.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/spc_tpic.c,v 1.5 2008/11/30 21:39:19 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/spc_tpic.c,v 1.6 2009/03/16 22:26:40 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -193,7 +193,7 @@ set_fillstyle (double g, double a, int f_ais) } len += sprintf(buf + len, " /%s gs", resname); - pdf_doc_add_page_content(buf, len); + pdf_doc_add_page_content(buf, len); /* op: gs */ } { diff --git a/Build/source/texk/dvipdfmx/src/spc_util.c b/Build/source/texk/dvipdfmx/src/spc_util.c index bd1fe8d906f..d3db0e4cf25 100644 --- a/Build/source/texk/dvipdfmx/src/spc_util.c +++ b/Build/source/texk/dvipdfmx/src/spc_util.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/spc_util.c,v 1.14 2008/06/01 01:38:32 chofchof Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/spc_util.c,v 1.16 2009/04/29 11:30:51 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -204,18 +204,18 @@ spc_read_color_pdf (struct spc_env *spe, pdf_color *colorspec, struct spc_arg *a default: /* Try to read the color names defined in dvipsname.def */ q = parse_c_ident(&ap->curptr, ap->endptr); - if (!q) { - spc_warn(spe, "No valid color specified?"); - return -1; + if (q) { + error = pdf_color_namedcolor(colorspec, q); + if (error) + spc_warn(spe, "Unrecognized color name: %s, keep the current color", q); + RELEASE(q); + } else { + error = -1; } - error = pdf_color_namedcolor(colorspec, q); - if (error) - spc_warn(spe, "Unrecognized color name: %s", q); - RELEASE(q); break; } - if (!error && isarry) { + if (isarry) { skip_blank(&ap->curptr, ap->endptr); if (ap->curptr >= ap->endptr || ap->curptr[0] != ']') { spc_warn(spe, "Unbalanced '[' and ']' in color specification."); @@ -231,26 +231,36 @@ spc_read_color_pdf (struct spc_env *spe, pdf_color *colorspec, struct spc_arg *a /* This is for reading *single* color specification. */ int -spc_util_read_colorspec (struct spc_env *spe, pdf_color *colorspec, struct spc_arg *ap, int syntax) +spc_util_read_colorspec (struct spc_env *spe, pdf_color *colorspec, struct spc_arg *ap) { - int error = 0; - ASSERT(colorspec && spe && ap); skip_blank(&ap->curptr, ap->endptr); if (ap->curptr >= ap->endptr) { return -1; } + return spc_read_color_color(spe, colorspec, ap); +} + +int +spc_util_read_pdfcolor (struct spc_env *spe, pdf_color *colorspec, struct spc_arg *ap, pdf_color *defaultcolor) +{ + int error = 0; - if (syntax) - error = spc_read_color_color(spe, colorspec, ap); - else - error = spc_read_color_pdf(spe, colorspec, ap); + ASSERT(colorspec && spe && ap); - return error; + skip_blank(&ap->curptr, ap->endptr); + if (ap->curptr >= ap->endptr) { + return -1; + } + error = spc_read_color_pdf(spe, colorspec, ap); + if (error < 0 && defaultcolor) { + pdf_color_copycolor(colorspec, defaultcolor); + error = 0; + } + return error; } - /* This need to allow 'true' prefix for unit and * length value must be divided by current magnification. */ @@ -481,9 +491,9 @@ spc_read_dimtrns_pdfm (struct spc_env *spe, transform_info *p, struct spc_arg *a #define K_TRN__XSCALE 4 #define K_TRN__YSCALE 5 #define K_TRN__ROTATE 6 - "scale", "xscale", "yscale", "rotate", + "scale", "xscale", "yscale", "rotate", /* See "Dvipdfmx User's Manual", p.5 */ #define K_TRN__BBOX 7 - "bbox", /* See "Dvipdfmx User's Manual", p.5 */ + "bbox", #define K_TRN__MATRIX 8 "matrix", #undef K__CLIP diff --git a/Build/source/texk/dvipdfmx/src/spc_util.h b/Build/source/texk/dvipdfmx/src/spc_util.h index 0dd2c938ea1..e27c369415f 100644 --- a/Build/source/texk/dvipdfmx/src/spc_util.h +++ b/Build/source/texk/dvipdfmx/src/spc_util.h @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/spc_util.h,v 1.5 2008/02/13 20:22:21 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/spc_util.h,v 1.6 2009/04/29 11:22:19 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -35,7 +35,8 @@ * * This is for reading *single* color specification. */ -extern int spc_util_read_colorspec (struct spc_env *spe, pdf_color *colorspec, struct spc_arg *args, int syntax); +extern int spc_util_read_colorspec (struct spc_env *spe, pdf_color *colorspec, struct spc_arg *args); +extern int spc_util_read_pdfcolor (struct spc_env *spe, pdf_color *colorspec, struct spc_arg *args, pdf_color *defaultcolor); extern int spc_util_read_dimtrns (struct spc_env *spe, transform_info *dimtrns, struct spc_arg *args, long *page, int syntax); extern int spc_util_read_length (struct spc_env *spe, double *length, struct spc_arg *ap); diff --git a/Build/source/texk/dvipdfmx/src/specials.c b/Build/source/texk/dvipdfmx/src/specials.c index 9ef4bd2670b..3c04720b451 100644 --- a/Build/source/texk/dvipdfmx/src/specials.c +++ b/Build/source/texk/dvipdfmx/src/specials.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/specials.c,v 1.12 2009/01/15 21:04:38 chofchof Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/specials.c,v 1.13 2009/04/26 21:23:29 matthias Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -283,31 +283,12 @@ spc_lookup_object (const char *key) void spc_push_object (const char *key, pdf_obj *value) { - int error = 0; + ASSERT(named_objects); if (!key || !value) return; - if (PDF_OBJ_INDIRECTTYPE(value)) { - pdf_names_add_reference(named_objects, - key, strlen(key), value); - } else { - error = pdf_names_add_object(named_objects, - key, strlen(key), value); - if (!error) { - /* _FIXME_: - * Objects created by pdf:obj must always - * be written to output regardless of if - * they are actually used in document. - */ - pdf_obj *obj_ref = pdf_names_lookup_reference(named_objects, - key, strlen(key)); - if (obj_ref) - pdf_release_obj(obj_ref); - } - } - - return; + pdf_names_add_object(named_objects, key, strlen(key), value); } void diff --git a/Build/source/texk/dvipdfmx/src/t1_load.c b/Build/source/texk/dvipdfmx/src/t1_load.c index 9efbb20c149..d58428cf616 100644 --- a/Build/source/texk/dvipdfmx/src/t1_load.c +++ b/Build/source/texk/dvipdfmx/src/t1_load.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/t1_load.c,v 1.12 2008/10/13 19:42:48 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/t1_load.c,v 1.13 2009/04/08 03:10:58 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -566,18 +566,24 @@ parse_subrs (cff_font *font, } if (mode != 1) { - subrs = font->subrs[0] = cff_new_index(count); - subrs->data = NEW(offset, card8); - offset = 0; - for (i = 0; i < count; i++) { - subrs->offset[i] = offset + 1; - if (lengths[i] > 0) { - memcpy(subrs->data + offset, data + offsets[i], lengths[i]); - offset += lengths[i]; + if (font->subrs[0] == NULL) { + subrs = font->subrs[0] = cff_new_index(count); + subrs->data = NEW(offset, card8); + offset = 0; + for (i = 0; i < count; i++) { + subrs->offset[i] = offset + 1; + if (lengths[i] > 0) { + memcpy(subrs->data + offset, data + offsets[i], lengths[i]); + offset += lengths[i]; + } } + subrs->offset[count] = offset + 1; + } else { + /* Adobe's OPO_____.PFB and OPBO____.PFB have two /Subrs dicts, + * and also have /CharStrings not followed by dicts. + * Simply ignores those data. By ChoF on 2009/04/08. */ + WARN("Already found /Subrs; ignores the other /Subrs dicts."); } - subrs->offset[count] = offset + 1; - RELEASE(data); RELEASE(offsets); RELEASE(lengths); @@ -605,8 +611,11 @@ parse_charstrings (cff_font *font, tok = pst_get_token(start, end); if (!PST_INTEGERTYPE(tok) || pst_getIV(tok) < 0 || pst_getIV(tok) > CFF_GLYPH_MAX) { + unsigned char *s = pst_getSV(tok); + WARN("Ignores non dict \"/CharStrings %s ...\"", s); + RELEASE(s); RELEASE_TOK(tok); - return -1; + return 0; } count = pst_getIV(tok); RELEASE_TOK(tok); diff --git a/Build/source/texk/dvipdfmx/src/tt_table.c b/Build/source/texk/dvipdfmx/src/tt_table.c index ce2e1f109c0..418c1e956ff 100644 --- a/Build/source/texk/dvipdfmx/src/tt_table.c +++ b/Build/source/texk/dvipdfmx/src/tt_table.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/tt_table.c,v 1.10 2008/11/30 21:12:27 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/tt_table.c,v 1.11 2009/05/02 12:16:32 chofchof Exp $ This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. @@ -188,7 +188,6 @@ tt_read_hhea_table (sfnt *sfont) ULONG len; struct tt_hhea_table *table = NULL; - len = sfnt_find_table_len(sfont, "hhea"); sfnt_locate_table(sfont, "hhea"); table = NEW(1, struct tt_hhea_table); @@ -210,6 +209,8 @@ tt_read_hhea_table (sfnt *sfont) if (table->metricDataFormat != 0) ERROR("unknown metricDaraFormat"); table->numOfLongHorMetrics = sfnt_get_ushort(sfont); + + len = sfnt_find_table_len(sfont, "hmtx"); table->numOfExSideBearings = (USHORT)((len - table->numOfLongHorMetrics * 4) / 2); return table; @@ -251,7 +252,6 @@ struct tt_vhea_table *tt_read_vhea_table (sfnt *sfont) ULONG len; struct tt_vhea_table *table = NULL; - len = sfnt_find_table_len(sfont, "vhea"); sfnt_locate_table(sfont, "vhea"); table = NEW(1, struct tt_vhea_table); @@ -271,6 +271,8 @@ struct tt_vhea_table *tt_read_vhea_table (sfnt *sfont) } table->metricDataFormat = sfnt_get_short(sfont); table->numOfLongVerMetrics = sfnt_get_ushort(sfont); + + len = sfnt_find_table_len(sfont, "vmtx"); table->numOfExSideBearings = (USHORT)((len - table->numOfLongVerMetrics * 4) / 2); return table; diff --git a/Build/source/texk/dvipdfmx/src/xbb.c b/Build/source/texk/dvipdfmx/src/xbb.c index 484322845d1..03db02e0bed 100644 --- a/Build/source/texk/dvipdfmx/src/xbb.c +++ b/Build/source/texk/dvipdfmx/src/xbb.c @@ -1,4 +1,4 @@ -/* $Header: /home/cvsroot/dvipdfmx/src/xbb.c,v 1.17 2008/12/11 16:09:29 matthias Exp $ +/* $Header: /home/cvsroot/dvipdfmx/src/xbb.c,v 1.25 2009/05/04 00:41:43 matthias Exp $ This is extractbb, a bounding box extraction program. @@ -21,11 +21,12 @@ #include <stdio.h> #include <time.h> #include <string.h> + +#include "numbers.h" #include "system.h" #include "mem.h" #include "error.h" #include "mfileio.h" -#include "numbers.h" #include "pdfobj.h" #include "pdfdev.h" #include "pdfdoc.h" @@ -33,29 +34,34 @@ #include "config.h" -#ifdef HAVE_LIBPNG -#include <png.h> -#endif +#include "jpegimage.h" +#include "pngimage.h" #include "xbb.h" #define XBB_PROGRAM "extractbb" -#define XBB_VERSION "Version 0.2" +#define XBB_VERSION VERSION + +static int really_quiet = 0; static void usage(void) { - fprintf (stderr, "%s, version %s, Copyright (C) 2008 by Jin-Hwan Cho\n", + if (really_quiet) + return; + + printf("%s, version %s, Copyright (C) 2008 by Jin-Hwan Cho\n", XBB_PROGRAM, XBB_VERSION); - fprintf (stderr, "A bounding box extraction utility from PDF, PNG, and JPG.\n"); - fprintf (stdout, "\nThis is free software; you can redistribute it and/or modify\n"); - fprintf (stdout, "it under the terms of the GNU General Public License as published by\n"); - fprintf (stdout, "the Free Software Foundation; either version 2 of the License, or\n"); - fprintf (stdout, "(at your option) any later version.\n"); - fprintf (stderr, "\nUsage: %s [-v] [-b] [-m|-x] [files]\n", XBB_PROGRAM); - fprintf (stderr, "\t-b\tWrite output file in binary mode\n"); - fprintf (stderr, "\t-m\tOutput .bb file used in DVIPDFM\n"); - fprintf (stderr, "\t-x\tOutput .xbb file used in DVIPDFMx (default)\n"); - fprintf (stderr, "\t-v\tVerbose\n"); + printf("A bounding box extraction utility from PDF, PNG, and JPEG.\n"); + printf("\nThis is free software; you can redistribute it and/or modify\n"); + printf("it under the terms of the GNU General Public License as published by\n"); + printf("the Free Software Foundation; either version 2 of the License, or\n"); + printf("(at your option) any later version.\n"); + printf("\nUsage: %s [-v|-q] [-O] [-m|-x] [files]\n", XBB_PROGRAM); + printf("\t-v\tBe verbose\n"); + printf("\t-q\tBe quiet\n"); + printf("\t-O\tWrite output to stdout\n"); + printf("\t-m\tOutput .bb file used in DVIPDFM\n"); + printf("\t-x\tOutput .xbb file used in DVIPDFMx (default)\n"); exit(1); } @@ -77,6 +83,8 @@ char *extensions[] = { static int xbb_output_mode = XBB_OUTPUT; +static int xbb_to_file = 1; + static char *make_xbb_filename(const char *name) { int i; @@ -88,7 +96,7 @@ static char *make_xbb_filename(const char *name) break; } if (i == sizeof(extensions) / sizeof(extensions[0])) { - fprintf(stderr, "Warning: %s: Filename does not end in a recognizable extension.\n", name); + WARN("%s: Filename does not end in a recognizable extension.\n", name); result = NEW(strlen(name)+5, char); /* 5 = ".xbb" + trailing 0 */ strcpy(result, name); } else { /* Remove extension */ @@ -100,210 +108,103 @@ static char *make_xbb_filename(const char *name) return result; } -static char *xbb_file_mode = FOPEN_W_MODE; - -static void write_xbb(char *fname, int bbllx, int bblly, int bburx, int bbury) +static void write_xbb(char *fname, + double bbllx_f, double bblly_f, + double bburx_f, double bbury_f, + int pdf_version, long pagecount) { - char *outname; + char *outname = NULL; FILE *fp; - outname = make_xbb_filename(fname); - if ((fp = MFOPEN(outname, xbb_file_mode)) == NULL) { - fprintf(stderr, "Unable to open output file: %s\n", outname); - RELEASE(outname); - return; + long bbllx = ROUND(bbllx_f, 1.0), bblly = ROUND(bblly_f, 1.0); + long bburx = ROUND(bburx_f, 1.0), bbury = ROUND(bbury_f, 1.0); + + if (xbb_to_file) { + outname = make_xbb_filename(fname); + if ((fp = MFOPEN(outname, FOPEN_W_MODE)) == NULL) { + ERROR("Unable to open output file: %s\n", outname); + } + } else { + fp = stdout; } + if (verbose) { - fprintf(stderr, "Writing to %s: ", outname); - fprintf(stderr, "Bounding box: %d %d %d %d\n", bbllx, bblly, bburx, bbury); + MESG("Writing to %s: ", xbb_to_file ? outname : "stdout"); + MESG("Bounding box: %d %d %d %d\n", bbllx, bblly, bburx, bbury); } - fprintf(fp,"%%%%Title: %s\n", fname); - fprintf(fp,"%%%%Creator: %s %s\n", XBB_PROGRAM, XBB_VERSION); - fprintf(fp,"%%%%BoundingBox: %d %d %d %d\n", bbllx, bblly, bburx, bbury); - do_time(fp); - RELEASE(outname); - MFCLOSE(fp); -} - -typedef enum { - JM_SOF0 = 0xc0, JM_SOF1 = 0xc1, JM_SOF2 = 0xc2, JM_SOF3 = 0xc3, - JM_SOF5 = 0xc5, JM_DHT = 0xc4, JM_SOF6 = 0xc6, JM_SOF7 = 0xc7, - JM_SOF9 = 0xc9, JM_SOF10 = 0xca, JM_SOF11 = 0xcb, JM_DAC = 0xcc, - JM_SOF13 = 0xcd, JM_SOF14 = 0xce, JM_SOF15 = 0xcf, - - JM_RST0 = 0xd0, JM_RST1 = 0xd1, JM_RST2 = 0xd2, JM_RST3 = 0xd3, - JM_RST4 = 0xd4, JM_RST5 = 0xd5, JM_RST6 = 0xd6, JM_RST7 = 0xd7, - - JM_SOI = 0xd8, JM_EOI = 0xd9, JM_SOS = 0xda, JM_DQT = 0xdb, - JM_DNL = 0xdc, JM_DRI = 0xdd, JM_DHP = 0xde, JM_EXP = 0xdf, - JM_APP0 = 0xe0, JM_APP2 = 0xe2, JM_APP14 = 0xee, JM_APP15 = 0xef, + fprintf(fp, "%%%%Title: %s\n", fname); + fprintf(fp, "%%%%Creator: %s %s\n", XBB_PROGRAM, XBB_VERSION); + fprintf(fp, "%%%%BoundingBox: %ld %ld %ld %ld\n", bbllx, bblly, bburx, bbury); - JM_COM = 0xfe -} JPEG_marker; - -static JPEG_marker JPEG_get_marker (FILE *fp) -{ - int c = fgetc(fp); - if (c != 255) return -1; - for (;;) { - c = fgetc(fp); - if (c < 0) return -1; - else if (c > 0 && c < 255) return c; + if (xbb_output_mode == XBB_OUTPUT) { + /* Note: + * According to Adobe Technical Note #5644, the arguments to + * "%%HiResBoundingBox:" must be of type real. And according + * to the PostScript Language Reference, a real number must + * be written with a decimal point (or an exponent). Hence + * it seems illegal to replace "0.0" by "0". + */ + fprintf(fp, "%%%%HiResBoundingBox: %f %f %f %f\n", + bbllx_f, bblly_f, bburx_f, bbury_f); + if (pdf_version >= 0) { + fprintf(fp, "%%%%PDFVersion: 1.%d\n", pdf_version); + fprintf(fp, "%%%%Pages: %ld\n", pagecount); + } } - return -1; -} -static int check_for_jpeg (FILE *fp) -{ - unsigned char jpeg_sig[2]; - rewind(fp); - if (fread(jpeg_sig, sizeof(unsigned char), 2, fp) != 2) return 0; - else if (jpeg_sig[0] != 0xff || jpeg_sig[1] != JM_SOI) return 0; - return 1; -} - -static int jpeg_get_info (FILE *fp, int *width, int *height) -{ - JPEG_marker marker; - unsigned short length; - int count; - float xdensity = 1.0, ydensity = 1.0; - char app_sig[128]; - - if (!check_for_jpeg(fp)) { - rewind(fp); - return -1; - } - rewind(fp); - count = 0; - while ((marker = JPEG_get_marker(fp)) >= 0) { - if (marker == JM_SOI || (marker >= JM_RST0 && marker <= JM_RST7)) { - count++; continue; - } - length = get_unsigned_pair(fp) - 2; - switch (marker) { - case JM_SOF0: case JM_SOF1: case JM_SOF2: case JM_SOF3: - case JM_SOF5: case JM_SOF6: case JM_SOF7: case JM_SOF9: - case JM_SOF10: case JM_SOF11: case JM_SOF13: case JM_SOF14: - case JM_SOF15: - get_unsigned_byte(fp); - if (xbb_output_mode != XBB_OUTPUT) { /* EBB_OUTPUT */ - xdensity = ydensity = 72.0 / 100.0; - } - *height = (int)(get_unsigned_pair(fp) * ydensity + 0.5); - *width = (int)(get_unsigned_pair(fp) * xdensity + 0.5); - return 0; - case JM_APP0: - if (length > 5) { - if (fread(app_sig, sizeof(char), 5, fp) != 5) return -1; - length -= 5; - if (!memcmp(app_sig, "JFIF\000", 5)) { - int units, xden, yden; - get_unsigned_pair(fp); - units = (int)get_unsigned_byte(fp); - xden = (int)get_unsigned_pair(fp); - yden = (int)get_unsigned_pair(fp); - switch (units) { - case 1: /* pixels per inch */ - xdensity = 72.0 / xden; - ydensity = 72.0 / yden; - break; - case 2: /* pixels per centimeter */ - xdensity = 72.0 / 2.54 / xden; - ydensity = 72.0 / 2.54 / yden; - break; - default: - break; - } - length -= 7; - } - } - seek_relative(fp, length); - break; - default: - seek_relative(fp, length); - break; - } - count++; + do_time(fp); + + if (xbb_to_file) { + RELEASE(outname); + MFCLOSE(fp); } - return -1; } static void do_jpeg (FILE *fp, char *filename) { - int width, height; + long width, height; + double xdensity = 1.0, ydensity = 1.0; - if (jpeg_get_info(fp, &width, &height) < 0) { - fprintf (stderr, "%s does not look like a JPEG file...\n", filename); + if (jpeg_get_bbox(fp, &width, &height, &xdensity, &ydensity) < 0) { + WARN("%s does not look like a JPEG file...\n", filename); return; } - write_xbb(filename, 0, 0, width, height); + + if (xbb_output_mode == EBB_OUTPUT) + xdensity = ydensity = 72.0 / 100.0; + + write_xbb(filename, 0, 0, xdensity*width, ydensity*height, -1, -1); return; } #ifdef HAVE_LIBPNG -static int check_for_png (FILE *png_file) -{ - unsigned char sigbytes[4]; - rewind (png_file); - if (fread(sigbytes, 1, sizeof(sigbytes), png_file) != sizeof(sigbytes) || - (!png_check_sig (sigbytes, sizeof(sigbytes)))) return 0; - else return 1; -} - -static int png_get_info(FILE *png_file, int *width, int *height) -{ - png_structp png_ptr; - png_infop png_info_ptr; - png_uint_32 xppm, yppm; - - rewind(png_file); - - png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); - if (png_ptr == NULL || (png_info_ptr = png_create_info_struct(png_ptr)) == NULL) { - if (png_ptr) png_destroy_read_struct(&png_ptr, NULL, NULL); - return -1; - } - png_init_io(png_ptr, png_file); - png_read_info(png_ptr, png_info_ptr); - - *width = (int)png_get_image_width(png_ptr, png_info_ptr); - *height = (int)png_get_image_height(png_ptr, png_info_ptr); - - if (xbb_output_mode == XBB_OUTPUT) { - xppm = png_get_x_pixels_per_meter(png_ptr, png_info_ptr); - yppm = png_get_y_pixels_per_meter(png_ptr, png_info_ptr); - if (xppm > 0) - *width = (int)(*width * 72.0 / 0.0254 / xppm + 0.5); - if (yppm > 0) - *height = (int)(*height * 72.0 / 0.0254 / yppm + 0.5); - } else { /* EBB_OUTPUT */ - *width = (int)(*width * 72.0 / 100.0 + 0.5); - *height = (int)(*height * 72.0 / 100.0 + 0.5); - } - return 0; -} static void do_png (FILE *fp, char *filename) { - int width, height; + long width, height; + double xdensity = 1.0, ydensity = 1.0; - if (png_get_info(fp, &width, &height) < 0) { - fprintf (stderr, "%s does not look like a PNG file...\n", filename); + if (png_get_bbox(fp, &width, &height, &xdensity, &ydensity) < 0) { + WARN("%s does not look like a PNG file...\n", filename); return; } - write_xbb(filename, 0, 0, width, height); + + if (xbb_output_mode == EBB_OUTPUT) + xdensity = ydensity = 72.0 / 100.0; + + write_xbb(filename, 0, 0, xdensity*width, ydensity*height, -1, -1); return; } + #endif /* HAVE_LIBPNG */ static void do_pdf (FILE *fp, char *filename) { - pdf_obj *page, *trailer; + pdf_obj *page; pdf_file *pf; long page_no = 1; - long count; /* dummy */ + long count; pdf_rect bbox; pf = pdf_open(filename, fp); @@ -312,9 +213,7 @@ static void do_pdf (FILE *fp, char *filename) return; } - trailer = pdf_file_get_trailer(pf); - - page = pdf_doc_get_page(trailer, &page_no, &count, &bbox, NULL, NULL); + page = pdf_doc_get_page(pf, &page_no, &count, &bbox, NULL); pdf_close(pf); @@ -322,7 +221,8 @@ static void do_pdf (FILE *fp, char *filename) return; pdf_release_obj(page); - write_xbb(filename, bbox.llx, bbox.lly, bbox.urx, bbox.ury); + write_xbb(filename, bbox.llx, bbox.lly, bbox.urx, bbox.ury, + pdf_file_get_version(pf), count); } int extractbb (int argc, char *argv[], int mode) @@ -343,8 +243,8 @@ int extractbb (int argc, char *argv[], int mode) while (argc > 0 && *argv[0] == '-') { switch (*(argv[0]+1)) { - case 'b': - xbb_file_mode = FOPEN_WBIN_MODE; + case 'O': + xbb_to_file = 0; argc -= 1; argv += 1; break; case 'm': @@ -363,16 +263,29 @@ int extractbb (int argc, char *argv[], int mode) usage(); argc -= 1; argv += 1; break; + case 'q': + really_quiet = 1; + shut_up(); + argc -= 1; argv += 1; + break; + case 'b': + if (mode == EBB_OUTPUT) { + /* ignore obsolete "binary mode" option */ + argc -= 1; argv += 1; + break; + } + /* else fall through */ default: usage(); } } + for (; argc > 0; argc--, argv++) { FILE *infile = NULL; char *kpse_file_name; if (!(kpse_file_name = kpse_find_pict(argv[0])) || (infile = MFOPEN(kpse_file_name, FOPEN_RBIN_MODE)) == NULL) { - fprintf(stderr, "Can't find file (%s)...skipping\n", argv[0]); + WARN("Can't find file (%s)...skipping\n", argv[0]); goto cont; } if (check_for_jpeg(infile)) { @@ -389,7 +302,7 @@ int extractbb (int argc, char *argv[], int mode) goto cont; } #endif /* HAVE_LIBPNG */ - fprintf(stderr, "Can't handle file type for file named %s\n", argv[0]); + WARN("Can't handle file type for file named %s\n", argv[0]); cont: if (kpse_file_name) RELEASE(kpse_file_name); |